使用ADO查询SQL

时间:2016-04-20 13:41:07

标签: sql vba ado

我正在尝试通过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对象,则字段字段只有一个项目,a。

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

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

非常感谢你的帮助,

马克西姆

2 个答案:

答案 0 :(得分:1)

待办事项

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

并且您将执行一个语句并检索包含1列的2行。

答案 1 :(得分:1)

这将只使用两个表中的计数生成一条记录(如您所愿)

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

Union all解决方案将在每个表上生成一条记录,并且需要对表的引用

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