コンボボックスにSQLのSELECT文を使用し他のテーブルを参照する-Access
コンボボックスの値集合ソースにクエリではなく、直接SQLのSELECT文を指定し使用します。並べ替え・抽出・複数列表示の設定も行います。
コンボボックスで選択するフォームの作成手順
- デザインビューでフォームを作成します。
- コンボボックスを配置します。
- コンボボックスの値集合ソースにSELECT文を設定します。
- ORDER BYを追加し並べ替えを行います。 同時にコンボボックスを複数列表示に変更します。
- WHEREを追加し抽出を行います。
SQLのSELECT文で、コンボボックスに使用する都道府県の人口が登録されたテーブルです。
コンボボックスを使用したフォームの作成
リボンの[作成]~フォームグループの[フォームデザイン]をクリックします。
リボンの[フォーム デザインツール]~[デザイン]から[コンボボックス]を選択し、フォームに配置します。
・ラベルは「都道府県選択」にしました。
・フォントサイズを大きくし、太字に書式を変更しました。
コンボボックスを選択した状態で、プロパティの値集合ソースに下記のSELECT文を入力します。
SELECT T_都道府県人口.名, T_都道府県人口.人口 FROM T_都道府県人口
これで、他のテーブルを参照することができます。
フォームビューで実行すると、コンボボックスで都道府県名を選択できるようになりました。
SELECT文にORDER BYを追加し並べ替えを行う
ここでは、都道府県名を降順で並べ替えるようにしました。
SELECT T_都道府県人口.名 FROM T_都道府県人口 ORDER BY 名 DESC
最後のDESCが降順を指定しています。
昇順で並べ替える場合は、何も指定しないか、ASCに変更します。
実行結果です。
都道府県名が降順に表示されています。
コンボボックスが複数列表示できるように設定する
フォームデザインでコンボボックスを選択し、プロパティシートを表示します。
1.列数を1から表示する列数に変更します。
2.複数列表示にすると、項目が分からなくなるので列見出しを「はい」に変更します。
3.リスト幅が狭いと、全体の列が見えなくなるので「自動」から幅をCM単位で指定します。幅の長さはデータ長さにもよるので、実際に表示させ見やすい幅に調整します。
複数列表示に変更したので、表示させるデータもSELECT文に追加します。
SELECT T_都道府県人口.名,T_都道府県人口.人口 FROM T_都道府県人口 ORDER BY 名 DESC
これで名と人口が表示できました。
SELECT文にWHEREを追加し抽出する
人口が5000000人を超えるレコードを抽出するようにします。
SELECT T_都道府県人口.名, T_都道府県人口.人口 FROM T_都道府県人口 WHERE T_都道府県人口.人口>5000000 ORDER BY T_都道府県人口.名 DESC
ORDER BYはWHEREの後ろにします。
これで、人口が5000000人を超える都道府県が降順で表示されました。