Access デスクトップ データベースのフォームにデータを入力する場合、入力する値を覚えておくよりも、リストから値を選択する方がすばやく簡単になります。 選択肢のリストは、フィールドに入力された値が適切であることを確認するのにも役立ちます。 リスト コントロールは、既存のデータに結び付けることも、コントロール作成時に入力した固定値を表示することもできます。 Access フォームで使用できるリスト コントロールと、それらを作成およびカスタマイズする方法については、以下をお読みください。
目的に合ったトピックをクリックしてください
- リスト ボックス コントロールの種類について
- ウィザードを使用してリスト ボックスまたはコンボ ボックスを作成する
- フォームにルックアップ フィールドを追加してリスト ボックスまたはコンボ ボックスを作成する
- ウィザードを使用しないでリスト ボックスまたはコンボ ボックスを作成する
- リスト ボックスまたはコンボ ボックスをカスタマイズする
リスト ボックス コントロールの種類について
Access にはフォーム用のリスト コントロール (リスト ボックスとコンボ ボックス) の 2 つがあります。
リスト ボックス: リスト ボックス コントロールは、値または選択肢のリストを表示します。 リスト ボックスにはデータ行が含まれており、通常は複数の行が常に表示されるようにサイズが設定されています。 行には 1 つまたは複数の列を含めることができ、見出しの有無にかかわらず、列に表示できます。 リストの行数がコントロールで表示できる数を超えている場合は、コントロールにスクロール バーが表示されます。 ユーザーはリスト ボックス内の選択肢に制限され、リスト ボックスに値を入力することはできません。
コンボ ボックス: コンボ ボックス コントロールを使用すると、選択肢のリストをよりコンパクトに表示できます。 この一覧は、ドロップダウン矢印を選択するまで非表示になります。 コンボ ボックスでは、一覧にない値を入力することもできます。 このようにして、コンボ ボックス コントロールはテキスト ボックスとリスト ボックスの機能を組み合わせたものです。
- 矢印を選択すると、ドロップダウン リストが表示されます。
- ドロップダウン リストでオプションを選択します。
リスト ボックスとコンボ ボックスは、連結コントロールにすることも非連結コントロールにすることもできます。 これらのコントロールでは、自分で入力した固定リストの値や、テーブルまたはクエリの値を検索できます。 テーブルまたはクエリの値を検索する連結リスト ボックスまたはコンボ ボックスを作成するには、フォームが外部キー フィールドまたはルックアップ フィールドを含むレコード ソースに基づいていることを確認します。 これにより、リスト ボックスまたはコンボ ボックス内のデータをフォーム上のデータにリンクするために必要なリレーションシップを作成できます。
ウィザードを使用してリスト ボックスまたはコンボ ボックスを作成する
ナビゲーション ウィンドウでフォームを右クリックし、[デザイン ビュー] を選択します。
注
この手順は、フォームをテーブルまたはクエリに連結する場合の手順です。 フォームがバインドされていない場合、一部の手順は適用されません。 フォームがテーブルまたはクエリに連結されているかどうかを確認するには、 F4 キーを押してプロパティ シートを表示します。 プロパティ シートの [データ] タブにある "レコード ソース" プロパティ ボックスに、フォームが連結されているテーブルまたはクエリが表示されます。
[ フォーム デザイン ] タブの [ コントロール] グループで、[ コントロール ウィザードを使用する] が選択されていることを確認します。
リスト ボックス ツールまたはコンボ ボックス ツールを選択します。
フォーム上で、リスト ボックスまたはコンボ ボックスを配置する場所を選択します。
- 選択内容に応じて、 リスト ボックス ウィザード または コンボ ボックス ウィザード が起動します。
コントロールに表示する値を取得する方法の確認を求められたら、次のいずれかの操作を行います。
- レコード ソースの現在のデータを表示する場合は、[ リスト ボックス/コンボ ボックスでテーブルまたはクエリの値を検索する] を選択します。
- めったに変更されない値の固定リストを表示する場合は、[ I will enter the values that necessary (必要な値を入力する)] を選択します。
- コントロールでデータ入力ツールとして機能するのではなく、検索操作を実行するようにする場合は、[ リスト ボックス/コンボ ボックスで選択した値に基づいてフォームのレコードを検索する] を選択します。 これにより、ユーザーが入力した値に基づいて検索操作を実行する埋め込みマクロを含む、バインドされていないコントロールが作成されます。
指示に従って、値の表示方法を指定します。
ウィザードの最初のページで最初の 2 つのオプションのどちらかを選んだ場合は、値を選んだときの Access の動作を指定するよう求められます。 次のいずれかの操作を行います。
- バインドされていないコントロールを作成するには、[ 後で使用するために値を記憶する] を選択します。 つまり、Access では、ユーザーが変更するかフォームを閉じるまで、選択した値が保持されますが、テーブルには値が書き込まれません。
- バインドされたコントロールを作成するには、[ このフィールドにその値を格納する] を選択してから、コントロールをバインドするフィールドを選択します。
[ 次へ] を選択し、コントロールのラベルを入力します。 このラベルはコントロールの横に表示されます。
[完了] をクリックします。
フォームにルックアップ フィールドを追加してリスト ボックスまたはコンボ ボックスを作成する
フォームにルックアップ フィールドを追加して連結リスト ボックスまたは連結コンボ ボックスを作成することができます。
テーブルにルックアップ フィールドを作成します。 作成するルックアップ フィールドは、複数値を持つことも、1 つの値を含めることもできます。 複数値を持つルックアップ フィールドの作成の詳細については、「 複数値を持つフィールドの作成または削除」を参照してください。
次のいずれかの操作を行います。
ルックアップ フィールドを含むレコード ソースに基づく新しいフォームを作成します。 たとえば、 ナビゲーション ウィンドウで、ルックアップ フィールドを含むテーブルまたはクエリを選択し、[ 作成 ] タブの フォーム グループで フォーム を選択します。 ルックアップ フィールドのコンボ ボックスが自動的に作成されます。
次のようにしてフォームにリスト ボックスまたはコンボ ボックスを追加します。
ルックアップ フィールドを含むレコード ソースに基づくフォームをデザイン ビューで開きます。
[ フィールド リスト] ウィンドウが表示されていない場合は、 Alt+F8 キーを押すと表示されます。
ルックアップ フィールドをダブルクリックするか、ルックアップ フィールドを [フィールド リスト] ウィンドウからフォームにドラッグします。 フィールドに連結されたコンボ ボックスが自動的に作成されます。
ヒント
コンボ ボックスをリスト ボックスに変更する、またはその逆を変更するには、コントロールを右クリックし、ショートカット メニューの [ に変更] を選択して、目的のコントロールの種類を選択します。
ウィザードを使用しないでリスト ボックスまたはコンボ ボックスを作成する
ウィザードを使用せずにリスト ボックスまたはコンボ ボックスを作成する場合は、コントロールのプロパティの多くを自分で設定します。 特定のプロパティの詳細情報が必要な場合は、適切なプロパティ ボックスを選択し、 F1 キーを押します。
フォームをデザイン ビューで開きます。
[ フォーム デザイン] タブの [コントロール] グループで、[ コントロール ウィザードを使用する] が選択されていないことを確認します。
リスト ボックス ツールまたはコンボ ボックス ツールを選択します。
フォーム内で一度選択して既定のサイズのコントロールを作成するか、コントロールが目的のサイズになるまで選択してドラッグします。
コントロールを選択したまま、 F4 キーを押してプロパティ シートを開きます。
次の表をガイダンスとして使用して、[ 行ソースの種類 ] および [ 行ソース ] のプロパティを設定します。
目的 " 行ソースの種類 " プロパティを 行 ソース プロパティを次のように設定します テーブルやクエリの値、または SQLステートメントの結果を表示するテーブル/クエリ リスト ボックスまたはコンボ ボックスに表示する値が含まれているテーブルまたはクエリをドロップダウン リストで選択します。 または、 SQLステートメントを入力します。 または、プロパティ シートの [データ ] タブで、[ ビルド] ボタンを選択してクエリ ビルダーを開きます。 クエリの作成の詳細については、「 簡単な選択クエリの作成」を参照してください。固定値リストを表示する 値リスト 固定値のリストをセミコロン ( ;) で区切って入力します。 たとえば、「North;South;East;West」のように入力します。 または、プロパティ シートの [ データ ] タブで、[ ビルド] ボタンを選択して [リスト アイテムの編集 ] ダイアログ ボックスを開き、個別の行にアイテムを入力します。テーブルまたはクエリからフィールドの一覧を表示する フィールド リスト リスト ボックスまたはコンボ ボックスに表示するフィールド名を含むテーブルまたはクエリをドロップダウン リストで選択します。 コントロールに複数の列を表示する場合は、[ 列数 ] プロパティ ボックスを選択し、必要な列数を入力します。 "列幅" プロパティを設定して列の幅を調整します。 各プロパティの詳細については、プロパティ ボックスにカーソルを置き、 F1 キーを押します。
Access で選んだ値を保存する場合は、[ コントロール ソース ] プロパティ ボックスをオンにしてから、リスト ボックスまたはコンボ ボックスをバインドするフィールドを選びます。
リスト ボックスまたはコンボ ボックスをカスタマイズする
フォームをデザイン ビューで開いた状態で、リスト ボックスまたはコンボ ボックスが選択されていることを確認し、 F4 キーを押してコントロールのプロパティ シートを開きます。 その後、次のいずれかの操作を行います。
リスト ボックスまたはコンボ ボックスの並べ替え順序を変更するには、次の操作を行います。 ウィザードを使用してリスト ボックスまたはコンボ ボックスを作成した場合は、一覧を構成する行は最初に表示される列を基準に自動的に並べ替えられます。 別の並べ替え順序を指定する場合、またはコントロールの "値集合ソース" プロパティを保存済みクエリに設定した場合は、次の手順を実行します。
- [ データ ] タブを選択し、[ 行ソース ] プロパティ ボックスを選択します。
- プロパティ シートの [ データ ] タブで、[ ビルド] ボタンを選択してクエリ ビルダーを開きます。
- 並べ替える列の [並べ替え ] 行で、目的の並べ替え順序を指定します。
リスト ボックスまたはコンボ ボックスから列をバインドする: リスト ボックスまたはコンボ ボックスの [ 境界列 ] プロパティ ボックスで、リスト ボックスまたはコンボ ボックスの列の位置に対応する数値を指定します。 たとえば、「
1」と入力すると、リスト ボックスまたはコンボ ボックスの最初の列が、[ コントロール ソース ] プロパティで指定された基になるフィールドにバインドされます。 列を数えるときは非表示の列を含めます。 " 連結された列 " プロパティを0に設定すると、Access では、いずれかの列の値ではなくリスト インデックスが保存されます。 これは、リスト値ではなく連続する数字を格納する場合に便利です。フォーム上のリスト ボックスまたはコンボ ボックスの列を非表示にする:
[ 列幅 ] プロパティ ボックスに、非表示にする列の
0を入力します。 たとえば、幅 0.5 インチの [SupplierID] 列と幅 2 インチの [SupplierName] 列がある、連結された 2 列のコンボ ボックスがあるとします。 SupplierID 列はリストの最初の列であるため、 列幅 プロパティは0.5";2"に設定されます。 SupplierID 列を非表示にするには、列 幅 プロパティを0";2"に設定します。 [仕入先コード] 列は非表示になっていても、バインドされた列のままにできます。注
コンボ ボックスでは、リストが表示されていない場合、非表示でない最初の列がコンボ ボックスのテキスト ボックス部分に表示されます。 たとえば、前に示した例では SupplierID 列が非表示であるため SupplierName 列が表示されます。 [SupplierID] 列が非表示でない場合は、[SupplierName] 列の代わりに表示されます。
フォームのコンボ ボックスに列見出しを追加する:
- [ 列見出し ] プロパティ ボックスで [ はい ] を選択すると、列見出しが表示されます。 コンボ ボックスの見出しはリストが開かれたときにだけ表示されます。 コンボ ボックスまたはリスト ボックスがレコード ソースに基づく場合、Access ではレコード ソースのフィールド名が列見出しとして使用されます。 コンボ ボックスまたはリスト ボックスが固定値リストに基づく場合、値リスト (行ソース プロパティ) の最初の n 個の項目が列見出しとして使用されます。n =列数プロパティに設定された数値です。
フォームのコンボ ボックスの入力中に自動入力機能を無効にする。
- [ 自動展開 ] プロパティ ボックスで、[ いいえ] を選択します。 [自動拡張] プロパティを [いいえ] に設定すると、リストから値を選ぶか、値全体を入力する必要があります。
フォーム上のコンボ ボックスのリスト ボックス部分の幅を設定します。
- [リストの幅] プロパティ ボックスに、Windows のコントロール パネルで設定されている現在の測定単位を使用して、必要な幅を入力します。 既定以外の単位を使用するには、単位の指示子を含めます。 たとえば、「
2 cm」と入力します。 スクロール バー用の十分なスペースを確保してください。 コンボ ボックスのリスト ボックス部分はテキスト ボックス部分よりも広くすることができますが、狭くすることはできません。 既定の設定 ([自動]) では、コンボ ボックスのリスト ボックスはテキスト ボックス部分と同じ幅になります。
- [リストの幅] プロパティ ボックスに、Windows のコントロール パネルで設定されている現在の測定単位を使用して、必要な幅を入力します。 既定以外の単位を使用するには、単位の指示子を含めます。 たとえば、「
フォームのコンボ ボックスに表示する行の最大数を設定します。
- [リスト行数] プロパティ ボックスに数値を入力します。 実際の行数が "リスト行数" プロパティで指定した数字を超えると、コンボ ボックスにスクロール バーが表示されます。
コンボ ボックスのエントリをフォーム上のコンボ ボックスのリスト部分のアイテムに制限します。
[ 一覧の制限 ] プロパティ ボックスで、[ はい] を選択します。
注
- コンボ ボックスに表示される最初の列が連結された列ではない場合、[ リストに制限 ] プロパティが [いいえ] に設定されていても、Access はエントリをリストに制限します。
- "入力チェック" プロパティが [いいえ] に設定されている場合、リストに存在しない入力項目を入力しようとすると、コンボ ボックスが連結されていれば、入力項目は基になるフィールドに格納されますが、リストには追加されません。 新しい入力項目をリストに追加するには、"リスト外入力時" プロパティと、リストにない値が入力されたときに実行するイベントを使用します。