使用 ADO 查询 SQL 中的多个计数

Using ADO to query multiple counts in SQL

我正在尝试通过 ADO 计算某些表中的项目数。 查询如下:

select count(*) as a from TABLE1;
select count(*) as b from TABLE2;

如果我 运行 通过我的 SQL GUI,我得到:

a
------------
1
b
------------
0

到目前为止一切顺利。

但是,如果我 运行 此代码 (VBA):

Dim adoCon As New ADODB.Connection
Dim adoRecords As ADODB.Recordset
Dim query As String
query ="select count(*) as a from TABLE1;select count(*) as b from TABLE2;"
adoRecords = adoCon.Execute(query)
Debug.Print(adoRecords!a)
Debug.Print(adoRecords!b)

它在 adoRecords!b 上失败如果我检查 adoRecords 对象,Fields 字段只有一项,a.

如果我在两个单独的查询中 运行 它,它工作正常(但我有一个重要的往返时间,所以这很麻烦...)。

如何通过 ADO 获得两个输出?

非常感谢您的帮助,

马克西姆

SELECT COUNT(*) cnt FROM table1
UNION 
SELECT COUNT(*) cnt FROM table2

您将执行一个语句并检索 2 行 1 列。

这将只生成一条记录(如您所愿),其中包含来自 tables

的计数
select (select count(*) from TABLE1) as cntTbl1, (select count(*) from TABLE2) as cntTbl2 

联合所有解决方案将在每个 table 上生成一条记录,并且需要引用 table

select count(*) as cnt, 'table1' as reference from table1
union all
select count(*),'table2' from table2