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

问题描述 投票:0回答:3

我有一个查找类型的组合框,即,我选择源作为表中的列,并将所选值存储在另一个表中。我正在查找的表还有另一列,我需要在文本框中显示此列中的值,每次更改组合框中的值时,我都需要在文本框中显示相应的值。我怎样才能做到这一点?到目前为止,我所做的是编写一个

Select
查询,根据组合框的值选择适当的列。有没有更合适的方法来做到这一点?请帮助我!

forms ms-access combobox ms-access-2007
3个回答
16
投票

将组合框的源设置为您的 2 个字段,例如

SELECT id, name FROM Customers

确保将组合的列数属性设置为 2,并将列宽相应地设置为 0";1"。
然后使您的未绑定文本框源等于
=MyCombo.Column(1)
(根据记忆,此列索引是从零开始的)。
就是这样,需要零代码。


4
投票

使用组合框的事件会更好,例如onChange,因此当进行选择时,事件会设置文本框的值。

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

这样每次都会有效。

您还可以使用带有 onClick 等的按钮,但选择权在您(正如上一篇文章中提到的,根据行源更改列号,其中 0 是第一个。


0
投票

阅读问题和答案后,我尝试了以下方法,它似乎效果很好(到目前为止):

为了显示组合框选择的多列,我采取了以下措施:

将文本框放在组合框上, 通过对其他字段进行采样来调整其大小,以便它覆盖组合框的文本框架。 我特意在 NEW 文本框右侧留了一个小空间,以表明它 不是组合框的一部分。

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

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

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

Private Sub DefaultAcct_Change()
    txtConcatenate1.SetFocus   
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.