トップ回答者
データ連結したコンボボックスで、表示用の値とデータ連結に使用する値を使い分けたい

質問
-
・概要
「商品コード」フィールドに連結したコンボボックスを、ユーザには「商品名」で操作させたいのですが、プロパティの設定方法が分かりません。
・状況/希望
VB2005 Express Edition
db.mdbに以下のテーブルがあります。
取引テーブル … 取引No, 商品コード, 単価
商品マスタ … 商品コード, 商品名商品マスタにはデータを入れておきます。
(商品コード, 商品名) = (10, 鉛筆) (20, ボールペン)以下の「取引入力画面」に入力することで、取引テーブルにレコードが作成されていくようにします。
取引入力画面
取引No … テキストボックス
商品名 … コンボボックス
単価 … テキストボックスこの「取引入力画面」を以下の手順で作ります。
(データソースからドラッグアンドドロップで落とす方法です)
・WindowsApplication1 を新規に作成
・新しいデータソース db.mdb を追加
・データソースウィンドウの「取引テーブル」のプルダウンを開き、「詳細」に設定する
・データソースウィンドウの「取引テーブル」のフィールド「商品コード」のプルダウンを開き、ComboBox に設定する
・データソースウィンドウの「取引テーブル」をドラッグアンドドロップし、Form1 上に落とす
・ラベル「商品コード」の見出しを「商品名」に修正する
・商品名を入力するコンボボックスのプロパティを以下のように設定する
(1. DataBindings の Text は既に 「取引テーブルBindingSource - 商品コード」と設定されているが、これは触らない。)
2. DataSource プルダウンから「商品マスタ」を選ぶ。「商品マスタBindingSource」が自動生成され、これがDataSourceとなる。
3. DisplayMember には「商品名」を設定する。この状態でプログラムを実行し、以下の操作をします。
・ナビゲータの+ボタンを押し新規レコード作成モードに入る
・以下を入力する
取引No…1
商品名…鉛筆 ※プルダウンを開くと「鉛筆」「ボールペン」が期待どおり表示される
単価…100
・保存ボタンを押す
・その状態のまま db.mdb を開いて取引テーブルを確認するすると、確かにレコードは作成されているのですが、「商品コード」フィールドには「鉛筆」と入っており、期待する「10」になっていません。
どのようにプロパティを設定すれば期待通りの動作をさせることができるのでしょうか?