Zugriff auf eine SQL-Datenbank in Excel-VBA: Fehlerbehebung bei der Verbindungszeichenfolge
Beim Zugriff auf eine SQL-Datenbank aus Excel-VBA können Benutzer auf Folgendes stoßen Laufzeitfehler: „Vorgang ist nicht zulässig, wenn das Objekt geschlossen ist.“ beim Versuch, Daten aus dem Recordset in einen Excel-Bereich zu kopieren. Dieser Fehler weist häufig auf ein Problem mit der Verbindungszeichenfolge oder dem Status des Recordsets hin.
Eine mögliche Ursache für dieses Problem ist die falsche Angabe der Verbindungszeichenfolge. Stellen Sie sicher, dass alle erforderlichen Parameter bereitgestellt werden, einschließlich des Datenbanknamens und aller erforderlichen Anmeldeinformationen. In der im ursprünglichen Codeausschnitt bereitgestellten Verbindungszeichenfolge fehlt der Parameter „Initial Catalog“, der die Datenbank angibt, mit der eine Verbindung hergestellt werden soll.
Durch Hinzufügen des Parameters „Initial Catalog“ zur Verbindungszeichenfolge und Verwendung einer einfacheren Methode zum Ausführen der SQL-Anweisung direkt (im Gegensatz zu einem ADODB.Command-Objekt) kann das Problem behoben werden. Der überarbeitete Code unten enthält die notwendigen Änderungen:
Sub GetDataFromADO() 'Declare variables' Set objMyConn = New ADODB.Connection Set objMyRecordset = New ADODB.Recordset Dim strSQL As String 'Open Connection' objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;" objMyConn.Open 'Set and Excecute SQL Command' strSQL = "select * from myTable" 'Open Recordset' Set objMyRecordset.ActiveConnection = objMyConn objMyRecordset.Open strSQL 'Copy Data to Excel' ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset) End Sub
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Zugriff auf eine SQL-Datenbank in Excel-VBA die Meldung „Vorgang ist nicht zulässig, wenn das Objekt geschlossen ist'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!