MS Access Query-By-Form 问题
Posted
技术标签:
【中文标题】MS Access Query-By-Form 问题【英文标题】:MS Access Query-By-Form Issue 【发布时间】:2013-08-09 16:21:53 【问题描述】:我有一个包含两个组合框的表单 (fCen1-20)。第一个组合框称为 Lookup Value,下拉菜单包含 Lookup_Value 字段,该字段用作数据库中每个表的主键。第二个组合框称为类别,下拉列表包含类别、代码和表格字段。
我希望用户选择查找值和类别,并让这些选择通知一个查询,该查询返回所选查找值的所选类别的值。复杂的因素是每个查找值都与 1500 多个独特的信息类别相关联,每个类别都分配有一个唯一的代码 - 该代码用作字段名称。
为了您的参考,我在下面粘贴了我的代码以及我的基本原理:
SELECT [Forms]![fCen1-20]![Category 1].Code
' Rationale: Get the value for the Code associated with a given category
FROM [Forms]![fCen1-20]![Category 1].Table
' Rationale: Reference the Table where the selected Category/Code is housed
ON [Forms]![fCen1-20]![Category 1].Table.Lookup_Value = _
[Forms]![fCen1-20].[Lookup Value];
' Rationale: Select only those records in the table
' for which the Lookup_Value field matches the Lookup Value
' selected in the form
当我运行此代码时,我收到“FROM 子句中的语法错误”错误。关于如何使这项工作的任何建议?如果您需要任何其他详细信息或说明,请告诉我。谢谢!
【问题讨论】:
【参考方案1】:如果您在查询中使用它,假设表单 fCen1-20 在表单视图中打开,它可能会起作用。
SELECT [Forms]![fCen1-20]![Category 1]
返回的值将来自当前选择的组合框行的绑定列。 [Category 1]
包含 3 列这一事实并不重要。 db 引擎只看到“绑定”的列。 (在组合属性表的数据选项卡上检查组合的绑定列属性。)绑定值是查询中唯一可用的组合值。
您不能将列名称附加到组合名称以从这些列中检索值,因此这些都将失败:
[Forms]![fCen1-20]![Category 1].Code
[Forms]![fCen1-20]![Category 1].Table
这就是我为什么认为您的方法行不通的解释。但是,我不知道该建议什么。通常,如果您使用表的主键作为组合的绑定值,则可以在查询中将该绑定值与 DLookup
表达式一起使用。例如,假设所有值都是数字...
SELECT fld1, fld2, etc
FROM YourTable
WHERE some_field = DLookup(
"lookup_field",
"AnotherTable",
"pkey_field = " & [Forms]![fCen1-20]![Category 1]
);
很遗憾,我不知道该建议是否对您的情况有用,因为我不清楚您要完成什么。
【讨论】:
以上是关于MS Access Query-By-Form 问题的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在从 MS Access 数据库中提取的十进制值中添加了零?