Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich beim Zugriff auf eine SQL-Datenbank in Excel-VBA die Meldung „Vorgang ist nicht zulässig, wenn das Objekt geschlossen ist'?

Warum erhalte ich beim Zugriff auf eine SQL-Datenbank in Excel-VBA die Meldung „Vorgang ist nicht zulässig, wenn das Objekt geschlossen ist'?

Mary-Kate Olsen
Freigeben: 2025-01-01 09:20:12
Original
488 Leute haben es durchsucht

Why Am I Getting

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage