记录集不迭代

Recordset Not Iterating

我确信这完全是用户错误,但对于我来说,我无法发现如何迭代 table,并将记录写入 Excel。我有下面的代码,但它挂在第一个 Manager ID 上,只是在一个循环中不断地重复写入那个代码。我想遍历 table 中的所有 Manager ID 并将它们写入同一个工作簿。

我应该如何调整此代码才能做到这一点?

  Set xlR = xlWb.Worksheets(1).Range("$R")
  i=0
  Set rs2 = Db.OpenRecordset("SELECT * FROM TestTable ORDER BY [Manager ID] ASC", dbOpenDynaset)
  managerName = CLng(rs2.Fields(3).Value)
  Debug.Print managerName
  With rs2
     .MoveLast
     .MoveFirst
     Do While Not .EOF
        xlR.Value = .Fields(0).Value
        xlR.Offset(ColumnOffset:=1 + (i * 2)).Value = .Fields(2).Value
        xlR.Offset(ColumnOffset:=2 + (i * 2)).Value = "ENTATH01"
        i = i + 1
        .MoveNext
     Loop
     .Close
  End With
  xlWb.SaveAs FileName:=sPath & sFile, FileFormat:=xlOpenXMLWorkbook
  xlWb.Close SaveChanges:=True
  rs2.MoveNext

您没有更改偏移量,因此您一直在分配同一个单元格。

尝试以下操作:

    xlR.Offset(ColumnOffset:=i * 3).Value
    xlR.Offset(ColumnOffset:=1+(i*3)).Value = .Fields(2).Value
    xlR.Offset(ColumnOffset:=2+(i*3)).Value = "ENTATH01"

我假设您将 i 初始化为 0

变化:¨

i = i + 1
.MoveNext

i = i + 2
.MoveNext