SQL-Abfrage variabel
08.11.2012 09:22:50
Martin
nach mehr als zweitägiger erfolgloser Suche hoffe ich nun, mit diesem Beitrag eine Hilfe zu erhalten.
Via Excel versuche ich, aus einer MySQL-Datenbank Werte zu erhalten. Die Abfrage lautet:
SELECT woz_wo_wo_nr , woz_wo_shortdesc , woz_wo_ist_text , woz_wo_soll_text , woz_wo_wov , woz_wo_mand_nbr , woz_wo_mand_name , woz_wo_int_flag FROM `bugs`.`woz_wo` WHERE woz_wo_wo_nr = '28432 - 04'
Ich muss dazu sagen, dass ich von SQL fast keine Ahnung habe. Die hier stehende Abfrage habe ich anhand des Assistenten und mithilfe eines SQL Versierten erstellt.
Das in Anführungszeichen stehende Filterkriterium '28432 - 04' ist ein (einmalig vorkommendes) Schlüsselfeld der Datenbank `bugs`.`woz_wo`.
Nun möchte ich, dass die Filterung abhängig vom Inhalt der Zelle Werte!A1 wird. Hier hinterlegt ist eine Formel, die mir die Nummer im gewünschten Format ausgibt. Allerdings scheiterten bisher alle Versuche, dass variabel zu gestalten.
Bei folgenden Versuchen wurde eine leere Tabelle ausgegeben (also Suchkriterium nicht gefunden, wenn ich es richtig verstehe):
WHERE woz_wo_wo_nr = '[Werte$A1]'
WHERE woz_wo_wo_nr = 'Werte$A1'
Bei folgenden Versuchen kommt Fehlermeldung '...You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ... at line 3' (... am Anfang ist die Version des ODBC-Treibers, ... in der Mitte der Begriff in der where-Variante):
WHERE woz_wo_wo_nr = [Werte$A1]
WHERE woz_wo_wo_nr = "'" & [Werte$A1] & "'"
(WHERE woz_wo_wo_nr = '[Werte$A1]')
(WHERE woz_wo_wo_nr = 'Werte$A1')
(WHERE woz_wo_wo_nr = [Werte$A1])
(WHERE woz_wo_wo_nr = "'" & [Werte$A1] & "'")
(WHERE woz_wo_wo_nr = "'" & Werte$A1 & "'"
"(" & WHERE woz_wo_wo_nr = "'" & [Werte$A1] & "'" & ")"
"(" & WHERE woz_wo_wo_nr = '[Werte$A1]' & ")"
"(" & WHERE woz_wo_wo_nr = [Werte$A1] & ")"
"(" & WHERE woz_wo_wo_nr = "'" & Werte$A1 & "'" & ")"
"(" & WHERE woz_wo_wo_nr = 'Werte$A1' & ")"
Bei folgendem Versuch kommt Fehlermeldung '...Unknown column ... in 'where clause'' (... am Anfang ist die Version des ODBC-Treibers, ... in der Mitte der Begriff in der where-Variante):
WHERE woz_wo_wo_nr = "'" & Werte$A1 & "'"
Mir fällt nix mehr ein...
Bei meiner Recherche habe ich herausgefunden, dass man das Ganze wohl auch mit VBA lösen kann. Allerdings will ich nicht noch einen weiteren Prozess einbauen (Nachdem die Tabelle in Excel korrekt angezeigt wird muss ich das Ganze noch irgendwie nach Word exportieren). Habt Ihr eine Lösung? Eine VBA-Lösung nehme ich gerne erst einmal auf, würde mich über eine andere Lösung aber mehr freuen!
Vielen Dank im Voraus
Grüße
Martin