运行时错误 2471:作为查询参数的表达式产生错误
RunTime Error 2471: Expression as Query Parameter Producing Error
我在 Access 2010 中有一个引用查询的子项。他们应该 运行 通过三列并找到最低的一列。当我 运行 它时,我得到一个错误:“您作为查询参数输入的表达式产生了这个错误:'Projects.ProjectID'
子:
Private Sub UpdatePriority_Click()
Overall_Priority = DMin("MinvonGeoPri", "qryOverallPriority", "Projects.ProjectId=1")
End Sub
查询:
SELECT
Min(Projects.GeoPavePri) AS MinvonGeoPri
, Min(Projects.StrPri) AS MinvonStrPri
, Min(Projects.SOPri) AS MinvonSOPri
, Projects.ProjectId
FROM
Projects
WHERE
Projects.ProjNo=Activity.ProjNo;
Google建议我在1左右加引号,所以我改成了"Projects.ProjectID=" & 1 & ""
,但是没有用。我已经仔细检查了拼写、字段名称,但我 运行 没有想法。任何建议都会很棒。
从 select 语句创建 qryOverallPriority
后,引用 Projects.[ProjectId]
字段就是 [ProjectId]
。简而言之,您失去了引用父 table 的能力,尽管它可以被引用为 qryOverallPriority.[ProjectId]
但这不是必需的..
Private Sub UpdatePriority_Click()
Overall_Priority = DMin("MinvonGeoPri", "qryOverallPriority", "ProjectId=1")
End Sub
已保存查询提取的任何字段均由保存查询如何查看它引用,而不是来自构成已保存查询的基础 SQL select 语句。同样,别名字段将由它们的别名引用;例如联接中两个 [ProjectId] 字段的 [ProjectId] 和 [ProjectId2]。
您还在使用不带 GROUP BY
子句的聚合 MIN
函数。使用 Access 前端确保您获得所需的结果。也许是这样的,
SELECT
Min(p.GeoPavePri) AS MinvonGeoPri
,Min(p.StrPri) AS MinvonStrPri
,Min(p.SOPri) AS MinvonSOPri
,p.ProjectId
FROM
Projects p
WHERE
p.ProjNo=Activity.ProjNo;
GROUP BY p.GeoPavePri, p.StrPri, p.SOPri, p.ProjectId
你应该可以使用,
Overall_Priority = DLookup("MinvonGeoPri", "qryOverallPriority", "ProjectId=1")
那是未经测试的。我没有构建完整的测试环境,我不知道 Activity.ProjNo
来自哪里。
我在 Access 2010 中有一个引用查询的子项。他们应该 运行 通过三列并找到最低的一列。当我 运行 它时,我得到一个错误:“您作为查询参数输入的表达式产生了这个错误:'Projects.ProjectID'
子:
Private Sub UpdatePriority_Click()
Overall_Priority = DMin("MinvonGeoPri", "qryOverallPriority", "Projects.ProjectId=1")
End Sub
查询:
SELECT
Min(Projects.GeoPavePri) AS MinvonGeoPri
, Min(Projects.StrPri) AS MinvonStrPri
, Min(Projects.SOPri) AS MinvonSOPri
, Projects.ProjectId
FROM
Projects
WHERE
Projects.ProjNo=Activity.ProjNo;
Google建议我在1左右加引号,所以我改成了"Projects.ProjectID=" & 1 & ""
,但是没有用。我已经仔细检查了拼写、字段名称,但我 运行 没有想法。任何建议都会很棒。
从 select 语句创建 qryOverallPriority
后,引用 Projects.[ProjectId]
字段就是 [ProjectId]
。简而言之,您失去了引用父 table 的能力,尽管它可以被引用为 qryOverallPriority.[ProjectId]
但这不是必需的..
Private Sub UpdatePriority_Click()
Overall_Priority = DMin("MinvonGeoPri", "qryOverallPriority", "ProjectId=1")
End Sub
已保存查询提取的任何字段均由保存查询如何查看它引用,而不是来自构成已保存查询的基础 SQL select 语句。同样,别名字段将由它们的别名引用;例如联接中两个 [ProjectId] 字段的 [ProjectId] 和 [ProjectId2]。
您还在使用不带 GROUP BY
子句的聚合 MIN
函数。使用 Access 前端确保您获得所需的结果。也许是这样的,
SELECT
Min(p.GeoPavePri) AS MinvonGeoPri
,Min(p.StrPri) AS MinvonStrPri
,Min(p.SOPri) AS MinvonSOPri
,p.ProjectId
FROM
Projects p
WHERE
p.ProjNo=Activity.ProjNo;
GROUP BY p.GeoPavePri, p.StrPri, p.SOPri, p.ProjectId
你应该可以使用,
Overall_Priority = DLookup("MinvonGeoPri", "qryOverallPriority", "ProjectId=1")
那是未经测试的。我没有构建完整的测试环境,我不知道 Activity.ProjNo
来自哪里。