【发布时间】:2020-02-02 08:08:23
【问题描述】:
我很难理解为什么我用于更新 Microsoft Access 表单字段的事件代码只工作了一半。
我有一个查询,我们将调用 DataQuery,它从我们将调用的 Table1 中选择 3 个列值,如下所示:
**Part** **Description** **Revision**
10-123 Descrip1 A
10-342 Descrip2 D
10-232 Descrip3 E
我有另一个表,我想将描述和修订中的值分配给另一个表中的字段,我们将调用 Table2,基于在组合框中选择一个值。
例如:
我们在组合框中选择 10-342 的值,然后将值“Descript2”和“D”分配给 Table2 中的字段。
我可以让它适用于我在位置一的任何列,但不是位置二。
我的小vba代码:
Private Sub ComboBox_AfterUpdate()
Me.DescriptionField_Table2 = Me.ComboBox.Column(1)
Me.RevisionField_Table2 = Me.ComboBox.Column(2)
Me.Requery
End Sub
其中“ComboBox”行源是前面提到的DataQuery。
如上所述,“Me.DescriptionField_Table2 = Me.ComboBox.Column(1)”按预期工作,但第二行似乎被忽略了。我觉得我在这里遗漏了一些超级简单的东西,但我无法弄清楚。
【问题讨论】:
-
将组合框的属性ColumnCount设置为3。
-
为什么要将描述性信息复制到另一个表中?只需保存零件值或自动编号主键。在查询连接表中检索相关信息。
-
@June7 为了给您一些见解,我试图将信息提取到一个子表单中,我想在其中显示修订和描述。我会注意到这可能仍然不是最好的方法,但我唯一能想到的就是在子表单的表中添加一个列,以便它得到更新。
-
@Gustav 这行得通!太感谢了。我知道这很容易。
-
文本框中的表达式可以引用组合框的列以显示描述性值。没有 VBA,也没有数据重复。