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

Forumthread: Daten aus SQL-Datenbank auslesen und gleichzeitig

Daten aus SQL-Datenbank auslesen und gleichzeitig
17.02.2005 07:52:36
Harald
Hallo!
Möchte aus einer SQL-Datenbank Daten auslesen und abspeichern (evtl. auch XML - File) und gleichzeitig in der Datenbank löschen!
Kann mir da jemand helfen?
mfg
Harald
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus SQL-Datenbank auslesen und gleichzeitig
17.02.2005 09:32:08
ray
hallo harald,
leider habe ich keine antwort für dich, interessiere mich aber ebenfalls dafür.
ch bearbeite ein ähnliches projekt und habe noch nicht die lösung erarbeitet. Mail doch mal, wenn Du die Lösung hast.
Viele Grüße ray
Anzeige
AW: Daten aus SQL-Datenbank auslesen und gleichzeitig
Nike
Hi,
hier mal ein Ansatz:
'Creates connection to the SQL Server
' Create the Connection Object.
Set conn = CreateObject("ADODB.Connection")
' Set the Connection String.
conn.ConnectionString = "DSN=C:\Program Files\Common Files\ODBC\Data Sources\data.dsn;DRIVER=SQL Server;SERVER=PSG1SQLDATA\INSTANCE01;DATABASE=DCAEXECS_HEADS;"
conn.Open
'Or create an odbc dsn entry in the windows odbc administrator
'and then point to it instead of fully qualifying the dsn in the script
Set rcRecordSet = conn.Execute("SELECT KeyID from Ids")
'instead of select use Update or delete...
Sheets("DataBase").range("A1").copyfromrecordset
Bye
Nike
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten aus SQL-Datenbank auslesen und speichern


Schritt-für-Schritt-Anleitung

Um Daten aus einer SQL-Datenbank auszulesen und in Excel zu speichern, kannst Du die folgenden Schritte befolgen. Dieses Vorgehen eignet sich für Excel-Versionen, die VBA unterstützen, wie Excel 2016 oder höher.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklicke im Projekt-Explorer und wähle „Einfügen“ > „Modul“.

  3. Kopiere den folgenden Code in das Modul:

    Sub DatenAusSQLDatenbankAuslesen()
        Dim conn As Object
        Dim rs As Object
        Dim sql As String
    
        ' Erstelle das Connection-Objekt
        Set conn = CreateObject("ADODB.Connection")
        ' Setze die Connection-String
        conn.ConnectionString = "DSN=DeinDSN;SERVER=DeinServer;DATABASE=DeineDatenbank;"
        conn.Open
    
        ' SQL-Abfrage zum Auslesen der Daten
        sql = "SELECT * FROM DeineTabelle"
        Set rs = conn.Execute(sql)
    
        ' Daten in Excel einfügen
        Sheets("Daten").Range("A1").CopyFromRecordset rs
    
        ' Schließe die Verbindung
        rs.Close
        conn.Close
    End Sub
  4. Passe den Connection-String an Deine Datenbank an, indem Du den DSN, Server und Datenbanknamen ersetzt.

  5. Führe das Makro aus, um die Daten aus der SQL-Datenbank auszulesen und in das Arbeitsblatt „Daten“ einzufügen.


Häufige Fehler und Lösungen

  • Verbindungsfehler: Stelle sicher, dass der Connection-String korrekt ist und der SQL-Server erreichbar ist. Überprüfe, ob die Firewall den Zugriff auf den SQL-Server blockiert.
  • SQL-Syntaxfehler: Überprüfe Deine SQL-Abfrage auf korrekte Syntax. Teste die Abfrage zunächst in einem SQL-Management-Tool.
  • Keine Daten gefunden: Stelle sicher, dass die Tabelle, aus der Du Daten auslesen möchtest, nicht leer ist.

Alternative Methoden

Es gibt auch andere Methoden, um Daten aus einer SQL-Datenbank auszulesen:

  • Power Query: In Excel kannst Du Power Query verwenden, um Daten direkt aus einer SQL-Datenbank zu importieren. Gehe zu „Daten“ > „Daten abrufen“ > „Aus Datenbank“ > „Aus SQL Server-Datenbank“.
  • ODBC-Verbindung: Du kannst auch eine ODBC-Verbindung einrichten und die Datenbank auslesen, ohne VBA zu verwenden. Dies ermöglicht Dir, Daten dynamisch in Excel zu aktualisieren.

Praktische Beispiele

Hier sind einige nützliche Beispiele für den Einsatz von SQL-Abfragen in Excel:

  1. Daten aus einer bestimmten Tabelle auslesen:

    SELECT * FROM Kunden
  2. Daten filtern:

    SELECT * FROM Bestellungen WHERE Bestelldatum > '2023-01-01'
  3. Daten zusammenfassen:

    SELECT COUNT(*) AS AnzahlBestellungen FROM Bestellungen

Diese Abfragen kannst Du in das VBA-Skript einfügen, um spezifische Daten aus Deiner SQL-Datenbank auszulesen.


Tipps für Profis

  • Verwendung von Parameter-Abfragen: Mit Parameter-Abfragen kannst Du dynamisch Werte in Deine SQL-Abfragen einfügen, was die Flexibilität erhöht.
  • Datenbankberechtigungen: Stelle sicher, dass Dein Benutzerkonto über die notwendigen Berechtigungen verfügt, um Daten aus der Datenbank auszulesen.
  • Leistungsoptimierung: Bei großen Datenmengen ist es ratsam, nur die benötigten Spalten anstelle von SELECT * auszuwählen.

FAQ: Häufige Fragen

1. Wie kann ich Daten in eine SQL-Datenbank schreiben?
Du kannst Daten in eine SQL-Datenbank schreiben, indem Du ein INSERT-Statement in Deinem VBA-Code verwendest. Hier ein Beispiel:

conn.Execute "INSERT INTO DeineTabelle (Spalte1, Spalte2) VALUES (Wert1, Wert2)"

2. Was ist der Unterschied zwischen ODBC und OLE DB?
ODBC ist eine standardisierte Schnittstelle für den Zugriff auf Datenbanken, während OLE DB eine Microsoft-Technologie ist, die den Zugriff auf verschiedene Datenquellen ermöglicht. OLE DB ist oft leistungsfähiger, wenn es um Microsoft-Datenquellen geht.

3. Kann ich auch XML-Daten auslesen?
Ja, Du kannst XML-Daten aus einer SQL-Datenbank auslesen, indem Du die SQL-Funktion FOR XML in Deiner Abfrage verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige