记录集内容使用access vba进行excel

时间:2014-05-12 14:09:10

标签: vba access-vba recordset

我试图将记录集内容写入Excel工作表。尝试将记录集内容移动到Movefirst时,我的代码无法正常工作。我的vba代码

   Set cnn = CurrentProject.Connection
   Set rst = New ADODB.Recordset
   strSQL = "SELECT * FROM " & qrytable & ""
   rst.Open strSQL, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect

   Set wsSheet1 = wb.Sheets(conSHT_NAME)
   wsSheet1.Cells.ClearContents
   wsSheet1.Select
   For i = 1 To rst.Fields.Count
     wsSheet1.Cells(1, i) = rst.Fields(i - 1).Name
   Next i

   If rst.EOF Then
   MsgBox "inside rst"
   rst.MoveFirst
   wsSheet1.Range("a2").CopyFromRecordset rst
   End If

   wsSheet1.Columns("A:Q").EntireColumn.AutoFit
   rst.Close

条件如果rst.EOF 变为真,并且当我试图将记录集移动到rst.Movefirst时,调试控件正在移出方法并转移到方法我正在调用此方法而不是将内容写入excel。

1 个答案:

答案 0 :(得分:0)

使用以下内容测试空记录集:

If (rst.BOF And rst.EOF) Then
    rst.Close: set rst = Nothing 
Else
    rst.MoveFirst 

    rst.CopyFromRecordset rst
End If