VB中实现导出数据至EXCEL
代码如下:
Private Sub Command1_Click()
Dim txtsql As String
Dim msgtxt As String
Dim i As Integer
Dim myexcel As New Excel.Application
Dim mybook As New Excel.Workbook
Dim mysheet As New Excel.Worksheet
Set mybook = myexcel.Workbooks.Add '添加一个新的BOOK
Set mysheet = mybook.Worksheets.Add '添加一个新的SHEET
myexcel.Visible = True
txtsql = "select * from goods"
Set mrc = executesql(txtsql, msgtxt)
If mrc Is Nothing = False Then
mrc.MoveFirst
For i = 0 To mrc.RecordCount - 1
mysheet.Cells(i + 1).CopyFromRecordset mrc
mrc.MoveNext
Next
End If
End Sub
出现以下错误:实时错误,BOF或EOF中有一个为真,或当前记录已被删除,
将for循环改为while循环也是出现同样的错误
While (mrc.EOF = False)
mysheet.Cells.CopyFromRecordset mrc
mrc.MoveNext
Next
'但我同一个程序里的另一段其它代码如下,就不会产生错误
While (mrc.EOF = False)
If (Trim(mrc.Fields(0))) = Trim(txt_id.Text) Then
MsgBox "该客户编号已经存在!", vbOKOnly + vbExclamation, "警告"
txt_id.Text = ""
txt_id.SetFocus
Exit Sub
Else
mrc.MoveNext
End If
Wend
'为什么啊,2段代码不是同样的道理吗?为什么第一段出错,第2段就没错了,对同一个表操作,表里面有15条记录!