こんにちは、なかぜんです。
Accessを使っていて「入力をもっとラクにしたい」「選択肢から選ぶようにしたい」と思ったことはありませんか?
そんなときに大活躍するのが、ドロップダウンリスト(コンボボックス)です。
この記事では、Access初心者でも迷わず使えるように、コンボボックスの基本から実践的な使い方、よくあるミスまで丁寧にご紹介します。
🔰コンボボックスってなに?
コンボボックスは、選択肢の中から1つを選べる入力欄です。リストから選ぶことで、入力ミスを防いだり、作業の効率化ができます。
たとえば、以下のような場面で使われます:
- 都道府県の選択
- 顧客マスタからの会社名選択
- カテゴリを限定したデータ入力
🛠コンボボックスの作り方
①フォームに追加する
- フォームのデザインビューを開きます。
- ツールボックスから「コンボボックス」を選び、フォーム上に配置します。
- ウィザードが開いたら、用途に応じて以下を選択:
- テーブルやクエリの値を使う(マスタ連携など)
- 自分で値を入力(固定リストなど)
②プロパティ設定
コンボボックスを選択した状態で、プロパティシートを確認します。
- Row Source(行ソース):表示する選択肢(SQL文またはテーブル名)
- Bound Column(連結列):保存される値(例:ID)
- Column Count(列数):表示する列の数
💡実用例:顧客名をコンボボックスで選択
サンプル構成
- テーブル名:T_顧客
- フィールド:顧客ID(主キー)、顧客名
- フォーム:F_受注入力
設定例
Row Source:
SELECT 顧客ID, 顧客名 FROM T_顧客 ORDER BY 顧客名;
Bound Column:
1(→保存されるのは顧客ID)
Column Count:
2(→表示用に顧客名も使う)
この設定を使えば、見た目は「顧客名」だけど、内部では「顧客ID」が保存されるという形になります。非常に便利ですね!
⚠よくあるミスと注意点
- 連結列が意図した列になっていない → Bound Columnの設定を確認!
- 列幅が0で見えない → Column Widthsを調整しよう
- SQL文のエラー → フィールド名のスペルミスやテーブル名に注意
🚀応用ポイント(中級者向け)
・VBAで動的にリストを変更する
Me.cbo商品.RowSource = "SELECT 商品ID, 商品名 FROM T_商品 WHERE 在庫数 > 0"
条件付きでリストを切り替えることで、よりスマートな運用が可能になります。
・NotInListイベントで新規値を追加する
Private Sub cbo顧客_NotInList(NewData As String, Response As Integer)
If MsgBox(NewData & " を追加しますか?", vbYesNo) = vbYes Then
CurrentDb.Execute "INSERT INTO T_顧客 (顧客名) VALUES ('" & NewData & "')"
Response = acDataErrAdded
Else
Response = acDataErrContinue
End If
End Sub
これを使えば、リストにない値もその場で追加できるようになります。
✅まとめ
今回は、Accessでのコンボボックス(ドロップダウンリスト)の使い方について解説しました。
- 入力を簡単に、ミスなく行うための重要パーツ
- テーブル連携やVBAによる拡張も可能
- 中級者向けのテクニックでさらに業務効率アップ
Accessのフォーム開発では欠かせない機能です。ぜひ一度、自分のデータベースで使ってみてくださいね!
次回は「リストボックスとの違い」や「複数列の表示と選択」についてもご紹介予定です。お楽しみに!
¥2,244 (2025/04/21 20:21:22時点 | 楽天市場調べ)
