具有不同记录的VBA Recordset

时间:2014-08-11 15:37:27

标签: excel vba

我有一个简单的循环代码,用于从SQL查询中提取数据。 SQL查询本身只会拉回前5条记录。然而,根据我所看到的帐号,我不会总是得到5条记录,有时它只有一两条记录。我想知道如何才能让代码在没有错误的情况下循环浏览那些无法找到第3,4或5行的错误?

提前致谢

For i = 0 To 4

    Sheets("Exposures").Range("F36").Offset(i, 0).Value = rst2.Fields("Country")
    Sheets("Exposures").Range("I36").Offset(i, 0).Value = rst2.Fields("Value")
    rst2.MoveNext

Next i

2 个答案:

答案 0 :(得分:1)

您可以使用Range.CopyFromRecordset方法。见here
动态的,可能比循环更快。
我想如果你有非常大(超过2KB)的文本字段,我记得它有一个bug。如果不是你的情况,那就去吧。

Sheets("Exposures").Range("I36").CopyFromRecordset rst2

答案 1 :(得分:1)

循环,但仅限于可用行:

do while not rst2.EOF

  ...

  i = i + 1
  rst2.MoveNext
loop