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

Im Excel Datenbanken abfragen

Forumthread: Im Excel Datenbanken abfragen

Im Excel Datenbanken abfragen
29.08.2002 09:55:50
S.Hauser
Hi All
Das einzige was ich bisher schlaues zu dem Thema gefunden hab ist das hier:
Public Sub SQLCommander2(ByVal SQLString As String)
Dim sCon As String
Dim Qt As QueryTable

'String zusammenstellen, der die Connection
'zur DB herstellen soll
sCon = "ODBC;DSN = MS Access-Datenbank;DBQ = D:\test2\test.MDB;UID=admin;pwd="
With Application
'Tabelle 1 auswählen und Inhalte löschen,
'aber nicht eine bestehende Formatierung!
.Sheets("Tabelle1").Select
.Cells.Select
.Selection.ClearContents
For Each Qt In .ActiveSheet.QueryTables
Qt.Delete
Next

Set Qt = .ActiveSheet.QueryTables.Add(Connection:=sCon, Destination:=Range("A1"), SQL:=SQLString)
End With

'Die QueryTable ist erstellt. Jetzt werden der Tabelle
'Daten zugewiesen. Dies geschieht mit der Refresh-Methode
Qt.Refresh
End Sub

Nur bei mir geht das nicht und weiss nicht warum.
Kann mir jemand helfen? Ich brauche etwas womit ich SQL-Abfragen im VBA machen und dann am besten in einem Array ablegen kann.

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Im Excel Datenbanken abfragen
29.08.2002 10:03:26
jens tietje
hallo,
vielleicht hilft es dir licht ins dunkel zu bringen, wenn du eine sql-abfrage auf deine datenbank "zu fuss" machst und sie dabei aufzeichnest.
denn dabei zeichnet er dir alle werte auf, die du so benötigst:ODBC-Quelle, evtl. externe Rechnernamen, etc...
du kannst es dann doch an deine bedürfnisse anpassen.
hoffe, dir damit etwas geholfen zu haben

gruss,

jens

Anzeige
Re: Im Excel Datenbanken abfragen
29.08.2002 10:21:07
S.Hauser
Ich nehm an du meinst die Excel Option-Externe Daten importieren.
Hab ich mal gemacht aber ich finde den vba Code dazu ned.
Re: Im Excel Datenbanken abfragen
29.08.2002 10:31:22
jens tietje
ja, genau.

der code befindet sich in dem dazugehörigen modul in der entwicklungsumgebung.

du kommst am besten dorthin, wenn du unter
extras->makro->makros-> dann dein makro auswählen und auf bearbeiten gehen.

jens

Anzeige
Re: Im Excel Datenbanken abfragen
29.08.2002 10:52:15
S.Hauser
Hi
Hab den Code gefunden, nur hat sich ein kleines Probelm ergeben.
Der greift ned direkt auf die Datenbank zu sondern auf ein blödes Query-File.
Re: Im Excel Datenbanken abfragen
29.08.2002 11:04:19
jens tietje
dann mach die aufzeichnung mal ohne die abfrage zu speichern, nur daten an ms excel zurückgeben.
danach solltest du einen verbindungsaufbau mit abfrage und datenrückgabe haben. den sqlstring kannst du ja nach belieben modifizieren.

jens

Anzeige
Re: Im Excel Datenbanken abfragen
29.08.2002 11:10:49
S.Hauser
Ich hab das File editiert und mir das Zeugs raus geholt *g*
jetzt gehts thx viel mal.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel-Datenbanken abfragen mit VBA und SQL


Schritt-für-Schritt-Anleitung

Um Daten aus einer Datenbank in Excel abzufragen, kannst du VBA und SQL verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Modul hinzufügen:

    • Klicke mit der rechten Maustaste auf ein Projekt im Projektfenster und wähle Einfügen > Modul.
  3. Code einfügen:

    • Füge den folgenden Code in das Modul ein:
    Public Sub SQLCommander2(ByVal SQLString As String)
       Dim sCon As String
       Dim Qt As QueryTable
    
       'String zusammenstellen, der die Connection zur DB herstellen soll
       sCon = "ODBC;DSN=MS Access-Datenbank;DBQ=D:\test2\test.MDB;UID=admin;pwd="
    
       With Application
           .Sheets("Tabelle1").Select
           .Cells.Select
           .Selection.ClearContents
           For Each Qt In .ActiveSheet.QueryTables
               Qt.Delete
           Next
    
           Set Qt = .ActiveSheet.QueryTables.Add(Connection:=sCon, Destination:=Range("A1"), SQL:=SQLString)
           Qt.Refresh
       End With
    End Sub
  4. SQL-String anpassen:

    • Ersetze SQLString mit deiner tatsächlichen SQL-Abfrage, z.B. SELECT * FROM DeineTabelle.
  5. Makro ausführen:

    • Schließe den VBA-Editor und führe das Makro über Extras > Makro > Makros aus.

Häufige Fehler und Lösungen

  • Fehler: Verbindung zur Datenbank nicht möglich
    Überprüfe den ODBC-Treiber und die Datenbankverbindung. Stelle sicher, dass der Pfad zur Datenbank korrekt ist.

  • Fehler: SQL-Abfrage ergibt keine Daten
    Überprüfe den SQL-String auf Syntaxfehler oder logische Fehler in der Abfrage.

  • Fehler: Abfrage führt zu einem leeren Blatt
    Stelle sicher, dass die Tabelle in der Datenbank Daten enthält und die Abfrage korrekt ist.


Alternative Methoden

Es gibt verschiedene Methoden, um Daten aus einer Datenbank in Excel abzufragen:

  • Externe Daten importieren: Gehe zu Daten > Externe Daten abrufen und wähle die entsprechende Datenbankquelle.

  • Power Query: Nutze Power Query, um Daten aus verschiedenen Datenquellen zu importieren und zu transformieren.

  • ODBC-Verbindung: Erstelle eine ODBC-Verbindung über die Systemsteuerung, um direkt auf die Datenbank zuzugreifen.


Praktische Beispiele

Ein einfaches Beispiel für eine SQL-Abfrage könnte so aussehen:

Dim sqlAbfrage As String
sqlAbfrage = "SELECT * FROM Kunden WHERE Stadt = 'Berlin'"
Call SQLCommander2(sqlAbfrage)

In diesem Beispiel werden alle Kunden aus Berlin abgerufen. Du kannst die Abfrage je nach Bedarf anpassen.


Tipps für Profis

  • Nutze Debug.Print in deinem VBA-Code, um SQL-Strings vor der Ausführung zu überprüfen.
  • Speichere häufig verwendete SQL-Abfragen in einer Textdatei, um sie bei Bedarf schnell wiederverwenden zu können.
  • Teste deine SQL-Abfragen zuerst in einem SQL-Client, bevor du sie in VBA verwendest.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Tabellen abfragen?
Du kannst Joins in deiner SQL-Abfrage verwenden, um Daten aus mehreren Tabellen zu kombinieren.

2. Welche Datenbanken kann ich mit Excel verbinden?
Excel unterstützt ODBC-Verbindungen zu vielen Datenbanken wie Access, SQL Server, MySQL und mehr.

3. Kann ich Parameter in meinen SQL-Abfragen verwenden?
Ja, du kannst Parameter in deiner SQL-Abfrage verwenden, indem du sie in deinem VBA-Code dynamisch setzt.

4. Wie speichere ich die Ergebnisse in einem Array?
Verwende die Recordset-Objekte, um die Ergebnisse deiner SQL-Abfragen zu speichern und weiterzuverarbeiten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige