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

excel: sql-abfrage mit vba

Forumthread: excel: sql-abfrage mit vba

excel: sql-abfrage mit vba
27.06.2003 09:51:47
mitsch
hallo ihr meister,

hab da ein größeres problem. muss eine abfrage von einer sql datenbank in excel vornehmen. aber nicht über das microsoft query sondern per vba - und das verbunden mit einer suchfunktion. d.h. beispielsweise, ein kombinationsfeld mit z.b. allen namen die sich in der datenbank befinden - zum gewünschten datensatz auswählen.

hab momentan noch nicht wirklich einen ansatz, wie ich mich an das problem rantaste - über hilfe wäre ich wirklich sehr verbunden!

beste grüße - mitsch

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: excel: sql-abfrage mit vba
27.06.2003 13:08:41
andre

hallo mitsch,
vba kann auch mit query. du musst dir den entsprechenden sql-string erstellen und an query übergeben.
in etwa so:
varName="willi"
sql_string(1) = "select name1, name2, pfad "
sql_string(2) = "from db_typ "
sql_string(3) = "WHERE TYP_NR__ = 0815 "
sql_string(4) = "and name1 = '" & varName & "'"
For i = 1 To 4
Application.Run "QueryDatenImportieren", "", _
sql_string(i) _
, , , , , False
Next i
Application.Run "QueryDatenImportieren", "DSN=MeineQuelle;DBQ=MeineQuelle;UID=Ich;PWD=Geheim", _
"", True, True, False, Range(blatt), True, True
wenn's das nicht ist - noch mal melden, habe auch was für dao.
gruss andre

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

SQL-Abfragen in Excel mit VBA durchführen


Schritt-für-Schritt-Anleitung

  1. Excel vorbereiten: Stelle sicher, dass Du die benötigten Daten und eine Excel-Datei hast, in der Du die SQL-Abfrage durchführen möchtest. Du benötigst die Verbindungsdaten zu Deiner SQL-Datenbank.

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

  3. Ein neues Modul hinzufügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. SQL-String erstellen: Definiere den SQL-String, den Du verwenden möchtest. Hier ist ein Beispiel:

    Sub SQLAbfrage()
        Dim varName As String
        varName = "willi"
    
        Dim sql_string(1 To 4) As String
        sql_string(1) = "SELECT name1, name2, pfad"
        sql_string(2) = "FROM db_typ"
        sql_string(3) = "WHERE TYP_NR__ = 0815"
        sql_string(4) = "AND name1 = '" & varName & "'"
    
        Dim i As Integer
        For i = 1 To 4
            Application.Run "QueryDatenImportieren", "", sql_string(i), , , , , False
        Next i
    
        Application.Run "QueryDatenImportieren", "DSN=MeineQuelle;DBQ=MeineQuelle;UID=Ich;PWD=Geheim", "", True, True, False, Range("A1"), True, True
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Du kannst das Makro über Entwicklertools > Makros ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004": Diese Fehlermeldung tritt auf, wenn die SQL-Abfrage nicht korrekt ist. Überprüfe den SQL-String auf Syntaxfehler.

  • Fehler: "Verbindung zur Datenbank kann nicht hergestellt werden": Stelle sicher, dass die DSN-Daten korrekt sind und die Datenbank erreichbar ist. Überprüfe auch, ob Du die richtigen Berechtigungen hast.

  • Fehler: "Kein Ergebnis zurückgegeben": Überprüfe, ob die Bedingungen in Deiner WHERE-Klausel korrekt sind. Möglicherweise gibt es keine Datensätze, die den Kriterien entsprechen.


Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch die Microsoft Query-Funktion in Excel verwenden. Damit kannst Du SQL-Abfragen visuell erstellen, ohne direkt mit VBA zu arbeiten.

  1. Gehe zu Daten > Abfragen und Verbindungen > Abfrage erstellen.
  2. Wähle Deine Datenquelle aus und folge den Anweisungen, um Deine SQL-Abfrage zu erstellen.

Praktische Beispiele

  1. Abfrage von Kundeninformationen:

    Sub KundenAbfrage()
        Dim sql_string As String
        sql_string = "SELECT * FROM Kunden WHERE Land = 'Deutschland'"
        Application.Run "QueryDatenImportieren", "", sql_string, , , , , False
    End Sub
  2. Suche nach bestimmten Produkten:

    Sub ProduktSuche()
        Dim produktName As String
        produktName = "Laptop"
        Dim sql_string As String
        sql_string = "SELECT * FROM Produkte WHERE Name LIKE '%" & produktName & "%'"
        Application.Run "QueryDatenImportieren", "", sql_string, , , , , False
    End Sub

Tipps für Profis

  • Nutze Parameter in Deinen SQL-Abfragen, um die Abfragen dynamisch zu gestalten.
  • Halte Deine SQL-Abfragen übersichtlich und gut dokumentiert, um später Fehler zu vermeiden.
  • Verwende Debug.Print, um Deine SQL-Strings vor der Ausführung zu überprüfen, falls Du Probleme hast.

FAQ: Häufige Fragen

1. Kann ich SQL-Abfragen auch ohne VBA durchführen?
Ja, Du kannst die Microsoft Query-Funktion in Excel verwenden, um SQL-Abfragen ohne VBA zu erstellen.

2. Welche Excel-Version benötige ich für die Verwendung von VBA mit SQL?
Die meisten modernen Excel-Versionen unterstützen VBA und SQL-Abfragen, jedoch solltest Du sicherstellen, dass Du eine Version hast, die VBA unterstützt, wie Excel 2010 oder neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige