MS Access Tips/Sample and VBA and Blog customize etc...

コードでも名称でも入力できるコンボボックス

受注入力フォームで、商品マスタから商品コードを参照して入力するときに、商品コードが分かっているときは、商品コードで入力、わからないときは、商品名をコンボボックスのリストから選択入力できるようにしたい。

下図のようにコード用のコンボボックスと商品名用のコンボボックスを並べて、どちらから入力することも可能で、入力したら即、他方のコンボボックスの値も同期するような仕様にする方法を紹介します。

Frm2WayInputComboBox.png

これは、VBAやマクロは必要なくて、プロパティの設定のみで簡単に実現できます。

難易度:

仕様

下記のようなテーブルがあるとします。

テーブル名:商品
フィールド名:商品コード(主キー), 商品名, ・・・・

テーブル名:受注明細
フィールド名:受注コード(主キー), 商品コード(外部キー), 単価, 数量 ・・・・

受注明細 をレコードソースとする入力フォーム上に、商品コード入力用のコンボボックス(cmb商品コード)と商品名入力用のコンボボックス(cmb商品名)を配置します。

cmb商品コード のプロパティ設定

プロパティ 設定値
コントロールソース 商品コード
値集タイプ テーブル/クエリ
値集合ソース SELECT 商品コード, 商品名 FROM 商品 ORDER BY 商品コード;
連結列 1
列数 2
列幅 1.2cm;6cm
リスト幅 7.2cm
1.2cm

cmb商品名 のプロパティ設定

プロパティ 設定値
コントロールソース 商品コード
値集タイプ テーブル/クエリ
値集合ソース SELECT 商品コード, 商品名 FROM 商品 ORDER BY 商品コード;
連結列 1
列数 2
列幅 0cm
リスト幅 6cm
6cm

以上で、どちらのコンボボックスからも入力できて、入力後、即、同期します。ポイントは、両方ともコントロールソースは共通の 商品コード にして、「列幅」の設定でコード表示用と商品名表示用を使い分けていると言うことです。

なお、サンプルでは、メインフォームの得意先もコードと名称のどちらでも入力できるように設定しています。

サンプルMDB が下記からダウンロードできます。
Frm2WayInputComboBox_07.zip (Access 2007 形式 - 79kb)
Frm2WayInputComboBox.zip (Access 2002-2003 形式 - 68kb)
Frm2WayInputComboBox_2k.zip (Access 2000 形式 - 67kb)


拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/237-6ea1438e
該当の記事は見つかりませんでした。