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