2011-06-21 63 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

謝謝你節省了我的時間:) –

3

使用組合框的事件更好,例如onChange,所以當進行選擇時,事件設置文本框的值。

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

這樣它會每次都有效。

你也可以使用一個按鈕的onClick等,但選擇權在你(和在以前的文章中提到,改變基於其行來源中列數0是第一個。

+2

設置一個未綁定的文本框取決於@iDevlop說明的組合,每次都沒有代碼,所以這是一個更好的解決方案,恕我直言。 – Fionnuala

0

看完後問題和答案我嘗試以下,而且似乎運作良好(到目前爲止):

爲了顯示一個下拉框選擇多列,我已經使出了以下內容:

放置一個文本框通過組合框, 通過對其他字段進行採樣來使其大小,以便覆蓋文本框o f組合框。 我特意在NEW文本框的右邊留下了一個小空格,表示它不是組合框的一部分。

在控制源的文本框中輸入下面的表達式:

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

然後,在「平變化」的組合框的情況下,焦點設置爲文本框。

Private Sub DefaultAcct_Change() 
    txtConcatenate1.SetFocus 
End Sub 
相關問題