2016-11-11 8 views
0

私はあなたがトカゲやヘビを所有できるデータベースを持っています。もちろん、1人は多くのトカゲやヘビを所有することができます。 「ペット」フィールドはドロップダウンで、ペットごとにトカゲまたはヘビのいずれかを選ぶことができますが、それぞれのペットを買うための手数料は異なります。トカゲは10ドル、ヘビは15ドルです。アクセスのステートメントの場合

ドロップダウンから「トカゲ」を選択すると、料金は$ 10に変更され、「ヘビ」を選択すると料金は$ 15に変更されます。手動で各料金を入力する代わりに。通常は、

などのif文を記述します。

答えて

2

テーブルを使用します。 IF文を使用する際の問題は、新しい動物を追加したり価格を変更したりするときに、テーブルに新しい動物とコストを追加するだけでコードを書き直す必要があることです。

tbl_Petsというテーブルを作成します。 PetIDAutoNumberプライマリキーとして追加しました.PetNameは重複を許可しないように索引付けされています。PetCostには通貨データ型があります。
enter image description here

次は、フォームを作成してコンボボックスを追加します。
ウィザードを使用する場合:コンボボックスにテーブルから値を取得し(tbl_Pets)、すべてのフィールドをコンボボックスに追加してキー列を非表示にします。

あなたのコンボボックスがCombo0呼び出された場合(フォームにテキストボックスを追加し、そのControl Source=[Combo0].[Column](2)に設定してください。
を これは、3番目の列から値を返します(最初の列は、インデックス番号0である)
enter image description here

または

二つのフィールドにコンボボックスを追加します - 。PetIDPetName
は、テキストボックスを追加し、それにを与えますの
=DLookUp('PetCost','tbl_Pets','PetID=' & [Combo0]) - これは、コンボボックスの隠しコラムのIDに基づいてコストを検索します。
enter image description here

+0

新しいペットや価格を追加することは問題ではないと思われますが、この方法をお勧めしますか? –

+0

私はそう思っていましたが、私は約二十年後に「心配しないでください。しかし、テーブルを参照するのではなく、フォーム上にそのままにしておきたいなら、 '= Switch([pet] = 'Snake'、15、[pet] = 'Lizard'、10)'をコントロールソースとして使うことができますテキストボックス( 'pet'というコンボボックス) –

関連する問題