Accessのテーブルで、フィールドに入力する値をコンボボックスから選択する方法です。
コンボボックスとは、フィールドの値を入力する代わりに、ドロップダウンリストの中から選択できるようにするものです。
ルックアップウィザードを使って設定する方法を解説します。
ルックアップウィザードでは、リストの値を直接入力して設定する方法と、別のテーブルやクエリに格納されている値を参照する方法があります。
ここでは、別のテーブルの値をリストに表示する方法を紹介します。
参考ルックアップ列の値を直接入力して設定する方法については、以下の記事で解説しています。
-
ルックアップウィザードを使用してドロップダウンリストを設定(値を直接入力)
テーブルのデータ型には、[ルックアップウィザード]というのがあります。 ルックアップウィザードを選択して、ウィザードに従って設定していくと、 ...
ここでは、オブジェクトの表示は[ウィンドウを重ねて表示]の設定にしています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
コンボボックスに表示するリストのテーブルの作成
まず、コンボボックスに表示するリストをテーブルで作成します。
ここでは、[T_備品]というテーブルを作成しています。
主キーの設定
デザインビューで[管理番号]に主キーを設定します。
注意必ず主キーを設定します
-
Accessテーブルの[主キー]の設定
Accessのテーブルでは、[主キー](シュキー)を設定することができます。[主キー]とは、各レコードを固有のものとして識別するフィールドの ...
すでに作成済みのテーブルがあれば、そのテーブルを使用してかまいませんが、リレーションシップが設定されたフィールドでは[ルックアップウィザード]を実行できません。
一度リレーションを削除すると、再度、ルックアップを設定できます。
-
リレーションシップの作成と参照整合性の設定
Accessでは、複数のテーブルがあって、そのテーブル間の共通フィールドを関連付けることができます。この関連付けのことを[リレーションシップ ...
[データ]型で[ルックアップウィザード]を表示
テーブル[T_sample]をデザインビューで開きます。
[備品名]フィールドの[データ]型で[ルックアップウィザード]を選択します。
[ルックアップウィザード]が起動します。
このウィザードは、選択可能な値を表示するルックアップフィールドを作成します。ルックアップフィールドに表示する値の種類を選択してください。
[ルックアップウィザードの値を別のテーブルまたはクエリから取得する]を選択して、[次へ]をクリックします。
リストに表示するテーブルの選択
リストに表示するテーブルまたはクエリを選択します。
ルックアップフィールドの値の取得元となるテーブルまたはクエリを選択します。
表示は[テーブル]で、[テーブル:T_備品]を選択します。
[次へ]をクリックします。
フィールドの選択
フィールドを選択します。
ルックアップフィールドの値の取得元となるT_備品のフィールドを選択します。選択したフィールドは、ルックアップフィールドの列として表示されます。
[選択可能なフィールド]から、すべてのフィールドを選択して、中央の[>>]ボタンをクリックして、[選択したフィールド]に表示します。
[次へ]をクリックします。
並びの指定
コンボボックスに表示するときの並びを指定できます。
リストボックスの項目の並べ替え順を指定してください。
並べ替えを行うフィールドを4つまで選択できます。それぞれのフィールドごとに昇順または降順を指定できます。
管理番号の昇順に並べたいので、[管理番号]を選択して、[昇順]になっていることを確認します。
[次へ]をクリックします。
列幅の調整とキー列の表示/非表示
列幅を調整します。
ここでは、[キー列を表示しない]のチェックボックスをオンにしたまま[次へ]ボタンをクリックします。
参考列幅は右端の境界線をダブルクリックすると自動的に調整されます。
列幅を調整するには、列の右端をドラッグします。
また、右端をダブルクリックすると、入力した値の長さに合わせて列幅が自動的に調整されます。
名前を付けて保存
ラベル名付けて[完了]ボタンをクリックします。
ルックアップフィールドに付けるラベルを指定してください。
データの整合性については、以下の記事内が参考になると思います。ウィザードで設定しなくても、後でリレーションシップで設定できます。
-
リレーションシップの[フィールドの連鎖更新]と[レコードの連鎖削除]
Accessでは、参照整合性を設定することで、データの入力や更新、削除が制限されてデータの整合性を保つことができます。 リレーションシップの ...
-
削除クエリの作成(すべてのレコード/条件を指定したレコード)
Accessでテーブルのすべてのレコードを削除するには、すべてのレコードを選択して削除する方法もありますが、削除クエリを作成して簡単に削除す ...
複数の値の許可は、以下で解説しています。複数の許可の設定も、ウィザードで設定しなくても後でフィールドプロパティで設定できます。
以下のようなメッセージが表示されますので、[はい]をクリックします。
リレーションシップを作成する前にテーブルを保存する必要があります。
保存してもよろしいですか?
参考拡張子が(.mdb)の場合のルックアップウィザードの最後の画面は、以下のようになっています。
リレーションシップについては、以下で解説しています。
-
リレーションシップの作成と参照整合性の設定
Accessでは、複数のテーブルがあって、そのテーブル間の共通フィールドを関連付けることができます。この関連付けのことを[リレーションシップ ...
作成後、[データベースツール]タブの[リレーションシップ]をクリックして確認してみてください。
また、テーブル[T_備品]をデータシートビューで開くと、以下のようにレコードの左側に[+]ボタンが追加されています。
[+]は展開インジゲーターと呼ばれるものです。[+]をクリックして展開すると、関連テーブル側のレコードがサブデータシートとして表示されます。
サブデータシートについては、以下の記事で解説しています。
-
サブデータシートはテーブルプロパティで手動設定できる
Accessのテーブル間でリレーションシップの設定すると、2つのテーブルに関連性が生じます。 テーブルをデータシートビューで開くと、各レコー ...
ルックアップ列の詳細設定
フィールドプロパティは、下のようになります。
[ルックアップウィザード]を選択しても、[データ型]に[ルックアップウィザード]と表示されるわけではありません。自動で選択されたデータ型が表示されます。
[リスト幅]などは、ここで修正できます。
[列幅]を見ると、[0cm;2.54cm]となっていますが、セルに表示される値は、列のリストの中で一番左で幅が0ではない列の値が使用されます。列の値としては数値を格納して、表示はテキストを表示させることができます。
項目 | 機能 |
---|---|
表示コントロール | セルの編集のためのコントロールを指定します。[テキストボックス]、[リストボックス]、[コンボボックス]の中から選択します。ここの選択によって、設定項目が変わります。 |
値集合タイプ | テーブル/クエリの値を表示するのか、値リストを使用するかを選択します。[テーブル/クエリ]、[値リスト]、[フィールドリスト]の中から選択します。 |
値集合ソース | リストに使用する値を指定します。[値集合タイプ]で[値リスト]を選択した場合は、値をセミコロン(;)で区切って入力します。[テーブル/クエリ]を選択した場合は、SQL文になります。 |
連結列 | リストのどの列がルックアップ列に値として格納されるかを指定します。 |
列数 | リストとして表示する列の数を指定します。 |
列見出し | [はい]を選択すると、リストが表示されるときに、列の見出しが表示されます。 |
列幅 | 列の幅をセミコロン(;)で区切って指定します。 |
リスト行数 | リストの行数を指定します。 |
リスト幅 | リスト全体の幅を指定します。 |
入力チェック | [はい]を指定すると、リストにない値を入力できないようになります。 |
複数の値の許可 | [はい]を選択すると、複数の値をリストから選べるようになります。 |
値リストの編集の許可 | 値集合タイプが[値リスト]のときに、値リストの項目を追加したり、削除することができます。 |
リスト項目編集フォーム | 値リストを編集するのに使うフォームを指定します。 |
値集合ソースの値のみの表示 | 複数の値が許可されている場合、フィールドの値としてリスト以外の値が入っているときに、それを表示しないようにします。 |
参考旧拡張子(.mdb)の場合は、フィールドプロパティに[複数の値の許可]という項目はありません。
入力チェック
[入力チェック]の設定については、以下の記事で解説しています。テーブルプロパティとフォームのプロパティでの設定について記しています。
-
コンボボックスにリスト以外の値が入力されないようにするには
テーブルやフォームでコンボボックスのリストから値を選択して入力するようにしていても、プロパティの[入力チェック]を[いいえ]に設定していると ...
コンボボックスとリストボックスの違い
フィールドプロパティの[表示コントロール]は、[テキストボックス]、[リストボックス]、[コンボボックス]から選択できるようになっています。
テーブルでは、[コンボボックス]も[リストボックス]も変わりがないように見えます。
しかし、そのテーブルを基にフォームを作成すると、以下のように異なる表示になります。
以下は比較するために作成したフォームです。
コントロールの種類は、フォームで変更することもできます。
以下は、コンボボックスで右クリックした時のショートカットメニューです。[コントロールの種類の変更]から選択できます。
[リストボックス]を選択すると、フィールドプロパティの内容も以下のようになります。
[コンボボックス]と[リストボックス]の違いを簡単にまとめると、以下のようになります。
コンボボックス | リストボックス | |
リスト以外の値の入力 | できる | できない |
キーボードからの入力 | できる | できない |
設置領域 | 小さい | 大きい |
入力操作 | ドロップダウン形式 | 直接選択 |
コンボボックスは、リスト以外の値を入力できますが、リストボックスはリスト以外の値は入力できません。
コンボボックスでリスト以外の値を入力されないように、プロパティで設定することはできます。
-
コンボボックスにリスト以外の値が入力されないようにするには
テーブルやフォームでコンボボックスのリストから値を選択して入力するようにしていても、プロパティの[入力チェック]を[いいえ]に設定していると ...
リストボックスは、キーボードから入力することはできません。マウスで選択します。
コンボボックスは、ドロップダウン形式なので少ない領域に設置できますが、リストボックスはリストが多くなれば、その分の領域が必要になります。
リストボックスは一覧が表示されるので、コンボボックスより素早く入力できます。
コンボボックスにカーソルを置くと、自動的にリストを表示するように設定することはできます。
-
コンボボックス内にカーソルが移動すると自動でリストを表示するには
Accessの入力フォームでコンボボックスを使うことは多いと思います。 コンボボックスって、▼ボタンを押してリストを表示しますが、コンボボッ ...
以下の記事でもコンボボックスとリストボックスの違いについて解説しています。参考になると思います。
-
コンボボックスとリストボックスのカスタマイズ(プロパティの設定)
フォームにコンボボックスやリストボックスを使用すると、一覧のリストの中から選択できるようになります。 作成方法はいくつかありますが、コンボボ ...
参考フィールドの表示コントロールを[コンボボックス]にしていても、クエリで[テキストボックス]に変更することができます。
-
クエリでテーブルのコンボボックスをテキストボックスに変更
テーブルでは、コンボボックスで選択できるようになっているフィールドでも、クエリではテキストボックスに変更したいということもあります。 クエリ ...
以下は、Access2003(.mdb)での解説です。