1

我有一个包含两个组合框的表单(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 子句中的语法错误”错误。关于如何使这项工作的任何建议?如果您需要任何其他详细信息或说明,请告诉我。谢谢!

4

1 回答 1

1

如果您在查询中使用它,它可能会假设表单fCen1-20在表单视图中打开。

SELECT [Forms]![fCen1-20]![Category 1]

返回的值将来自当前选择的组合框行的绑定列。包括 3 列的事实[Category 1]并不重要。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]
    );

不幸的是,我不知道该建议是否对您的情况有用,因为我不清楚您要完成什么。

于 2013-08-09T17:09:12.777 回答