2013-03-12 4 views
5

キーとコードのマッピングを表すAccessフォームに2列のコンボボックスがあります。コンボボックスの最初の列は 'バインド列'(つまり、MyComboBox.Valueが呼び出されたときに使用される列)です。VBAにアクセス:バインドされていない列に基づいてコンボボックス内の項目を検索します。

第2列にある値に基づいて、コンボボックスのValueを動的に設定する必要があります。私のコンボボックスのソースがある場合などについては、:

私は単にComboBox.Value = "A2"でコンボボックスの値を設定することができますが、どのように私は2番目の列を使用して同じことをしますか? ComboBox.Value = "EFGH"は明らかに無効です。

ComboBox.Value = Dlookup("Value","Table","Code='" & sCode & "'") 

答えて

5

そしてそれは、テーブル/クエリに基づいていないと仮定すると:基本的に、あなたのコンボがテーブルに基づいており、あなたがテーブルに値をのDLookupできると仮定するとComboBox.Value = ComboBox.ValueWhereSecondColumnEquals("EFGH")

+1

'to ListCount-1' :)私はちょうどこれを追加しようとしていました。 – Fionnuala

+0

良いスポット!変更されました:) – RichardC

+0

時には最高の答えは最も簡単です - それを繰り返しているだけで私の心を越えたことは信じられません! – Kai

3

の線に沿ってロジックを探して:

Dim i As Integer 

For i = 0 To ComboBox.ListCount-1 
    If ComboBox.Column(1, i) = "EFGH" Then 
     ComboBox.Value = ComboBox.ItemData(i) 
     Exit For 
    End If 
Next i 
+0

これも機能します。それは現時点でのテーブルに基づいていないが、おそらくいくつかのポイント – Kai

+0

カイ、あなたは非常に少ない値を持っていない限り、非常に私は2または3を意味する、それはメンテナンスと使用の容易さのテーブルに基づいている必要がありますレポートとクエリでは – Fionnuala

+0

私は知っている - すべてのものは後でSQL Serverにバックエンドされますが、現時点では完全なマッピングリストが提供されるのを待っていて、クライアントを表示するためのUIデザイン(ゼロバックエンド付き)最初の返済。 – Kai

0

源はコンボボックスで選択された値であり、目標は未結合コンボボックスは、適切な列にターゲットコンボボックスの.BoundColumnプロパティを設定した後だけCBOXのように、通常、コンボボックスの値を割り当てる場合= cboY。ターゲットコンボボックスがバインドされている場合でも、必要に応じてバインドされた列を動的に変更できます。

関連する問題