2011-06-21 46 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 
相关问题