#41 バーコードリーダー試用記(Access利用編)

#40の「導入編」に続いて、実際のAccessでの利用について確認してみます。


Accessでのデータ入力を試す

まず、一番肝心なところで、Accessのフォームでのデータ入力において、このバーコードリーダーを試用してみたいと思います。

ここでは次のような単純なフォームを作ってみました。フォームはテーブルと連結しており、最後のテキストボックスでEnterやTabキーを押すと次のレコードに移動するような状態になっています。




  1. フォームを開きます。




  2. 「データ1」欄にカーソルがある状態でバーコードを読み取ります。



    ※このフォームではすべてのテキストボックスの「IME入力モード」プロパティを"オフ"に設定してあります。入力時には、このプロパティやIMEの状態も反映されますので、フォームデザインにおいては留意する必要があります。


  3. 2の操作でカーソルは次の「データ2」欄に移動しますので、そのまま次のバーコードを読み取ります。




  4. 画面の一番下にある「データ3」欄にカーソルがある状態でバーコードを読み取ります。これによって、画面は次のレコードに進みます。




ご覧のように、このページ上の図だけではバーコードリーダーを使っているということがまったく分からないくらい、キーボード入力と同じようにデータが入力され、フォーカスが移動していくことが分かると思います。念のため繰り返しますが、上記フォームにおいては、リーダーに対応した専用ライブラリもプログラムも一切使っていません。通常のキーボード入力を前提としたフォームをそのまま使っています。



Accessでの例外入力を確認

Accessでは、フィールドサイズや入力規則プロパティによって、データ内容を制限できます。ここでは、もし規定外の長さや別の内容のデータがリーダーから読み込まれたとき、Access側でどのようなことが起こるかを確認してみます。

次のフォームでは、「データ1」テキストボックスはテキスト型のフィールドと連結されており、長さ5までのデータしか入力できません。また「データ2」テキストボックスはバイト型のフィールドと連結されており、256以上の値は入力できません。また「データ3」テキストボックスには入力規則プロパティが設定されており、「1」という数字以外は入力できないようになっています。




「データ1」に5文字より大きな値を読み込み
キーボード入力の場合、6文字目を入力しようとしてもビープ音が鳴って受け付けてくれません。一方、リーダーの場合は、そのような制限はお構いなしに一気に全長を入力しようとします。それでも、5文字までしか入力は受け付けてもらえないので、その分のビープ音が連続してなったあと、リーダーから送られたEnterキーのコードによって次のテキストボックスにフォーカスが移動します。結果的にはやはり6文字目以降は無視されて、5文字だけが入力されることとなります。




「データ2」に256以上の大きな値を読み込み
この場合、読み込んだバーコードのデータはとりあえずテキストボックスに入力されます。しかしデータ型の制約に引っかかり、直後にエラーメッセージが表示され、そのデータを正式に確定することはできません。これもマニュアルでキーボードからデータを入力した場合とまったく同じ結果となることが分かります。




「データ3」に1以外の適当な値を読み込み
この場合もキーボード入力したときと同様、とりあえずデータが入力されたあと、エラーメッセージが表示され、正しいデータを再入力しなければなりません。



以上のように、入力時のさまざまなデータ制約に関しても、バーコードリーダーで入力しようとキーボードから入力しようとAccessはまったく同じ反応をしてくれることが分かります。つまり、さまざまなエラーチェックを設けた、キーボードでの運用だけを前提にしたフォームでも、そのままバーコードリーダーでの運用に適用できるといえます。



Accessでの"操作"をバーコード化してみる

これまでのテストでは、フォームにデータを"入力"するという一般的な操作を試してみました。最後に、それ以外の"画面の操作"に関する処理をバーコードによって行ってみたいと思います。

まず事前に、Accessのレポートとバーコードコントロールを使って、"000000"という値をバーコード化して印刷しておきます。このデータは、実際に入力されるデータ(商品コードや社員コードなど)と絶対に一致しないものであれば何でもかまいません。

そして、それを読み込んだときに「フォームを閉じる」という操作を行うようにします。これは「Data1」テキストボックスの更新前処理イベントプロシージャを使って、そこに"000000"という値が入力されたら更新をキャンセルしてフォームを閉じるというVBAのコードを記述します。

プログラムは次のようなものとします。

Private Sub Data1_BeforeUpdate(Cancel As Integer)

  If Me!Data1 = "000000" Then
    DoCmd.Close acForm, Me.Name
    Cancel = True
  End If

End Sub


これを実行すると、「Data1」テキストボックスにカーソルがある状態で"000000"のバーコードを読み込むことによってフォームが閉じられます。

基本的にバーコードリーダーは、商品コードや社員番号など、マスタデータのキーの読み込み+データ入力に利用することがほとんどと思いますが、ユーザー側の操作を軽減させるため、応用的なものとしてこのような使い方もできます。



最後に

昔と違って、バーコードリーダーという機器は本当に簡単に使い始めることができるようになりました。現在でも、無線式や持ち運び式(ハンディタイプ)のものはいろいろな設定や、場合によっては独自の通信処理などが必要となりますが、USBタイプやインラインキーボードタイプのものはほとんどハードウェアとしての設定を必要としません。一般のキーボードやマウスをパソコンにつなげる感覚で利用できるようになっています。機会があればぜひ利用してみてください。

なお、バーコードリーダーの機器選定においては、取り扱うバーコードの種類や大きさ、実際に使う作業環境や運用方法、あるいはパソコンの環境なども考慮する必要があります。上記はあくまでもUSBタイプの1機種だけを例に説明したものです。詳しくはバーコードメーカーや販売店で確認するようにしてください。
| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved