ACCESS フォームへの自動入力機能
ACCESSの入力フォームで、特定の値を毎回入力するのは面倒ですよね。
ACCESSでは、フォームへ自動で入力する機能を作成することができます。
あらかじめ決まった固定の値を入れることも可能ですし、条件によって変動する値を入れることもできます。
今回は、フォームへの自動入力機能をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSで実際に作成したフォームやレポートを、その作成方法と共にご紹介していきます。
サンプルフォーム
今回はサンプルとして売上伝票入力フォームを準備しました。
このフォームをベースに自動入力機能をご紹介します。
もっとも簡単な既定値設定
まずは、もっとも簡単な既定値設定から説明します。
売上伝票入力フォームで新規レコードを作成すると以下の画面になります。
ここで、売上日は最初から本日の日付(2022/8/31)が自動入力されていますね。
これは、新規レコード作成時に自動的に値を設定する、既定値設定を利用しています。
絶対に値が入っていないといけないフィールドや、他のテーブルとリレーションをさせているフィールドについては、既定値設定を行って値が入力されない(Nullになる)ことを防いでおくことが有効です。
既定値設定を行うには、フォームをデザインビューで開きます。
既定値設定したいコントロール(今回は処理日)を選択して、プロパティシートの「データ」タブの「既定値」に値を入力します。
今回は、既定値に
Date()
と入力しています。
これは、本日の日付を表す文字列です。
この設定をしておくことで、新規レコード作成時に自動的に本日の日付が入力されます。
特定のテキストボックスの入力に連動して、他のテキストボックスに自動入力する
既定値設定では、あらかじめ決まった値を自動入力できます。
しかし、既定値では固定の値しか入力できません。
そこで、VBAを利用して特定のテキストボックスの値が更新されたら、その値に応じて他のテキストボックスに値を入力することも可能です。
この場合は、AfterUpdateイベントを利用します。
例えば、こちらのフォームでは顧客IDを更新すると、消費税率を自動入力するように作ってあります。
この機能をどのように実現しているか見ていきましょう。
先ほどのフォームをデザインビューで表示するとこうなります。
顧客IDの更新後処理にイベントプロシージャを設定しています。
こうすることで、顧客IDが更新されたときにVBAの処理を実行できます。
下記が、VBAで設定されたイベントプロシージャの内容です。
Private Sub 顧客ID_AfterUpdate()
If Me!消費税率 = 0 Then
Me!消費税率 = DLookup("消費税率", "MST_消費税", "適用中 = true and 削除 = false")
End If
End Sub
「Me!消費税率」がフォーム上にある消費税率を表示するコントロールです。
顧客IDが更新された際に、消費税率が0であれば、MST_消費税テーブルから、適用中がTrueになっている消費税率を抽出して、フォームの消費税率に反映する処理になっています。
このようにAfterUpdateイベントを利用することで、特定のコントロールの更新に合わせた処理が実行できます。
以上、フォームへの自動入力機能をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。