在 MS Access 组合框中,如何使用表单值作为 where 类

问题描述

我在组合框中使用以下查询以基于表单文本框字段作为参数显示表中的数据,但组合框不显示数据。请注意,主项目表中的 itemid 字段是字符串。

SELECT [Item].[ID],[Item].[ItemCode],[Item].[ItemName],[Item].[Price_USD],[Item].[Price_GBP],[Item].[Price_THB],[Item].[Price_AED],[Item].[Price_AED_VAT],[Item].[Price_SAR],[Item].[Price_SAR_WHT],[Item].[Hogan_Cost_USD] 
FROM Item WHERE [ItemCode]='Forms!Order_Detail subform!itemid'; 

解决方法

如果这是一个查询对象,那么必须通过父窗体和子窗体容器控件引用子窗体。我总是将容器与其持有的对象命名不同,例如 ctrDetails
WHERE [ItemCode]=Forms!parentformname!ctrDetails.Form!itemid;

如果这条SQL语句直接在combobox RowSource中,combobox和textbox一起在subform上,直接引用textbox就行了。我总是命名与字段不同的控件,例如 tbxIC:
WHERE [ItemCode]=[tbxIC]

您是否从 Item 表中提取每个字段?如果是这样,可以使用通配符缩短 SQL:
SELECT * FROM Item WHERE [ItemCode]=[tbxIC];