Ausführen einer SQL-Abfrage über VBA

Ausführen einer SQL-Abfrage über VBA

Ich bin neu hier, aber ich schaue immer auf dieser Website vorbei, wenn ich Probleme mit Excel habe, und bisher haben Sie mir immer geholfen! Jetzt habe ich ein Problem mit VBA: Ich möchte eine SQL-Abfrage über ein Makro „aufrufen“, also im Grunde die Daten aus der Abfrage in mein aktives Blatt kopieren und einfügen.

Ich habe es mit der folgenden Abfrage versucht, die ich auf dieser Website gefunden habe (ich bin nicht sicher, welcher Thread es war, da ich so viele überprüft habe, bevor ich sie selbst gestellt habe):

Sub sql()
'Initializes variables
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim ConnectionString As String
Dim StrQuery As String

'Setup the connection string for accessing MS SQL database
   'Make sure to change:
       '1: PASSWORD
       '2: USERNAME
       '3: REMOTE_IP_ADDRESS
       '4: DATABASE
    ConnectionString = connString = "Driver={"mydriver"};Server="myserver";Database="mydatabase";UID="Myuserid";PWD="mypwd";Port=PortNum;SSL=true;Sslmode=Require"

    'Opens connection to the database
    cnn.Open ConnectionString
    'Timeout error in seconds for executing the entire query; this will run for 15 minutes before VBA timesout, but your database might timeout before this value
    cnn.CommandTimeout = 900

    'This is your actual MS SQL query that you need to run; you should check this query first using a more robust SQL editor (such as HeidiSQL) to ensure your query is valid
    StrQuery = "Select * from YYY.XXXX where date >='2020-03-01'"

    'Performs the actual query
    rst.Open StrQuery, cnn
    'Dumps all the results from the StrQuery into cell A2 of the first sheet in the active workbook
    Sheets(1).Range("A2").CopyFromRecordset rst
End Sub

Dies ist der Fehler, den ich erhalte: Laufzeit Fehler

Ich habe versucht, den Fehler zu googeln und habe herausgefunden, dass ich den Server in meinem System32 haben sollte. Ich habe in der „Computerverwaltung“ nachgeschaut, aber dort finde ich nichts, was mit SQL zu tun hat.

Haben Sie Vorschläge?

Ich entschuldige mich im Voraus, falls es bereits einen anderen Thread zum gleichen Problem gibt, aber ich konnte bisher nichts finden, was es löst.

BEARBEITEN: Ich habe die TABELLE, die Benutzer-ID und das Passwort nicht eingefügt, da es sich um vertrauliche Daten handelt, die ich nicht online teilen kann. Mein Problem betrifft jedoch Treiber, Server und Datenbank. Ich bin nicht sicher, was ich dort eingeben soll. Und wo soll ich die URL für meine Abfrage (jdbc:...) eingeben?

Normalerweise verwende ich SQL Workbench, um die Daten abzurufen, und kopiere sie jede Woche in ein Arbeitsblatt ein. Das ist, was das Makro stattdessen tun soll. Entschuldigen Sie, wenn ich vor der Bearbeitung nicht alles richtig erklärt habe.

verwandte Informationen