SQL VBA - Gib alles zurück in W HERE Klausel
Hallo liebe Administrator Mitglieder.
Ich habe folgendes Problem, bei dem Ihr mir bestimmt weiterhelfen könnt.
Ich habe in Excel mehrer Dropdownfelder erzeugt, in welchen variable Werte und immer der Wert "Alles" steht. Nun suche ich eine SQL Anweisung, welche mir alle Werte zurüchgibt, wenn alles ausgewählt wird. Zur genaueren Erleuterung ein kurzes Beispiel: ich habe ein Dropdownfeld Autos mit den Werten "Alles" ," BMW" ,"Audi" und ein Dropdownfeld Fahrer mit den Werten "Alles" ," Müller" "Schimdt". Mun sollen alle Kombiantionen möglich sein. z.. Alle Autos Fahrer Müller oder Alle Autos Alle Fahrer.
Gibt es eine Möglichkeit Wildcards nach der Where Bedingung einzusetzen?
Meine Idee ist:
.Open "SELECT * FROM Tabelle WHERE Auto = ComboBoxAutos AND Fahrer = ComboBox Fahrer"
Dies funktioniert auch, wenn ein bestimtes Auto und Farher ausgewählt ist.
Über Anregungen und Lösungsvorschläge würde ich mich sehr freuen.
Vielen Dank für Eure Bemühungen schon einamal in Vorraus.
Ich habe folgendes Problem, bei dem Ihr mir bestimmt weiterhelfen könnt.
Ich habe in Excel mehrer Dropdownfelder erzeugt, in welchen variable Werte und immer der Wert "Alles" steht. Nun suche ich eine SQL Anweisung, welche mir alle Werte zurüchgibt, wenn alles ausgewählt wird. Zur genaueren Erleuterung ein kurzes Beispiel: ich habe ein Dropdownfeld Autos mit den Werten "Alles" ," BMW" ,"Audi" und ein Dropdownfeld Fahrer mit den Werten "Alles" ," Müller" "Schimdt". Mun sollen alle Kombiantionen möglich sein. z.. Alle Autos Fahrer Müller oder Alle Autos Alle Fahrer.
Gibt es eine Möglichkeit Wildcards nach der Where Bedingung einzusetzen?
Meine Idee ist:
.Open "SELECT * FROM Tabelle WHERE Auto = ComboBoxAutos AND Fahrer = ComboBox Fahrer"
Dies funktioniert auch, wenn ein bestimtes Auto und Farher ausgewählt ist.
Über Anregungen und Lösungsvorschläge würde ich mich sehr freuen.
Vielen Dank für Eure Bemühungen schon einamal in Vorraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 143708
Url: https://administrator.de/contentid/143708
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo!
Ich habe von Excel oder VBA keine Ahnung, aber von SQL...
Die richtige Syntax muesste Lauten:
SQL = "SELECT * FROM Tabelle WHERE ((Auto = ComboBoxAutos) AND (Fahrer = ComboBox Fahrer))"
Wildcard in SQL ist leider nicht der * sondern %
da hast du (aber: siehe meine 2. Zeile...) nun 2 Möglichkeiten:
a) entweder gelingt es Dir, bei Alles als Value das zeichen % zu hinterlegen
b) eine Umformung (die in etwa so aussehen könnte - aber wie gesagt: ich von VBA nix Ahnung...)
Hoffe, zumindest ein bisschen geholfen zu haben...
(falls sich sonst niemand finden sollte, der mit VBA mehr am Hut hat als ich...)
lg
Edi
Ich habe von Excel oder VBA keine Ahnung, aber von SQL...
Die richtige Syntax muesste Lauten:
SQL = "SELECT * FROM Tabelle WHERE ((Auto = ComboBoxAutos) AND (Fahrer = ComboBox Fahrer))"
Wildcard in SQL ist leider nicht der * sondern %
da hast du (aber: siehe meine 2. Zeile...) nun 2 Möglichkeiten:
a) entweder gelingt es Dir, bei Alles als Value das zeichen % zu hinterlegen
b) eine Umformung (die in etwa so aussehen könnte - aber wie gesagt: ich von VBA nix Ahnung...)
Autoauswahl = ComboBoxAutos
Fahrerauswahl = ComboBox Fahrer
if Autoauswahl = "Alles" then Autoauswahl = "%"
if Fahrerauswahl = "Alles" then Fahrerauswahl = "%"
SQL = "SELECT * FROM Tabelle WHERE ((Auto LIKE Autoauswahl) AND (Fahrer LIKE Fahrerauswahl))"
(falls sich sonst niemand finden sollte, der mit VBA mehr am Hut hat als ich...)
lg
Edi
Mit VBA kann ich auch nicht dienen, aber mit ein wenig Verständnis von Scripten. Ich würde ohne von der VBA-Syntax Ahnung zu haben so schreiben:
Markus
[Edit Bibei] Codeformatierung [/Edit]
if ComboBoxAutos = "Alles" and ComBoxFahrer = "Alles" then
REM holt meines Wissens alle Datensätze
SQL = "SELECT * FROM Tabelle
elseif if ComboBoxAutos = "Alles" and ComBoxFahrer <> "Alles" then
REM alle Datensätze mit bestimmten Fahrer
SQL = "SELECT * FROM Tabelle WHERE (Fahrer = ComboBoxFahrer)"
elseif if ComboBoxAutos <> "Alles" and ComBoxFahrer = "Alles" then
REM alle Datensätze mit bestimmtes Auto
SQL = "SELECT * FROM Tabelle WHERE (Auto = ComboBoxAutos)"
else
REM alle Datensätze mit bestimmtes Auto & bestimmten Fahrer
SQL = "SELECT * FROM Tabelle WHERE ((Auto = ComboBoxAutos) AND (Fahrer = ComboBox Fahrer))"
endif
[Edit Bibei] Codeformatierung [/Edit]