尽管它显示在查询数据表视图中,但无法从计数查询中获取结果
Can't get result from Count Query although it shows in Query Datasheet view
我正在尝试将 Count 查询的结果放入一个变量中以便我可以使用它(基本上我只需要知道它是否大于 0)。
我的代码如下所示:
Set qdg = db.QueryDefs("quyGpSumReportCount")
qdg.Sql = Replace(qdg.Sql, "plugtable", VigilTable)
qdg.Sql = Replace(qdg.Sql, "plugchurch", "'" & vChurch & "'")
Set rst = qdg.OpenRecordset("quyGpSumReportCount")
Debug.Print "Total = " & rst!Total
PartCnt = rst!Total
rst.Close
Set rst = Nothing
替换完成后,第一个教堂的查询本身如下所示:
FROM (SELECT DISTINCT t.fldUserID, v.[fldChurch/Parish] FROM tblSpring2022 _
AS t INNER JOIN tblVolunteers AS v ON t.[fldUserID] = v.[ID] WHERE _
(v.[fldChurch/Parish] = '1548 Heights')) AS [%$##@_Alias];
因为在 运行 之后我没有改回查询,所以我可以切换到数据表视图并查看结果:在字段总计中,有一个条目,它的值为 1 .(我 运行 它与几个不同的教堂一起得到,当然,不同但准确的值,包括 0 代表少数。)
但是我为捕获值所做的每一次尝试,都使用字段名称、Total 或 Fields(0) 或 rst.Fields(0) 或我能想到或找到的任何其他名称互联网,总是出现 Null。
所以查询是 运行ning 并返回正确的结果,但我似乎完全无法从 VBA.
中访问该结果
我做错了什么?
谢谢。
好的,我没有解决这个问题,你们解决了;但是已经解决了。
出于我完全无法理解的原因,qdg.OpenRecordset 和 qdf.OpenRecordset 都导致了数据转换错误。但是上面建议的 db.OpenRecordset 工作得很好。它不仅 运行,而且查询结果同时进入 MsgBox 和表单的文本框,使我可以使用它。
如果我能给评论点赞,我会;毕竟,解决方案就在那里。
感谢大家!
我正在尝试将 Count 查询的结果放入一个变量中以便我可以使用它(基本上我只需要知道它是否大于 0)。
我的代码如下所示:
Set qdg = db.QueryDefs("quyGpSumReportCount")
qdg.Sql = Replace(qdg.Sql, "plugtable", VigilTable)
qdg.Sql = Replace(qdg.Sql, "plugchurch", "'" & vChurch & "'")
Set rst = qdg.OpenRecordset("quyGpSumReportCount")
Debug.Print "Total = " & rst!Total
PartCnt = rst!Total
rst.Close
Set rst = Nothing
替换完成后,第一个教堂的查询本身如下所示:
FROM (SELECT DISTINCT t.fldUserID, v.[fldChurch/Parish] FROM tblSpring2022 _
AS t INNER JOIN tblVolunteers AS v ON t.[fldUserID] = v.[ID] WHERE _
(v.[fldChurch/Parish] = '1548 Heights')) AS [%$##@_Alias];
因为在 运行 之后我没有改回查询,所以我可以切换到数据表视图并查看结果:在字段总计中,有一个条目,它的值为 1 .(我 运行 它与几个不同的教堂一起得到,当然,不同但准确的值,包括 0 代表少数。)
但是我为捕获值所做的每一次尝试,都使用字段名称、Total 或 Fields(0) 或 rst.Fields(0) 或我能想到或找到的任何其他名称互联网,总是出现 Null。
所以查询是 运行ning 并返回正确的结果,但我似乎完全无法从 VBA.
中访问该结果我做错了什么?
谢谢。
好的,我没有解决这个问题,你们解决了;但是已经解决了。
出于我完全无法理解的原因,qdg.OpenRecordset 和 qdf.OpenRecordset 都导致了数据转换错误。但是上面建议的 db.OpenRecordset 工作得很好。它不仅 运行,而且查询结果同时进入 MsgBox 和表单的文本框,使我可以使用它。
如果我能给评论点赞,我会;毕竟,解决方案就在那里。
感谢大家!