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 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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 143708
Url: https://administrator.de/contentid/143708
Printed on: April 27, 2024 at 00:04 o'clock
3 Comments
Latest comment
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]