インプットボックスを使うと、処理の途中でユーザーが自由に値を入力できるようになり、とても便利です。
インプットボックスのメリットは、プログラムの中から簡単に呼び出せるため、フォームのデザインなどの変更が、不要だということです。
ちょっとしたデータを入力したい時に役立つ方法です。
【1】Accessのファイル「SampleDB020.mdb」を起動します。
【2】テーブル「T01Prefecture」を開き、「47 沖縄県」の下に、レコードが無い状態にしてください。
*テーブルはいったん閉じておきます。
【3】フォーム「F101Test」を選択し、「開く」をクリックします。
それでは動作を確認してみましょう。
【4】コマンドボタンの「レコード追加」をクリックします。
【5】最初のインプットボックスが表示されました。
実際に表示されたタイトルやメッセージと、プログラムの引数の関係を掴んでください。
cdValue = CInt(InputBox("PREF_CD を入力してください。", "PREF_CD"))
【6】必ず半角数字で「99」と入力して、「OK」ボタンをクリックします。
*全角だと数値型に変換できないため、エラーになります。
【7】2番目のインプットボックスが表示されたら、「ハワイ」と入力して、「OK」ボタンをクリックします。
同様にプログラムとの関係を掴んでください。
nameValue = InputBox("PREF_NAME を入力してください。", "PREF_NAME")
【8】「追加完了」というメッセージボックスが表示されたら、「OK」をクリックします。
これでレコードが追加されました。
【9】フォーム「F101Test」を閉じてください。
【10】テーブル「T01Prefecture」を開き、レコードが追加されていることを確認しましょう。
余裕がある場合は、VBEに切り替えて、イミディエイト ウィンドウで結果を確認したり、ブレイクポイントを設定して、プログラムを追ってみると、より理解が深まります。
【ワンポイント】
フォーム「F101Test」と「F100Test」は、同じように標準モジュールの test8.addData() を呼び出しています。
標準モジュールを使うと、複数のフォームから共通して使える(呼び出せる)プログラムが作れます。そのため、処理に修正が出た場合は、標準モジュール側だけの変更で済むメリットがあります。
もし各フォームに追加のプログラムを、別々に書いていた場合は、修正箇所が複数になるため、メンテナンスに手間がかかり、ミスの原因にもなります。
「共通して使えるプログラムは標準モジュールに」ということを覚えておきましょう。