Beim Versuch, Daten aus einer SQL-Datenbank mithilfe von VBA-Code in eine Excel-Tabelle abzurufen, kann es zu Problemen kommen Laufzeitfehler 3704, der auf einen ungültigen Vorgang mit einem geschlossenen Objekt hinweist. Dies geschieht normalerweise während des Schritts, in dem Daten aus dem Recordset in die Excel-Tabelle kopiert werden.
Eine mögliche Ursache für diesen Fehler liegt in der Verbindungszeichenfolge. Stellen Sie sicher, dass die Verbindungszeichenfolge den Parameter Initial Catalog enthält, der den Namen der Datenbank angibt, auf die zugegriffen werden soll. Hier ist eine aktualisierte Verbindungszeichenfolge mit dem Parameter:
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;"
Ein weiteres Problem kann die Verwendung einer zusätzlichen Indirektionsebene bei der Angabe des SQL-Befehls sein. Um den Code zu vereinfachen und den Fehler zu vermeiden, können Sie wie folgt direkt eine SQL-Anweisungszeichenfolge verwenden:
strSQL = "select * from myTable"
Öffnen Sie dann das Recordset mit der SQL-Anweisungszeichenfolge als Befehlstext:
objMyRecordset.Open strSQL
Indem Sie diese potenziellen Probleme beheben und sicherstellen, dass die Verbindungszeichenfolge vollständig ist und der SQL-Befehl korrekt ausgeführt wird, sollten Sie in der Lage sein, erfolgreich Daten aus der SQL-Datenbank in Ihre Excel-Tabelle abzurufen VBA.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Zugriff auf eine SQL-Datenbank in Excel VBA den Laufzeitfehler 3704?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!