2011-06-21 8 views
5

私は、ルックアップタイプのコンボボックスを持っています。つまり、ソースをテーブルから選択し、選択した値を別のテーブルに保存しています。私が探しているテーブルには別の列があり、この列の値をテキストボックスに表示する必要があり、コンボボックスの値を変更するたびに、対応する値をテキストボックスに表示する必要があります。これどうやってするの?これまで私が行ったことは、コンボボックスの値に基づいて適切な列を選択するSelectクエリを書くことです。これを行うよりまともな方法がありますか?私を助けてください!MS Access 2007のコンボボックスの値に基づいてテキストボックスの値を入力する方法は?

答えて

12

例えば、あなたの2つのフィールドにコンボボックスのソースを作りますSELECT id, name FROM Customers
コンボの[列数]プロパティを2に設定していることを確認してください。
次に、非結合のテキストボックスのソースを=MyCombo.Column(1)にします(メモリからこの列はゼロに基づいています)。
これは、ゼロコードが必要です。

+0

@iDevelop:ありがとうございます!ありがとうございました!ありがとうございました! :) – CodingInCircles

+0

私はこの方法を試しました。しかし、初めて作成されたときにのみ動作します。閉じると再び開くとき、 'ComboBox.Column(1)'に設定されたテキストボックスは '#Name? 'を示します。なぜこうなった?なにが問題ですか? – CodingInCircles

+0

は、あなたが私に@iDevlopによって示されるようにコンボに依存するように結合していないテキストボックスを設定する –

3

コンボボックスのイベントを使用する方が効果的です。 onChange。したがって、選択が行われると、イベントはテキストボックスの値を設定します。

me!txtTextBox1 = me!cboComboBox1.column(1) 

これはいつもうまくいくでしょう。

0が最初であると、その行のソースに基づいて、列番号をまたのonClickなどのボタンを使用することができるが、選択はあなたです(および以前の記事で述べたように、変化させる。

+2

はまったくコードをするたびに動作します:)時間を保存ありがとう、それはよりよい解決策、私見です。 – Fionnuala

0

を読んだ後質問と回答私は次のことを試みたが、(今のところ)うまく動作するようです:

コンボボックスの選択の複数の列を表示するために、私は次のように頼っています

場所テキストボックスコンボボックスを使って、 他のフィールドをサンプリングして、テキストフレームをカバーするようにサイズを変更します。oコンボボックス。 私は意図的に新しいテキストボックスの右側に小さなスペースを残して、 はコンボボックスの一部ではないことを示しています。テキストボックスのためのコントロールソースの

は、以下の式を入力します。次に

=[DefaultAcct].[Column](1) & " " & [DefaultAcct].[Column](2) 

、コンボボックスの「のonchange」イベントで、テキストボックスにフォーカスを設定します。

Private Sub DefaultAcct_Change() 
    txtConcatenate1.SetFocus 
End Sub 
関連する問題