2015-04-01 54 views
0

我對這個站點以及VBA, 的一些新增內容,有些是我設法寫入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中列出的列,但不影響數據

請任何意見。謝謝

回答

1

您的代碼定義Recordset,但不打開它。添加:

StaffData.Open 

前:

Range("A2").CopyFromRecordset StaffData 

應該解決的問題。

+0

感謝它解決了。你能不能請建議在VBA中添加存儲過程。我想我以後再見。謝謝 – GK1960 2015-04-01 10:11:44

+0

@ KK1960你的問題不清楚,與這個問題無關。如果你對存儲過程有任何問題,你應該創建一個單獨的問題並用所有的細節來描述它。 – BrakNicku 2015-04-01 10:15:20

+0

@ user3964075,我在同一個任務中獲得了更多的需求。我有一列包含紅色,琥珀色,綠色和N/A值。現在我想要根據值(紅色,琥珀色,綠色和白色)的背景顏色。我如何在VBA中做到這一點?謝謝 – GK1960 2015-04-01 12:29:23

相關問題