我有一个包含两个组合框的表单(fCen1-20)。第一个组合框称为Lookup Value,下拉列表包含Lookup_Value字段,该字段用作数据库中每个表的主键。第二个组合框称为Category,下拉列表包含Category,Code和Table字段。
我希望用户选择查找值和类别,并为这些选择通知查询,该查询返回所选查找值的所选类别的值。复杂因素是每个查找值与超过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子句中的语法错误”错误。有关如何使这项工作的任何建议?如果您需要任何其他细节或说明,请与我们联系。谢谢!
答案 0 :(得分: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]
);
不幸的是,我不知道这个建议是否对你的情况有用,因为我不清楚你想要完成什么。