【发布时间】:2020-07-13 20:38:36
【问题描述】:
我已经编写了以下代码来将数据从 Access 表导入 Excel,但我在 rs.MoveFirst 阅读时收到一条错误消息:
EOF 或 BOF 为真,或当前记录已被删除
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim ws As Excel.Application
Dim strSQL As String
Dim i As Long
strSQL = "SELECT * FROM salebill where date >= " & _
sale.fromdate.Value & " And date <= " & sale.todate.Value & ""
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=D:\Payroll Soft\Acess\Mobile Shop.mdb;"
.Open
End With
Set rs = New ADODB.Recordset
rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
rs.MoveFirst
MsgBox (rs.RecordCount & " Rows Generated")
''Code to Export Data to Export''
Set ws = CreateObject("Excel.Application")
ws.Workbooks.Add
ws.range("a3").Select
ws.Selection.NumberFormat = "0"
For i = 0 To rs.Fields.Count - 1
ws.ActiveCell.Offset(0, i).Value = rs.Fields(i).Name
Next
ws.range("a4").Select
Do Until rs.EOF
For i = 0 To`enter code here` rs.Fields.Count - 1
ws.ActiveCell.Offset(0, i).Value = rs.Fields(i).Value
Next
ws.ActiveCell.Offset(1, 0).Select
rs.MoveNext`enter code here`
Loop
rs.Close
【问题讨论】:
-
哪一行抛出这个错误?
-
rs.moveFirst.......................错误在这里
-
那么记录集要么是空的,要么已经在
BOF。在尝试访问记录集之前,您应该测试EOF和BOF。 -
请告诉我如何测试 EOF 和 BOF