我有两个表Order和Customer。
在订单表单中,如果我输入CustId字段的值,我需要CustDesc的值自动引用'Customer'表。
“订单”表单中的其余字段,我已直接映射到订单表单中的字段。我只是在映射到'Customer.CustDesc'到Orders.CustDesc。因为我不知道如何查询如下
从客户中选择custdesc,其中[custId = Orderform中CustId的值]
我是MS Access表单的新手。请帮助。
答案 0 :(得分:1)
您可以使用查找功能:
= DLookup("[custdesc],"[Customer]", "[custId] =[Forms]![Orderform]![CustId]")
(按顺序) CustId_AfterUpdate
[Forms]![Orderform]![CustDesc] = Nz(DLookup("[custdesc],"[Customer]", "[custId] =[Forms]![Orderform]![CustId]"))
- 通过将所需字段的control source
属性设置为相同的语句:
= DLookup("[custdesc],"[Customer]", "[custId] =[Forms]![Orderform]![CustId]")
答案 1 :(得分:0)
使用将两个表连接为表单的记录源而不是订单表的查询可能更容易。这样你就不需要想出这种结构来专门找到另一个值。
查询:
SELECT O.*, C.custdec as CustomerDesc
FROM Order O left join Customer C
ON O.custId = C.custId
如果您还需要能够从此表单编辑/向这些表添加数据,则需要将RecordsetType属性设置为“动态集”。
另一种选择是使用子表单(主表单中的客户数据,子表单中不同订单的数据),但这取决于表单的预期用途。