Ich bin Kopieren einen VBA-Code-Snippet von MSDN, das mir zeigt, wie Ergebnisse aus einer SQL-Abfrage in Excel-Tabelle (Excel 2007) greifen:Zugriff auf SQL-Datenbank in Excel-VBA
Sub GetDataFromADO()
'Declare variables'
Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset
'Open Connection'
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;User ID=abc;Password=abc;"
objMyConn.Open
'Set and Excecute SQL Command'
Set objMyCmd.ActiveConnection = objMyConn
objMyCmd.CommandText = "select * from myTable"
objMyCmd.CommandType = adCmdText
objMyCmd.Execute
'Open Recordset'
Set objMyRecordset.ActiveConnection = objMyConn
objMyRecordset.Open objMyCmd
'Copy Data to Excel'
ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
End Sub
Ich habe bereits Microsoft hinzugefügt ActiveX Data Objects 2.1-Bibliothek als Referenz. Und diese Datenbank ist zugänglich.
Nun, wenn ich diese Unterroutine ausführen, hat es einen Fehler:
Laufzeitfehler 3704: Operation ist nicht erlaubt, wenn das Objekt geschlossen ist.
Auf der Aussage:
ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
Jede Idee, warum?
Danke.
Hilfe! Ich habe den gleichen Fehler, aber die folgenden Lösungen haben nicht geholfen: http://stackoverflow.com/questions/1682717/vba-adodb-run-time-error-3704 – Steven