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

Forumthread: Abfrage wie SQL in Excel VBA?

Abfrage wie SQL in Excel VBA?
02.02.2005 15:05:04
littlemungo
Hallo,
ich habe eine riesige Tabelle, aus der ich ähnlich wie mit SQL bestimmte Datensätze selektieren möchte und die Werte einer Spalte aus jedem selektierten danach addieren.
In SQL wüßte ich, wie das zu machen ist, in Exycel VBA aber leider nicht. Kann mir jemand helfen?
Zur besseren Verständlichkeit:
Spalte A: Bundesland
Spalte B: Geschlecht
Spalte C: Alter
Spalte D: Anzahl
Ich möchte nun zB alle Männer aus Hessen, die 33 Jahre alt sind, selektieren und die ANzahl zurückgeben. In SQL würde das in etwa heißen:
SELECT COUNT Anzahl FROM Tabelle WHERE Bundesland="Hessen" AND "Geschlecht="M" AND Alter="33".
Wie mache ich das in Excel VBA?
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage wie SQL in Excel VBA?
Dr.
Dann machs doch in Access!
AW: Abfrage wie SQL in Excel VBA?
littlemungo
wär ja naheliegend... wenn access vorhanden wäre... MUSS in excel sein....
AW: Abfrage wie SQL in Excel VBA?
Dr.
Hm, und dann genügt Dir der Autofilter nicht?
Anzeige
AW: Abfrage wie SQL in Excel VBA?
02.02.2005 16:19:44
littlemungo
nein, der genügt leider nicht. Erstens ist diese Abfrage in ein VBA Projekt eingebettet, und zweitens muß ich Mehrfachauswahl in einer Spalte vorsehen (bspw. in einem Feld "Bundesland" alle Leute aus Hessen und Rheinland-Pfalz.....)
AW: Abfrage wie SQL in Excel VBA?
02.02.2005 16:18:55
Russi
HI!
Auch Excel bietet SQL in Form einer Datenabfrage über MS Query.
Erstelle eine neue Datei, gehe im Excel Menü auf DATEN, externe Daten, neue Abfrage erstellen, Datenquelle: xls-Datei.
Viele Grüße
Russi
www.Russi.de.tt
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

SQL-ähnliche Abfragen in Excel VBA durchführen


Schritt-für-Schritt-Anleitung

Um eine SQL-Abfrage in Excel VBA durchzuführen, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste im Projektfenster und wähle "Modul einfügen".
  3. Definiere die Variablen:

    • Lege die Variablen für die Daten fest, die du abfragen möchtest. Beispiel:
    Dim ws As Worksheet
    Dim r As Range
    Dim countAnzahl As Long
  4. Setze das Arbeitsblatt:

    • Weise das Arbeitsblatt zu, auf dem sich deine Daten befinden:
    Set ws = ThisWorkbook.Sheets("Tabelle1")
  5. Führe die SQL-Abfrage durch:

    • Verwende eine Schleife, um die gewünschten Datensätze zu selektieren und die Anzahl zu addieren. Beispielcode:
    countAnzahl = 0
    For Each r In ws.Range("A2:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)
       If r.Value = "Hessen" And r.Offset(0, 1).Value = "M" And r.Offset(0, 2).Value = 33 Then
           countAnzahl = countAnzahl + r.Offset(0, 3).Value
       End If
    Next r
    MsgBox "Die Anzahl beträgt: " & countAnzahl
  6. Führe das Skript aus:

    • Drücke F5, um den Code auszuführen und die Anzahl anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: "Typen inkompatibel"

    • Lösung: Stelle sicher, dass die Datentypen übereinstimmen (z.B. Zahl vs. Text). Verwende CStr() oder CInt() zur Typkonvertierung.
  • Fehler: "Objekt nicht gefunden"

    • Lösung: Überprüfe den Namen des Arbeitsblatts und die Zellreferenzen.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, gibt es auch die Möglichkeit, Excel-Abfragen über MS Query durchzuführen:

  1. Gehe zu Daten > Externe Daten > Neue Abfrage erstellen.
  2. Wähle die Datenquelle (z. B. eine Excel-Datei) aus.
  3. Erstelle deine SQL-Abfrage direkt im Abfrage-Editor.

Diese Methode ist besonders nützlich, um schnell SQL-Abfragen in Excel zu erstellen, ohne den VBA-Code zu schreiben.


Praktische Beispiele

Hier sind einige Beispiele zur Verwendung von SQL in Excel VBA:

  • Um die Anzahl der Frauen aus Rheinland-Pfalz zu zählen:

    If r.Value = "Rheinland-Pfalz" And r.Offset(0, 1).Value = "W" Then
       countAnzahl = countAnzahl + r.Offset(0, 3).Value
    End If
  • Um die Gesamtanzahl aller Personen in Hessen zu addieren:

    If r.Value = "Hessen" Then
       countAnzahl = countAnzahl + r.Offset(0, 3).Value
    End If

Tipps für Profis

  • Nutze Fehlerbehandlungsroutinen in deinem Code, um unerwartete Fehler abzufangen.
  • Vermeide Hardcoding von Werten, indem du Variablen verwendest, um die Wartbarkeit deines Codes zu verbessern.
  • Experimentiere mit SQL-Queries in VBA, um komplexere Abfragen zu erstellen, wie z.B. JOIN-Operationen.

FAQ: Häufige Fragen

1. Kann ich SQL-Abfragen direkt in Excel verwenden?
Ja, du kannst SQL-Abfragen über MS Query oder mit VBA durchführen.

2. Welche Excel-Version benötige ich für SQL-Abfragen in VBA?
Die meisten modernen Excel-Versionen (2010 und höher) unterstützen SQL-Abfragen in VBA.

3. Funktioniert die SQL-Abfrage auch mit Access-Datenbanken?
Ja, du kannst auch Access VBA SQL-Abfragen ausführen, indem du eine Verbindung zur Access-Datenbank herstellst.

4. Wie kann ich mehrere Bedingungen in einer SQL-Abfrage kombinieren?
Du kannst mehrere If-Bedingungen in deinem VBA-Code verwenden, um die gewünschten Datensätze zu filtern.

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