PR

📌Accessでドロップダウンリスト(コンボボックス)の使い方をやさしく解説!

Access

こんにちは、なかぜんです。
Accessを使っていて「入力をもっとラクにしたい」「選択肢から選ぶようにしたい」と思ったことはありませんか?
そんなときに大活躍するのが、ドロップダウンリスト(コンボボックス)です。

この記事では、Access初心者でも迷わず使えるように、コンボボックスの基本から実践的な使い方、よくあるミスまで丁寧にご紹介します。


🔰コンボボックスってなに?

コンボボックスは、選択肢の中から1つを選べる入力欄です。リストから選ぶことで、入力ミスを防いだり、作業の効率化ができます。

たとえば、以下のような場面で使われます:

  • 都道府県の選択
  • 顧客マスタからの会社名選択
  • カテゴリを限定したデータ入力

🛠コンボボックスの作り方

①フォームに追加する

  1. フォームのデザインビューを開きます。
  2. ツールボックスから「コンボボックス」を選び、フォーム上に配置します。
  3. ウィザードが開いたら、用途に応じて以下を選択:
  • テーブルやクエリの値を使う(マスタ連携など)
  • 自分で値を入力(固定リストなど)

②プロパティ設定

コンボボックスを選択した状態で、プロパティシートを確認します。

  • 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のフォーム開発では欠かせない機能です。ぜひ一度、自分のデータベースで使ってみてくださいね!

次回は「リストボックスとの違い」や「複数列の表示と選択」についてもご紹介予定です。お楽しみに!