微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 Access 在运行 SQL 时请求参数值

如何解决为什么 Access 在运行 SQL 时请求参数值

Select count([Customer Number])
From
(
    SELECT distinct [Customer Number] & [Membership Number],[Customer Number]
    FROM Data
    Where [Customer Number] = 2000004
)
group by [Customer Number] & [Membership Number];

正在寻找会员号的参数值。这是为什么?

解决方法

外部 SELECT 唯一可用的字段是在子查询 SELECT 中列出的字段。该子查询字段列表不包括 [Membership Number] 作为单独的字段。它仅作为连接 2 个字段的表达式的一部分存在。 Access 将为该计算列分配一个别名(如“Expr”后跟​​一个数字)。并且它不会返回名为 [Membership Number] 的列。

这是一个立即窗口示例,它说明了这个问题......

strSubQ = "SELECT DISTINCT [Customer Number] & [Membership Number],[Customer Number] FROM Data"
Set rs = CurrentDb.OpenRecordset(strSubQ)

' what are the names of the fields available from the subquery?
For i = 0 To (rs.Fields.Count - 1): ? rs.Fields(i).Name : Next
Expr1000
Customer Number

因此,当 Access 在外部查询的 [Membership Number] 子句中看到 GROUP BY 时,它无法在可用字段中找到该名称,因此假定它必须是一个参数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。