【Accessコンボボックス】値リストから2列のリストを作成する。

こんにちは! イマジネットPCサポートの橋崎です。

今回は現在作成中のデータベースからAccessコンボボックスについて記事にしたいと思います。

コンボボックスとは

コンボボックスはデータ入力時、スタッフ名や商品名など、ある程度、固定化されている項目を入力する際によく使用されている入力支援です。

皆さんも下画像のような入力は見た事があるでしょう。

目的は入力の効率化と手入力しないのでミスがなく、多くのデータベースで使用されています。

基本的にコンボボックスを設定するにはテーブルから作成する必要がありますが、状況によってはテーブルまで作成する必要がない場合もあります。その時、Accessでは簡単にコンボボックスを設定できます。

メモ

テーブル作成の有無については最後「あとがき」で注意点を簡単にご説明します。

値リストから1列のリストを作成する方法

フォームにテキストボックスを配置しています。
※サンプルなので非連結ですが、通常はテーブルのフィールドと連結している事が多いと思います。

テキストボックスを右クリック→「コントロールの種類の変更」→「コンボボックス」を左クリックで選択します。

コントロールが自動で付きました。

では、プロパティの「データ」タブ→「値集合タイプ」をテーブル・クエリから「値リスト」に変更します。

フォームをデザインビューからフォームビューに変更してリストボタンを選択すると空リストの左下に「リスト項目の編集」アイコンが出現するので選択してみましょう。

「リスト項目の編集」画面が開くので画像のように「東京」~「札幌」まで改行で縦入力します。また規定値の設定をする事ができます。
※今回は規定値は設定しません。

再度、コンボボックスのリストを開くと設定した地名が表示されています。

どうですか?

簡単でしたよね!

これは1列の場合でしたが、依頼されているデータベースは下画像のように2列表示にする必要がありました。

2列の場合、どのように設定するのでしょうか。

ご説明しましょう。

値リストから2列のリストを作成する方法

基本的には同じ要領なので、先程、設定した状態から続きを行いますね。

注意点は2列の場合「リスト項目の編集」が使用できません。

2列で設定する場合はこの「値集合ソース」を手入力する必要があります。

説明に入る前にコンボボックスのプロパティから現在の「値集合ソース」を確認しておきましょう。

わかりやすく記載しておきますね。

“東京”;”大阪”;”名古屋”;”博多”;”仙台”;”札幌”

「リスト項目の編集」から入力したデータがこのような状態で「値集合ソース」に設定されている事がわかりました。

では、これにひと工夫する事で2列が実現しそうですね。

このように変更してみました。

1;”東京”;2;”大阪”;3;”名古屋”;4;”博多”;5;”仙台”;6;”札幌”

もう少しシンプルにしてみます。

1;東京;2;大阪;3;名古屋;4;博多;5;仙台;6;札幌

今度は2列表示になるので、プロパティから「書式」タブ→列数を「1」から「2」に変更します。

確認すると2例になっていますね。

設定はこれで完了ですが、実際に動かしてみると色々と変更したい点があります。

「博多」を選択してみると・・・

「4」とだけ表示されています。

ここは「博多」と表示したいのですが・・・

ここからは必ず設定する項目ではないので、細かくは書きませんが、当店では以下のプロパティ設定をする事が多いので参考に記載しておきます。

  • 重複しますが、「書式」タブ→列数を「1」から「2」に変更する。・・・基本的には設定した列数に変更する。
  • 書式タブ→列幅→「0cm;3cm」に設定・・・左から1列目となり、1列目を非表示として2列目には「3cm」の幅を設定しました。設定後、表示は1列になり、入力後の表示は地名のみとなります。但し1列目は表示されていないだけで実際には存在しています。また表示は「博多」ですが、連結列は「1」列目になっているので、保存されるのは「博多」ではなく「4」となります。連結列は変更が可能です。
  • コンボボックス・リストの幅・高さなどゆとりを持たせる。
  • カーソルがアクティブになるとコンボボックスの背景を変更する。・・・現在カーソルがどの場所にあるのかわかりやすくする。
  • 複数コンボボックスを作成する場合はリスト幅も全て同一にしておく。

色々と書きましたが、列数以外はこの通りにする必要は全くありませんので、参考までに

変更後、このような感じになりました。

メモ

列幅で非表示にしなくても連結列を「2」に設定する事で地名を表示する事はできます。またこの方法ではリスト展開時に2列で表示する事も可能です。

できますが、保存されるのは「博多」となるので、どちらを選択するのかよく検討する必要があります。

あとがき

Accessの機能を使用して2列のコンボボックス作成方法をご紹介しました。

ご紹介しておいて少し気が引けますが、注意点があります。

それは基本的には値集合ソースは値リストを使用せずにテーブルから作成して設定する方法を推奨します。

理由は集計が取れなくなる事や集計に手間がかかる事があり、本来のデータベースの役割を果たす事が困難になる可能性があります。

今回の例で言えば「都道府県テーブル」を作成してから値集合ソースに設定する方法で行います。

この注意点がイメージできない場合は先にデータベースの基本をおさらいしましょう。

それから、よく考えて「値リスト」か「テーブル・クエリ」どちらにするのかを選択して下さい。

設定して作業を進めてからやり直しする必要が発生した場合、変更作業はデータベースの場合、あらゆる箇所で影響が発生して修正する必要があり本当に心が折れます。

ひたすら手間です。

但し、効率よく作成するには便利な機能である事は確かですね。

実はコンボボックスの値リストを使用して作成するのは当店は今回が初めてです。勿論、機能としては知っていましたが、実際のデータベースには使用した事はありません。

しかし、今回は使用させて頂きました。

理由は使用目的が印刷なので過去の履歴を参照する事はあっても集計する事はまずありません。

その方針で作成しています。

もうひとつは作成するテーブルの数が異常に多くなり、その後の管理や保守に手間がかかると予想したからです。

それでは、お疲れ様でした。

ご注意

記事内容についてのご質問の受付は時間が取れませんので行っておりません。

ご自身が使用しているパソコンの状態・環境により、同じような症状であっても同じとは限りません。したがって記事に書かれている内容を行う事で必ずトラブルが解消されるとは限りません。またこの記事を参考に作業される場合は自己責任でお願いします。作業された場合での損害や障害が発生しても当店は一切責任は負いませんのでご了承下さい。

この記事の内容は投稿日時点での内容です。時期によっては仕様などの変更により、この記事のとおりではない場合もございます。