我是Microsoft Access的新手。这是我的结构:
表格Suppliers
包含字段Name
,Address
,Zip
,PhoneNumber
表格Purchases
包含字段Supplier
,Address
,Zip
,PhoneNumber
(以及其他一些不相关的字段)
Supplier
表中的Purchases
字段应包含对Suppliers
表中记录的引用。
现在我正在创建一个表单,以便用户可以输入Purchases
条记录。它有一个组合框,用于选择Supplier
以及Address
,Zip
,PhoneNumber
的一些文本字段。我想要的是,当用户选择Supplier
时,Address
,Zip
,PhoneNumber
的值将从选定的Supplier
复制到表单中的相应文本字段。
如何使用Visual Basic代码实现此结果?
答案 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条记录移动到下一条记录时文本框更新。
希望能帮助