【发布时间】:2021-04-03 08:43:24
【问题描述】:
我在组合框中使用以下查询来显示基于表单文本框字段作为参数的表中的数据,但组合框不显示数据。请注意,主项目表中的 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';
【问题讨论】:
-
不要在单引号中包含对表单文本框的引用。如果您使用查询生成器来帮助获得正确的 SQL 构造,那么这些撇号不应该存在。如果您对实际值进行硬编码,请使用撇号:
[ItemCode]='abc'。 -
不带撇号出现以下错误" Syntex error missing operator in query operation '((([ItemCode])=Forms!Oder_Derail subform!itemid))'
-
可能是因为 Order_Detail 子表单中的空间。将表单名称括在 [ ] 中。同样,查询生成器应该为您执行此操作。建议不要在命名约定中使用空格或标点符号/特殊字符(下划线除外)。
-
现在错误是为参数表单输入值!Order_detail 子表单!itemid,我认为系统仍然无法从子表单中正确读取 itemid 字段值。
-
哦,杂种,引用子表单必须首先引用父表单。
Forms!parentformname!subformcontainername.Form!itemid。我总是将容器命名为与其所持有的形式不同的名称,例如ctrDetail。但是如果这个组合框在子表单上并且你在 RowSource 属性中有这个 SQL 语句,那么试试=[itemid]。