在MS Access表中查询在文本框中输入的id

时间:2014-05-26 04:01:08

标签: ms-access access-vba ms-access-2007

我有两个表Order和Customer。

在订单表单中,如果我输入CustId字段的值,我需要CustDesc的值自动引用'Customer'表。

“订单”表单中的其余字段,我已直接映射到订单表单中的字段。我只是在映射到'Customer.CustDesc'到Orders.CustDesc。因为我不知道如何查询如下

从客户中选择custdesc,其中[custId = Orderform中CustId的值]

我是MS Access表单的新手。请帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用查找功能:

= DLookup("[custdesc],"[Customer]", "[custId] =[Forms]![Orderform]![CustId]")
  • 在AfterUpdate事件的VBA中:

(按顺序) 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属性设置为“动态集”。

另一种选择是使用子表单(主表单中的客户数据,子表单中不同订单的数据),但这取决于表单的预期用途。