vba 将记录集存储为整型变量
vba store recordset as integer variable
第一次发帖,终于有个问题在这里找不到答案了
我有一个 MS Access 查询 returns 1 个结果(这是一个数字),我想将其存储为整数变量 (x),以便稍后可以将其用于循环。问题是因为我将它用作记录集并且变量是整数,所以我收到 "Type Mismatch" 错误。
现在我只是将结果存储到一个单元格并将变量设置为等于该单元格:
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
请注意,您在 post 上使用 DAO
而不是 ADO
作为原始标签。不过,它们的行为非常相似,并且游标通常位于第一行(返回数据时)。所以,MoveFirst
应该不是必需的。尽管如此,微软自己一直在自己的示例代码中使用它。第一列如果 DAO
和 ADO
相似 .Fields(0)
.
第一次发帖,终于有个问题在这里找不到答案了
我有一个 MS Access 查询 returns 1 个结果(这是一个数字),我想将其存储为整数变量 (x),以便稍后可以将其用于循环。问题是因为我将它用作记录集并且变量是整数,所以我收到 "Type Mismatch" 错误。
现在我只是将结果存储到一个单元格并将变量设置为等于该单元格:
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
请注意,您在 post 上使用 DAO
而不是 ADO
作为原始标签。不过,它们的行为非常相似,并且游标通常位于第一行(返回数据时)。所以,MoveFirst
应该不是必需的。尽管如此,微软自己一直在自己的示例代码中使用它。第一列如果 DAO
和 ADO
相似 .Fields(0)
.