バーコードでは最も認知度の高い種類がJANコードです。
とはいっても、よほどのバーコードマニアでもない限りJANコードという名称を聞いても
「何それ?」
となると思います。
JANコードっていうのはコレです。
![f:id:me-hige:20210606160325p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606160325.png)
これは何かというと・・・
![f:id:me-hige:20210606160404p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606160404.png)
![f:id:me-hige:20210606160516p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606160516.png)
マルちゃん正麺 味噌味です。
別に、マルちゃん正麺だけがJANコードを使っているわけではなくて、お店のPOSシステムの商品識別用のバーコードで最もメジャーなバーコードです。
前記事でも言いましたが、JANコードの一番右の1桁はチェックディジットと呼ばれるもので、所定の計算式で決められています。
このチェックディジットの計算を毎回電卓を使って計算するのも大変ですよね。
今回はMicrosoftAccessでチェックディジットの計算をするシステムを作ってみたいと思います。
MicrosoftAccessでチェックディジットを作る
ツールバーの「作成」を選択して、右端にある「標準モジュール」をクリックします。
![f:id:me-hige:20210606165942p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606165942.png)
VBA(VisualBasicforApplications)が起動します。
![f:id:me-hige:20210606170102p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606170102.png)
ここにこのコードを入力します(コピペでOK)
Public Function GFnChkDedit(ByVal argBarcode As Variant) As Variant
Dim intCD As Integer
Dim intLen As Integer
Dim i As Integer
GFnChkDedit = Null
If IsNull(argBarcode) Then Exit Function
intLen = Len(argBarcode)
For i = 1 To intLen
intCD = intCD + IIf((intLen - i) Mod 2, Mid(argBarcode, i, 1), Mid(argBarcode, i, 1) * 3)
Next i
GFnChkDedit = argBarcode & (10 - (intCD Mod 10)) Mod 10
End Function
モジュールの中身を全部このコードに置き換えてしまえばOKです。
![f:id:me-hige:20210606171551p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606171551.png)
こうなりましたね。
名前を付けて保存をします。
![f:id:me-hige:20210606171711p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606171711.png)
フォームを新規作成で作ります。
非連携フォームでOKです。
非連携フォームとは、フォームにテーブルやクエリが紐づいてないフォームの事です。
VBAを動かすだけのフォームを作るときによく使います。
フォーム名は「チェックディジット作成器」とでも名付けましょう。
![f:id:me-hige:20210606172104p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606172104.png)
上側のテキストボックスの名前は「7桁変換」として
データタブの定型入力を「0000000」とします。
![f:id:me-hige:20210606172531p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606172531.png)
下側のテキストボックスは「機器ID」と名前をつけます。
コントロールソースに
=GFnChkDedit([7桁変換])
と入力します。
![f:id:me-hige:20210606172837p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606172837.png)
これで出来上がりです。
フォームビューにして、テキストボックスに7桁の数値を入力していみると、
チェックディジットが付与された8桁の数値を表示してくれます。
![f:id:me-hige:20210606173150p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/m/me-hige/20210606/20210606173150.png)
コメント