Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL VBA - Gib alles zurück in W HERE Klausel

Frage Entwicklung Datenbanken

Mitglied: loki99

loki99 (Level 1) - Jetzt verbinden

28.05.2010 um 08:27 Uhr, 3242 Aufrufe, 3 Kommentare

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.
Mitglied: Edi.Pfisterer
28.05.2010 um 09:35 Uhr
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...)

01.
Autoauswahl = ComboBoxAutos 
02.
Fahrerauswahl = ComboBox Fahrer 
03.
if Autoauswahl = "Alles" then Autoauswahl = "%" 
04.
if Fahrerauswahl = "Alles" then Fahrerauswahl = "%" 
05.
SQL = "SELECT * FROM Tabelle WHERE ((Auto LIKE Autoauswahl) AND (Fahrer LIKE Fahrerauswahl))"
Hoffe, zumindest ein bisschen geholfen zu haben...
(falls sich sonst niemand finden sollte, der mit VBA mehr am Hut hat als ich...)

lg
Edi
Bitte warten ..
Mitglied: BigWim
28.05.2010 um 09:45 Uhr
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:
01.
if ComboBoxAutos = "Alles" and ComBoxFahrer = "Alles" then 
02.
    REM holt meines Wissens alle Datensätze 
03.
    SQL = "SELECT * FROM Tabelle  
04.
elseif if ComboBoxAutos = "Alles" and ComBoxFahrer <> "Alles" then 
05.
    REM alle Datensätze mit bestimmten Fahrer 
06.
    SQL = "SELECT * FROM Tabelle WHERE (Fahrer = ComboBoxFahrer)" 
07.
elseif if ComboBoxAutos <> "Alles" and ComBoxFahrer = "Alles" then 
08.
    REM alle Datensätze mit bestimmtes Auto 
09.
    SQL = "SELECT * FROM Tabelle WHERE (Auto = ComboBoxAutos)" 
10.
else 
11.
    REM alle Datensätze mit bestimmtes Auto & bestimmten Fahrer 
12.
    SQL = "SELECT * FROM Tabelle WHERE ((Auto = ComboBoxAutos) AND (Fahrer = ComboBox Fahrer))" 
13.
endif
Markus


[Edit Bibei] Codeformatierung [/Edit]
Bitte warten ..
Mitglied: loki99
28.05.2010 um 12:41 Uhr
Danke für die schnellen Antworten. In der Zwischenzeit habe ich bemerkt, dass das Problem "erst einmal" wo anderst liegt. Die Datenbank stuktur ist bei mir gegeben und kann nicht geändert werde. Aber nun zum Problem. Die Daten liegen nicht in einem Datensatz sonder über mehrere verteilt. Ich gehe einmal vom Autobeispiel weg.

Ich habe eine Tabelle mit 3 Spalten (Projekt, Verknüpfung , Kunde).

Projekt Verknüpfung Kunde
P1 hatKunde bmw
P1 hatMitarbeiter Müller
P2 hatKunde audi
P2 hatMitarbeiter Müller

........

Benötige eine Anweisung wie: Zeig mir alle Projekte, wo der Kunde BMW ist und der Mitarbeiter Müller heißt. Hier Ergebnis P1. Als muss über mehrere Datensätze verglichern werden.

Wünsche allen noch einen schönen Tag und herzlichen Dank für die Unterstützung.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

(1)

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Monitoring
HP Monitoring - SQL auf localhost notwendig? (2)

Frage von hijacker99 zum Thema Monitoring ...

Exchange Server
gelöst Exchange-Fehler: 550 No such recipient here (3)

Frage von Greyson zum Thema Exchange Server ...

Microsoft Office
gelöst Excel VBA: Automatische Konvertierung von Textdatei (.txt) zu Exceldatei (.xlsx) (7)

Frage von Booster07 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Router & Routing
Tipps für Router (ca. 100 clients, VPN) (18)

Frage von oel-auge zum Thema Router & Routing ...

TK-Netze & Geräte
Convert von TAPI auf CAPI gesucht (12)

Frage von StefanKittel zum Thema TK-Netze & Geräte ...