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如此,微软仍然一直使用它自己的示例代码。 第一列如果对于DAO
和ADO
都是.Fields(0)
。