vba存储logging集为整数variables

第一次海报,我终于有一个问题,我在这里找不到答案。

我有一个MS Access查询返回1结果(这是一个数字),我想存储为一个整数variables(X),所以我可以稍后使用它的循环。 问题是,因为我用它作为logging集,variables是一个整数,我收到“types不匹配”错误。

现在,我只是将结果存储到单元格,并将variables设置为等于单元格:

Ws.Range("A1") = Db.OpenRecordset("SELECT COUNT(Asset_Name) FROM Assets WHERE Active = True").GetRows(1) x = Ws.Range("A1") Ws.Range("A1").Delete 

然后,我只是有一个循环运行x次:

 For i = 0 To x 

基本上,我只是想要一些看起来像这样的代码:

 x = Db.OpenRecordset("SELECT COUNT(Asset_Name) FROM Assets WHERE Active = True").GetRows(1) 

这里的任何帮助将是巨大的。 谢谢!

以下应该给你正确的结果:

 Dim x As Integer Dim db As DAO.Recordset db.MoveFirst If IsNumeric(db.OpenRecordset("SELECT COUNT(Asset_Name) FROM Assets WHERE Active = True").Fields(0).Value) Then x = CInt(db.OpenRecordset("SELECT COUNT(Asset_Name) FROM Assets WHERE Active = True").Fields(0).Value) Else MsgBox "The query did not return a number." & Chr(10) & "Aborting..." End If 

请注意,您正在使用DAO而不是ADO作为您指定的post上的原始标签。 尽pipe如此,他们都performance得非常相似,游标通常位于第一行(当数据返回时)。 所以, MoveFirst应该没有必要。 尽pipe如此,微软仍然一直使用它自己的示例代码。 第一列如果对于DAOADO都是.Fields(0)