访问表单显示所选组合框项目的其他表格的字段

时间:2014-10-09 20:12:05

标签: vba ms-access

我是Microsoft Access的新手。这是我的结构:

表格Suppliers包含字段NameAddressZipPhoneNumber
表格Purchases包含字段SupplierAddressZipPhoneNumber(以及其他一些不相关的字段)

Supplier表中的Purchases字段应包含对Suppliers表中记录的引用。

现在我正在创建一个表单,以便用户可以输入Purchases条记录。它有一个组合框,用于选择Supplier以及AddressZipPhoneNumber的一些文本字段。我想要的是,当用户选择Supplier时,AddressZipPhoneNumber的值将从选定的Supplier复制到表单中的相应文本字段。

如何使用Visual Basic代码实现此结果?

1 个答案:

答案 0 :(得分:3)

首先要小心谨慎。复制日期有时是错误的方法,因为它会破坏数据的关系完整性。也就是说,有时可以有完全正确的理由这样做。我不会再进一步​​了解它。

最简单的方法之一是确保您在供应商组合框的记录源中提供数据。它们不需要可见,您可以将列宽设置为0以隐藏它们。 让我们假装你的记录来源是:

SELECT Suppliers.[Name], Suppliers.Address, Suppliers.Zip, Suppliers.PhoneNumber from Suppliers

现在在组合框AfterUpdate事件中我们复制数据。

Private Sub SupplierCombo_AfterUpdate()
  If IsNull(Me.SupplierCombo) Then
    Me.txtAddress=Null
    Me.txtZip=Null
    Me.txtPhoneNumber=Null
  Else
    Me.txtAddress=me.SupplierCombo.Column(1)
    Me.txtZip=me.SupplierCombo.Column(2)
    Me.txtPhoneNumber=me.SupplierCombo.Column(3)
  End If

End Sub

如果您的文本框已绑定,则表示您已完成。如果它们未绑定,您还需要表单当前事件中的代码,以确保在从1条记录移动到下一条记录时文本框更新。

希望能帮助