【发布时间】:2016-06-22 18:28:15
【问题描述】:
第一次发帖,终于有个问题在这里找不到答案。
我有一个 MS Access 查询,它返回 1 个结果(这是一个数字),我想将其存储为一个整数变量 (x),以便以后可以将其用于循环。问题是因为我将它用作记录集并且变量是整数,所以我收到“类型不匹配”错误。
现在我只是将结果存储到一个单元格并将变量设置为等于该单元格:
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)
这里的任何帮助都会很大。谢谢!
【问题讨论】:
-
我没有任何东西可以测试这个,但是
.GetRows方法有一个.Value属性吗?或者x = CInt(LBound(Db.OpenRecordset("SELECT COUNT(Asset_Name) FROM Assets WHERE Active = True").GetRows(1))) -
当我将
.value添加到语句的末尾以使其:x = Db.OpenRecordset("SELECT COUNT(Asset_Name) FROM Assets WHERE Active = True").GetRows(1).Value我收到“需要对象”错误。 -
等等,误读了你的陈述。您的代码不会出错,但它会将 x 返回为零。但这仍然是一个进步。
-
.GetRows(0, 0)这是一个二维数组。还需要查看您对x的声明 -
@Tim-Williams
.GetRows(0, 0)返回“参数数量错误”错误。.GetRows(1)在我只是要求将其存储在电子表格中时没有任何问题,所以我 假设 这很好。我确实将 x 声明为一个整数,只是没有在我的问题中显示它。