フォームでチェックディジットを自動計算|AccessでME機器管理システム01

初心者さん

ME機器管理システムってなに?

MEさん

ME機器管理システム、それは病院内で使うME機器を管理するシステムです。

  • ME機器がどこにあるのか把握する
  • ME機器のメンテナス状況を記録したり確認する

この様な目的で利用されるシステムです。

シリーズでME機器管理システムを作っていきたいと思います。

目次

まずはAccessのファイルを新規作成

f:id:me-hige:20210608180657p:plain

ファイル名はなんでもいいのですが、ここではとりあえず「作ろうME機器管理システム」という名前でaccdbファイルを新規作成します。

空のAccessファイル(accdbファイル)が作成されました。

f:id:me-hige:20210608181024p:plain

私の好みで新規作成後ただちに、ドキュメントウインドウオプションを「ウインドウを重ねて表示する」設定にしています。

「T-ME機器情報テーブル」を作る

ME機器管理システムの根本となる「T-ME機器情報テーブル」を作っていきます。

f:id:me-hige:20210608181631p:plain

テーブル名

  • T-機器情報テーブル

フィールド

  • 機器ID (短いテキスト)
  • 機器番号 (数値型)
  • 資産番号(短いテキスト (主キー))
  • 状態 (短いテキスト)
  • 点検日 (日付/時刻型)
  • バッテリー交換日 (日付/時刻型)
  • 機器分類 (短いテキスト)
  • 品名 (短いテキスト)
  • 型番 (短いテキスト)
  • メーカー (短いテキスト)
  • 廃棄日 (短いテキスト)
  • 備考(長いテキスト)
f:id:me-hige:20210608191545p:plain

こんな感じ。

 データ入力フォームを作る

ツールバー「作成」から「フォームデザイン」をクリックして、新規フォームを作ります。

f:id:me-hige:20210608220211p:plain

フォームの名前は「機器情報入力フォーム」にします。

f:id:me-hige:20210608220448p:plain

フォームの見栄えを良くするために

  • 自動中央寄せ:はい
  • レコードセレクタ:いいえ
  • 移動ボタン:いいえ
  • 区切り線:いいえ
  • スクロールバー:なし
  • コントロールボックス:いいえ

にします。

f:id:me-hige:20210608221008p:plain

データ入力用のテキストボックスを配置する

フォームのプロパティシートを開いて「データ」タブの「レコードソース」を「T-機器情報テーブル」にします。

f:id:me-hige:20210608223208p:plain

ツールバー「デザイン」から「既存のフィールドの追加」をクリックして、フィールドリストが表示されるので、とりあえず全てのフィールドをフォームに追加します。

f:id:me-hige:20210608223620p:plain


こんな感じ

f:id:me-hige:20210608224105p:plain

廃棄日はとりあえず入力フォームにはいらないので消します。

f:id:me-hige:20210608224606p:plain

フォームのプロパティシートを開いてレコードソースを削除します。

f:id:me-hige:20210608224809p:plain

各テキストのプロパティシートを開いてコントロールソースを削除します。

f:id:me-hige:20210608225202p:plain

なぜ、一度設定したレコードソースを削除するかというと、この手順でテキストボックスを配置すると、テキストボックスの配置とテキストボックスの名前の設定が楽だからです。

機器IDは資産番号から自動でバーコードを割り振ります。

JAN-8のバーコードを設定するので、一番右の桁にチェックディジットを割り振る必要があります。

ユーザーが触れないように、テキストボックスのプロパティシートで「使用可能」を「いいえ」「編集ロック」を「はい」に設定します。

ついでにタブストップも「いいえ」にしておきます。

f:id:me-hige:20210608230517p:plain

「状態」は機器登録時には「ME室」にしたいので既定値を「ME室」にしておきます。

点検日とバッテリー交換日は機器登録日にしておきたいので、本日の日付を表示する

=Date()」を入力します。

資産番号から自動でチェックディジットを計算して機器IDを振る

ここでいう「資産番号」は施設で登録されている番号を想像してもらえばOKです。

病院でも、企業でも購入した備品に固定資産税がかかるので管理が必要です。

事務部門の台帳にのっている資産番号と同じ番号で、ME機器管理システムも管理ができると便利です。

フォーム上でチェックディジットを割り振るために、あらかじめ準備をしてきます。

標準モジュールにこのコードを書き込んでおきます。

画面の上の方にある、ツールバーの「作成」を選択、右端にある「標準モジュール」をクリック。

f:id:me-hige:20210606165942p:plain


VBA(VisualBasicforApplications)が起動します。

f:id:me-hige:20210606170102p:plain

ここにこのコードを入力します(コピペで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

名前を付けて保存。

「チェックディジット」という名前にしておきます。

f:id:me-hige:20210606171711p:plain

 モジュールに「チェックディジット」というものが追加されました。

f:id:me-hige:20210610093930p:plain

「機器情報入力フォーム」をデザインビューで開き「資産番号」テキストボックスをダブルクリックしてプロパティシートを開きます。

「データ」タブの「定型入力」に「9999999」と入力します。

定型入力に「9」と入力すると、そこには半角で0~9の数字またはスペースの文字しか入力できなくなります。

つまり「9999999」と定型入力に設定すると、7桁までの数字を入力することができるわけです。

f:id:me-hige:20210610095225p:plain

今度は「機器ID」テキストボックスのプロパティシートを開きます。

コントロールソースに

=GFnChkDedit([資産番号])

と入力します。

f:id:me-hige:20210610101053p:plain

フォームビューに切り替えて動作を確認してみます。

f:id:me-hige:20210610101354p:plain

うまいこと動いていますね。

よかったらシェアしてね!

この記事を書いた人

こんにちはAccessの壺です。
臨床工学技士としてどこかの病院で働いています。
夜な夜なMicrosoftAccessで遊びたおして、独学で病院内のいろんなシステムを開発してきました。
透析患者さんの透析条件管理システムやME機器管理システム、アンケート集計などなど作ってきました。
Accessの楽しさを発信するために、このサイトを運営中。

コメント

コメントする

目次
閉じる