第一次海报,我终于有一个问题,我在这里找不到答案。
我有一个MS Access查询,该查询返回要存储为整数变量(x)的1个结果(这是一个数字),以便以后可以将其用于循环。问题是,因为我将它用作记录集,并且变量是整数,所以我收到“类型不匹配”错误。
现在,我只是将结果存储到单元格中,并将变量设置为等于该单元格:
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
作为指示的帖子上的原始标签。尽管如此,它们的行为都非常相似,并且光标通常位于第一行(返回数据时)。因此,MoveFirst
没有必要。不过,Microsoft自己始终一直在自己的示例代码中使用它。第一列如果DAO
和ADO
一致好评.Fields(0)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句