0

MS Access に問題があり、この問題を解決する方法がわかりません。

フォームにリストボックスがあります。使用によってリストボックスの値が変更された場合、SQL クエリが実行され、結果がいくつかのテキスト ボックスに表示されます。例えば:

ユーザーがリスト ボックスから「A」値を選択すると、次のクエリを実行する必要があります。

SELECT XValue, YValue,Wert FROM Mytable WHERE Name='A' and ID=fzgID 

次に、XValue、YValue、および Wert を 3 つのテキスト ボックスに表示します。問題は、この組み合わせ (XValue、YValue、Wert) に対して複数のペアがある可能性があることです。

どうやってやるの?リスト ボックスとクエリをテキスト ボックスにリンクするにはどうすればよいですか?

どうもありがとうございます

4

2 に答える 2

1

すべての ListBox にはListBox_Click()、リストボックスの要素がクリックされたときに実行されるプロシージャがあります。

次のようにすると、必要なものを取得できます。

Sub ListBox1_Click()
    Dim valueOfListbox As String
    valueOfListBox = ListBox1.Value
    ' **** here comes  your code ****
    ' get the actual value from the listbox and do the query

    ' change the values of the textboxes to the result of the query
End Sub

リストボックスの名前が「ListBox1」とは異なる場合は、プロシージャの名前を変更する必要があります。たとえば、リストボックスの名前が「blaBox」の場合は、blaBox_Click().

于 2013-06-25T11:00:36.087 に答える
0

あなたのデータの構造に応じて、私はこのようなことをします。リストボックスのテーブル/クエリを設定して、表示するすべてのデータを含めます。

SELECT ID, Name, XValue, YValue, Wert FROM Mytable

リストボックスのプロパティ シートの [書式] タブで、列数を2に、列幅を0";2"または に設定します。これにより、リストボックス行の他の値が非表示になります。

3 つのテキスト ボックスで、コントロール ソースを次のように設定します。

Textbox1.ControlSource:=[Listbox1].[Columns](3)

Textbox2.ControlSource:=[Listbox1].[Columns](4)

Textbox3.ControlSource:=[Listbox1].[Columns](5)

数値を調整する必要がある場合があります。リストボックスには、リストボックスのさまざまな列の値にアクセスできるようにする Columns というプロパティがあります。リストボックスにすべてのデータを入れたくない、または入れられない場合はDLookUp、各テキストボックスで関数を使用できます。

Textbox1.ControlSource:=DLookUp("XValue", "Mytable", "ID=""fzGID"" And Name=""" & [Listbox1] & """")

[Listbox1] への参照は、バインドされた列の値を取得します。バインドされた列が検索対象のデータでない場合は、列を参照する必要があります (つまり[Listbox1].[Columns](2))。

于 2013-06-25T16:45:31.977 に答える