如何根据MS Access 2007中的组合框中的值填充文本框的值?

时间:2011-06-21 09:15:29

标签: forms ms-access combobox ms-access-2007

我有一个具有查找类型的组合框,即我已选择源作为表中的列,并将所选值存储在另一个表中。我正在查找的表有另一列,我需要在此列中显示的值显示在文本框中,每次我更改组合框中的值时,我需要在文本框中显示相应的值。我怎样才能做到这一点?到目前为止,我所做的是编写一个Select查询,根据组合框的值选择适当的列。有没有更好的方式这样做?请帮帮我!

3 个答案:

答案 0 :(得分:13)

将组合框的来源设为2个字段,例如SELECT id, name FROM Customers
确保将组合的Column Count属性设置为2 然后让你的未绑定文本框源等于=MyCombo.Column(1)(从内存中,此列基于零) 就是这样,需要零代码。

答案 1 :(得分:3)

使用组合框的事件更好,例如onChange,所以当做出选择时,事件设置文本框的值。

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

这样每次都可以使用。

您也可以使用onClick等按钮,但选择权属于您(并且如前一篇文章中所述,根据行源更改列号,其中0为第一个。

答案 2 :(得分:0)

在阅读了问题和答案后,我尝试了以下内容,它似乎运行良好(到目前为止):

为了显示组合框选择的多个列,我采用了以下方法:

在组合框上放置一个文本框, 通过采样其他字段来调整大小,使其覆盖组合框的文本框架。 我故意在NEW文本框右侧留下一个小空格来表示它     不属于组合框。

在文本框的控制源中输入以下表达式:

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

然后,在组合框的'onchange'事件中,将焦点设置为文本框。

Private Sub DefaultAcct_Change()
    txtConcatenate1.SetFocus   
End Sub