在VBA中closures对象时不允许操作

我是新来的这个网站,也是VBA,一些如何设法写VBA,但得到了上述错误。 请告诉我我的代码的任何更改。 谢谢

Option Explicit Const ConStrSql As String = "----" Sub CopyDataFromDatabase() Dim DataConn As ADODB.Connection Dim StaffData As ADODB.Recordset Dim DataFiels As ADODB.Field Set DataConn = New ADODB.Connection Set StaffData = New ADODB.Recordset DataConn.ConnectionString = ConStrSql DataConn.Open On Error GoTo CloseConnection With StaffData .ActiveConnection = DataConn .Source = "select ---" .LockType = adLockReadOnly .CursorType = adOpenKeyset End With On Error GoTo CloseRecordset Worksheets.Add For Each DataFiels In StaffData.Fields ActiveCell.Value = DataFiels.Name ActiveCell.Offset(0, 1).Select Next DataFiels Range("A1").Select Range("A2").CopyFromRecordset StaffData Range("A1").CurrentRegion.EntireColumn.AutoFit CloseRecordset: StaffData.Close CloseConnection: DataConn.Close End Sub 

当我删除CloseRecordset: StaffData.Close

我列出了列在Excel中的列,但没有数据

请任何build议。 谢谢

您的代码定义了Recordset但不打开它。 添加:

 StaffData.Open 

之前:

 Range("A2").CopyFromRecordset StaffData 

应该解决问题。