アクセス担当のまみです。
コンボボックスって入力項目を表示してくれるので、その中から選べば良いので便利ですね。自分で入力じゃなくて、選択すればいいので入力ミスはない!
テーブルやクエリを使って表示させられるので、名称等あらかじめそろえておけるんですね。
便利なんだけど、テーブルやクエリのフィールドが複数あると、データの登録のコードはどうやって書いたらいいんだろう?
今回は、コンボボックスのテーブルへのデータ登録の方法をお伝えしますね。
Contents
ファイルを準備しよう
今回、説明のために「営業日報」ファイルを使用します。同じファイルの方が理解しやすいのでお時間ありましたらぜひ作成してみてくださいね!
商品をどれだけ販売したかを記録していくイメージで作成してみましょう。
テーブルの作成
では、「営業日報」ファイルに「T_商品マスター」を作成しましょう。
テーブルの構造は下記のように設定します。
フィールド名 | データ型 |
商品コード | 短いテキスト |
商品名 | 短いテキスト |
金額 | 通貨型 |
フィールド名 | データ型 |
登録NO | オートナンバー型 |
所属部課コード | 短いテキスト |
所属部課 | 短いテキスト |
社員コード | 短いテキスト |
氏名 | 短いテキスト |
商品コード | 短いテキスト |
商品名 | 短いテキスト |
数量 | 数値型 |
登録日付 | 日付/時刻型 |
フォームの作成
「F_営業日報」フォームから商品名と数量が入力できるようにしましょう。
商品名はコンボボックス、数量はテキストボックスを使用しましょう。
[quads id=2]
商品名と数量を入力できるようにしましょう。
まずは、コンボボックスとテキストボックスを1つずつ配置します。
コンボボックス
ラベルのプロパティーシート
標題(書式タブ) | 商品名 |
コンボボックスのプロパティーシート
名前(その他タブ) | cmb商品名 |
値集合ソース(データタブ) | T_商品マスター |
列数(書式タブ) | 3 |
列幅(書式タブ) | 0cm;2cm;0cm |
テキストトボックス
ラベルのプロパティーシート
標題(書式タブ) | 数量 |
テキストボックスのプロパティーシート
名前(その他タブ) | tx数量 |
IME入力モード(その他タブ) | 半角英数 |
それから、データの登録ができるようにボタンを1つ配置しましょう。
ボタンのプロパティーシート
名前(すべてタブ) | btn登録 |
標題(すべてタブ) | 登録 |
コンボボックスの2列目以降の値の登録方法は?
コンボボックスの値は Columnを使用することで登録することができます。
実際に、データを登録するコードを追加してみましょう。
①「btn登録」ボタンを選択した状態で、プロパティーシートの②「イベント」タブから「クリック時」で「イベントプロシージャ」を選択して、コードを表示します。
「Private Sub btn登録_Click()」と「End Sub」の間に下記のコードを追加しましょう。
Dim Rst As DAO.Recordset Set Rst = CurrentDb.OpenRecordset("T_営業日報", dbOpenTable) With Rst .AddNew .Fields("所属部課コード") = Me!cmb部課名.Column(0) .Fields("所属部課") = Me!cmb部課名.Column(1) .Fields("社員コード") = Me!cmb氏名.Column(2) .Fields("氏名") = Me!cmb氏名.Column(3) .Fields("商品コード") = Me!cmb商品名 .Fields("商品名") = Me!cmb商品名.Column(1) .Fields("数量") = Me!tx数量 .Fields("登録日付") = Now .Update End With Rst.Close Set Rst = Nothing MsgBox "データが登録されました"
コードをコピーされたい場合は下記の記事を参考にしてください。
色々試してみたら、「F_営業日報」は保存して閉じておきましょう。
まとめ
コンボボックスって、フォームに表示させるのも、データの登録もちょっと設定とかあって難しいかも・・・
何度もやってるうちに慣れてくるのでここは踏ん張りどころです!