Office: SQL Query ausführen mit VBA

Helfe beim Thema SQL Query ausführen mit VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Profis *Smilie ich habe jetzt relativ vil über SQL Abfragen im Netz gefunden, da ich aber ein ziemlicher SQL Noob bin weiss ich nicht wie... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Rohabu, 5. Juni 2013.

  1. SQL Query ausführen mit VBA


    Hallo liebe Profis *Smilie

    ich habe jetzt relativ vil über SQL Abfragen im Netz gefunden, da ich aber ein ziemlicher SQL Noob bin weiss ich nicht wie ich die angebotenen Lösungen auf meine Anforderung adaptieren soll.

    Ich habe auf einem Rechner das "MS SQL Server Management Studio" installiert und habe dort eine Query mit der ich eine Datenbank Abfrage:

    Code:
    Jetzt möchte ich diese Query aus einer Excel Tabelle aufrufen und den Rückgabewert in eben dieser Tabelle erhalten.

    Mir fehlt leider völlig der Ansatz wie ich das realisieren kann.

    Kann mir jemand Tips geben bzw. mich auf den richtigen Weg bringen?
    Danke schon im Voraus!

    :)
     
    Rohabu, 5. Juni 2013
    #1
  2. push...
     
    Rohabu, 10. Juni 2013
    #2
  3. Hallo Rohabu,

     
    IngGi, 11. Juni 2013
    #3
  4. SQL Query ausführen mit VBA

    Hallo IngGi,

    vielen Dank schon mal für deine Antwort, wenn ich den Code richtig lese ist es genau das was ich brauche.

    Ich habe leider noch Probleme den Connection String anzupassen.
    Wir setzen einen MS SQL Server 2008 ein und ich habe versucht auf der von dir genannten Seite den entsprechenden Connection String zu finden, leider weiß ich nicht welche Verbindungsart ich auswählen muss:

    .NET libraries for SQL Server 2008
    • .NET Framework Data Provider for SQL Server - SqlConnection
    • .NET Framework Data Provider for OLE DB - OleDbConnection
    • .NET Framework Data Provider for ODBC - OdbcConnection
    • Context Connection
    OLE DB providers for SQL Server 2008
    • SQL Server Native Client 10.0 OLE DB Provider
    • SQLXML 4.0 OLEDB Provider
    ODBC drivers for SQL Server 2008
    • SQL Server Native Client 10.0 ODBC Driver

    Ich habe die Verbindung mit dem von dir angegebenen Connection String probiert, erhalte aber beim ausführen des Makros folgende Fehlermeldung:

    Code:
    Klicke ich auf Debuggen wird mir die folgende Zeile angezeigt:

    Code:
    Ich habe in Excel unter Extras > Verweise schon die Haken gesetzt bei:
    • Microsoft ActiveX Data Objects 6.1 Library
    • Microsoft ActiveX Data Objects Recordset 6.0 Library

    Kannst du mir evtl. noch helfen den richtigen Connection String zu finden?
    Username und Kennwort habe ich nicht angegeben da ich per Windows-Authentifizierung auf den Server zugreife, aber auch bei Angabe von Benutzername und Kennwort im Connection String erschint die selbe Fehlermeldung.

    Danke!
     
    Rohabu, 12. Juni 2013
    #4
  5. Hallo Rohabu,

    das müsste imho ein OLE DB - Treiber sein, da bin ich mir ziemlich sicher. Aber ich bin kein Datenbankexperte und habe noch nie etwas mit MS SQL Server zu tun gehabt. Welcher Connectionstring genau passt, kann ich dir also leider auch nicht sagen. Aber da kann dir sicher ein Datenbankforum weiterhelfen.

    Gruß Ingolf
     
    IngGi, 13. Juni 2013
    #5
  6. Hallo Ingolf,

    trotzdem vielen Dank für die Rückmeldung, ich werde den Thread entsprechend mal in einem Datenbank-Forum verlinken.

    Gruß
    Rolf
     
    Rohabu, 13. Juni 2013
    #6
  7. wenn Ihr sog. "Trusted Connections" einsetzt (also eine Anmeldung auf Basis des Windows-Login), dann sollte das einfach so aussehen:

    Code:
    Du musst dabei nur DeinServer und DeineDatenbank durch die richtigen Werte ersetzen.
     
    redround, 13. Juni 2013
    #7
  8. SQL Query ausführen mit VBA

    Hi redround,

    vielen Dank, das war in meinem Fall genau die Lösung! *Smilie
    Wir benutzen Trusted Connections und der Aufruf klappt sofort.

    Die Daten werden zwar im falschen Format zurückgegeben (Die Daten einer Zeile aus der SQL Abfrage werden als Spalte in Excel eingefügt), aber da versuche ich mich mal durchzubeissen *wink.gif*

    Danke!
     
    Rohabu, 10. Juli 2013
    #8
  9. Der Grund hierfür liegt in der doch recht komischen Art, wie im Beispiel-Skript das Ergebnis ausgegeben wurde. Versuch mal statt:
    Code:
    besser

    Code:
    Details zu CopyFromRecordset stehen in der Online-Hilfe.

    Der Beispielcode hat auch noch ein paar andere "Unsauberheiten". So sollte die Connection am Ende der Prozedur auch wieder geschlossen werden. Zusätzlich sollten alle Objektvariablen wieder explizit zerstört werden, damit sie nich versehentlich im Speicher hängen bleiben (z. B. mit Set objRecSet = Nothing)

    auch ist beim Umgang mit Objektvariablen ein Error-Handler sinnvoll, damit diese auch im Fehlerfall korrekt geschlossen / freigegeben werden.
     
    redround, 10. Juli 2013
    #9
