Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA-SQL mit Connection String ADoDB

VBA-SQL mit Connection String ADoDB
21.10.2019 08:18:44
Lisa
Hallo ihr Lieben,
ich bräuchte bitte eure Hilfe,
ich möchte zwischen VBA und SQL Datenbank ( eine Tabelle)
eine Verknüpfung haben , so dass ich auf meine 8 Sheet alle daten von der SQL Datenbank ( Tabelle : WEB).
Vorgabe: Mit Connection String ADODB zu arbeiten...
Hilfe bitte ...
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-SQL mit Connection String ADoDB
21.10.2019 08:26:53
Luschi
Hallo Lisa,
dafür gibt es die I-Net-Seite: https://www.connectionstrings.com
Gruß von Luschi
aus klein-Paris
AW: VBA-SQL mit Connection String ADoDB
21.10.2019 08:35:09
Lisa
Hey Luschi,
Private Sub ConnectSqlServer()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
sConnString = "Provider=SQLOLEDB;Data Source="eingabe";" & _
"UID=Integrated Security;DATABASE="eingabe""
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.Open sConnString
Set rs = conn.Execute("SELECT * FROM Test")
If CBool(conn.State And adStateOpen) Then conn.Close
Set conn = Nothing
Set rs = Nothing
End Sub

soweit hab ich es schon aber es funktioniert nicht wie gewollt...
am Anfang hängt es sich schon auf ..
Muss man denn evtl ein Add-On installieren oder des gleichen .. ?
Anzeige
AW: VBA-SQL mit Connection String ADoDB
21.10.2019 09:12:23
Lisa
Leider noch nicht beantwortet..
AW: VBA-SQL mit Connection String ADoDB
21.10.2019 10:56:17
Luschi
Hallo Lisa,
da fehlen mindesten 3 zusätzliche Angaben:
Server=myServerAddress
User Id=myUsername
Password=myPassword
denn ohne Berichtigungen geht da garnix. Außerdem hast Du noch nicht bekanntgegeben, für welchen SQL-Server das ist_
MS-SQL-Server, Oracle, MySQL u.u.u
Hast Du den Vba-Verweis zu AdoDB gesetzt?
fragt sich Luschi
aus klein-Paris
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Verbindung zwischen Excel VBA und SQL Server mit ADODB


Schritt-für-Schritt-Anleitung

  1. Verweise aktivieren: Stelle sicher, dass die Verweise zu Microsoft ActiveX Data Objects in deinem VBA-Editor aktiviert sind. Gehe zu Extras > Verweise und aktiviere die entsprechende Option.

  2. Connection String festlegen: Der ADODB connection string ist entscheidend für die Verbindung. Ein Beispiel für einen vba sql server connection string könnte so aussehen:

    Dim sConnString As String
    sConnString = "Provider=SQLOLEDB;Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
  3. Verbindung aufbauen: Verwende die folgende Struktur, um die Verbindung herzustellen:

    Dim conn As ADODB.Connection
    Set conn = New ADODB.Connection
    conn.Open sConnString
  4. Daten abfragen: Führe eine SQL-Abfrage aus und speichere die Ergebnisse in einem Recordset:

    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.Open "SELECT * FROM Test", conn
  5. Verbindung schließen: Vergiss nicht, die Verbindung nach der Verwendung zu schließen:

    rs.Close
    conn.Close
    Set rs = Nothing
    Set conn = Nothing

Häufige Fehler und Lösungen

  • Fehler: Verbindung kann nicht hergestellt werden: Überprüfe deinen ADODB connection string. Achte darauf, dass alle Angaben wie Data Source, User Id und Password korrekt sind.

  • Fehler: Keine Berechtigung: Stelle sicher, dass der Benutzer, den du im Connection String angibst, die nötigen Berechtigungen für die SQL-Datenbank hat.

  • Fehler: Verweis nicht gesetzt: Wenn du den Fehler erhältst, dass ADODB nicht gefunden wird, überprüfe, ob der Verweis richtig gesetzt ist.


Alternative Methoden

Wenn du Schwierigkeiten mit ADODB hast, kannst du auch ODBC als Alternative verwenden. Der vba odbc connection string sql server könnte so aussehen:

sConnString = "Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"

Alternativ kannst du auch die DAO-Bibliothek verwenden, wenn du mit Access-Datenbanken arbeitest.


Praktische Beispiele

Ein einfaches Beispiel für den Zugriff auf eine SQL-Datenbank könnte so aussehen:

Sub GetDataFromSQL()
    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sConnString As String

    sConnString = "Provider=SQLOLEDB;Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"

    Set conn = New ADODB.Connection
    conn.Open sConnString

    Set rs = New ADODB.Recordset
    rs.Open "SELECT * FROM MyTable", conn

    ' Hier kannst du die Daten verarbeiten
    ' ...

    rs.Close
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
End Sub

Tipps für Profis

  • Debugging: Verwende Debug.Print um den Status von Variablen oder den Connection State zu überprüfen.

  • Fehlermeldungen: Setze einen Fehlerbehandler (On Error GoTo) in deinem Code, um unerwartete Fehler abzufangen.

  • Parameterisierte Abfragen: Verwende parameterisierte SQL-Abfragen, um SQL-Injection zu verhindern und die Performance zu steigern.


FAQ: Häufige Fragen

1. Wie kann ich den Connection String für eine Oracle-Datenbank anpassen?
Du kannst den vba oracle connection string wie folgt anpassen:

sConnString = "Provider=OraOLEDB.Oracle;Data Source=myOracleDB;User Id=myUsername;Password=myPassword;"

2. Gibt es eine Möglichkeit, Daten in Excel ohne VBA abzurufen?
Ja, du kannst in Excel auch die Abfragefunktion nutzen, um Daten aus SQL-Datenbanken abzurufen. Gehe zu Daten > Daten abrufen und wähle die entsprechende Quelle aus.

3. Ist es möglich, den Connection String für Access zu verwenden?
Ja, du kannst vba access connection string nutzen, um mit Access-Datenbanken zu arbeiten. Ein Beispiel könnte so aussehen:

sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\your\database.accdb;"

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige