MS Access:基于多个表自动填充表单字段

时间:2017-05-22 03:38:04

标签: database forms ms-access populate

我有以下3个表:
零售商 - 身份证,姓名
注册 - 身份证,状态(是/否)
退款 - ID(填写到零售商表的下拉列表中),名称(空),状态(空)

零售商是一个充满数据的表格,而退款作为一个空表开始,当一个退款表格填满时填写。在基于退款表创建表单后,如何允许用户从下拉列表中选择ID并将相应的名称填入“名称”字段,将“状态”填充到“状态”字段中?

需要哪些查询以及如何将其整合到表单中?

我尝试过这里找到的方法 - https://www.linkedin.com/pulse/autofill-form-microsoft-access-tim-miles

但是,我遇到了两个问题:

1)表格未出现在“表格视图”中;它只能在布局视图中查看。我已阅读许多链接,说查询是只读的,或者首先没有记录等。答案没有意义。

2)如果我以这种方式将表单(而不是表)绑定到查询,如何将这些新数据保存到另一个表中?我的目的是将记录保存在退款表中。

1 个答案:

答案 0 :(得分:0)

听起来像Refund是你的基础表。因此,您想要的查询是:

SELECT a.[ID], b.[Name], c.[Status]
FROM Refund as a
Left Join Retailers as b
ON a.[ID] = b.[ID}
Left Join Registration as c
ON a.[ID] = c.[ID]

您需要将所有3个ID字段作为各自表中的主键。这应该使查询可更新,然后您可以将此查询用作表单的DatSource。

您还必须确保为所有表设置关系。如果您从未这样做过,那么很容易做到,Microsoft会在这里给出指示:

https://support.office.com/en-us/article/Create-a-relationship-40c998dd-4875-4da4-98c8-8ac8f109b85b

通过在关系中设置参照完整性,您可以保存数据。