Thema:

SQL Query ausführen mit VBA

Die Seite wird geladen...
  1. SQL Query ausführen mit VBA - Similar Threads - SQL Query ausführen

  2. Benötige Hilfe bei SQL-Befehl

    in Microsoft Access Hilfe
    Benötige Hilfe bei SQL-Befehl: Hallo zusammen und alles Gute für 2025 Es ist mal wieder Sale-Zeit und jetzt müssen bei vielen Artikel zu eine festgesetzten Zeit die VK-Preise geändert werden. Man kann das in unserem...
  3. SQL: Filtern mit mehreren Werten aus einer Excelspalte (Liste)

    in Microsoft Excel Hilfe
    SQL: Filtern mit mehreren Werten aus einer Excelspalte (Liste): Hallo zusammen, ich bräuchte Eure Hilfe, bei dem ich nicht weitere komme. Ich lasse importiere SQL-Daten über mehrere Abfragen im Editor vor filtern. Eine Spalte über einen Artikel...
  4. SQL-Abfrage mit where

    in Microsoft Access Hilfe
    SQL-Abfrage mit where: SQL-Abfrage mit where-Parameter. PNrHaupt ist eine Zahl. Ich vermute, da liegt der Fehler, aber ich weiss nicht, wie ich das darstellen soll. Bei jeder neuer PNrHaupt soll eine neue Datei erstellt...
  5. Apostroph in sql Recordset

    in Microsoft Access Hilfe
    Apostroph in sql Recordset: Hallo Gemeinde, einen hätte ich noch: sqlTitel = "SELECT * FROM tbl_Files_Edited WHERE Titel='" & strTitel & "'" Set rs1 = db.OpenRecordset(sqlTitel) Enthält strTitel einen...
  6. Access - SQL: Inhalt auf 255 Zeichen beschränkt

    in Microsoft Access Hilfe
    Access - SQL: Inhalt auf 255 Zeichen beschränkt: Hallo zusammen, in Access habe ich ein Modul mit folgender Funktion: Public Function SQLListe(Nummer As Long) As String Dim strSQL As String Dim rs As DAO.Recordset strSQL = "SELECT Dokument...
  7. Abfrage mit den jüngsten Einträgen erstellen

    in Microsoft Access Hilfe
    Abfrage mit den jüngsten Einträgen erstellen: Hallo liebe Experten, ich bastel gerade an einer Access-Datenbank für die Besuche meiner Klienten. Aus meiner Tabelle "KlientenT" und einer weiteren Tabelle mit "BesucheT" möchte ich eine Abfrage...
  8. SQL-Query Datum älter als zwei Monate

    in Microsoft Access Hilfe
    SQL-Query Datum älter als zwei Monate: Hallo, ich möchte mir in einer Abfrage nur die Datensätze anzeigen lassen, wo das Datum älter als 2 Monate ist. Wie müsste ich dazu meine "where"-Klausel schreiben: Code: WHERE...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden