arafat
Goto Top

Manuelle Eingabe bei MS Query

Hallo Forum,

ich habe jetzt eine Weile rum gegoogled aber nicht so recht eine Lösung gefunden.

Ich würde gerne im MS Query eine Eingabeaufforderung bewerkstelligen, sodass ich beim Aufruf des Query unter Excel einen Wert übergeben kann - z.B.:

Das Query gibt mir alle Projektnummern mit Arbeitszeit raus - mit dem Wert könnte ich nur die Zeit eines bestimmten Projektes anzeigen lassen.


Geht so etwas?

Oder gibt es eine andere Möglichkeit - z.B. über ein Makro - aber wie kann ich über das Makro eine ODBC-Abfrage starten?


Vielen Dank für Eure Hilfe

Gruß Markus

Content-ID: 85097

Url: https://administrator.de/contentid/85097

Ausgedruckt am: 05.11.2024 um 19:11 Uhr

Arafat
Arafat 09.04.2008 um 15:35:34 Uhr
Goto Top
gut ich geb mit schnell selber die Antwort:

im MS-Query als Kriterium ein Wort in Klammern setzen - beimaktualisieren in Excel kann man dann einen Wert übergeben

Ich stand aber wirklich !!! seit heute MOrgen auf den Leitung!


Danke trotzdem
AsciWhite
AsciWhite 25.04.2012 um 13:33:18 Uhr
Goto Top
Ich erlaube mir dann mal diese Beitragsleiche wiederzubeleben.

Soweit wie der Ersteller bin ich auch gekommen. Allerdings suche ich nun noch nach einer Möglichkeit, dass die Paramaeterabfrage von MSQuery auch die Eingabe eines "*" oder ähnlichem zur Auswahl ALLER Datensätze aktzeptiert, also dass der abgefragte Wert nur optional ist.
Vielleicht lässt sich auch irgendwie ein default Wert in die Abfrage integrieren.

Gruß
Biber
Biber 25.04.2012 um 14:21:32 Uhr
Goto Top
Moin Acsi White,

na, ob es wirklich nötig war, diesen Uralt-Beitrag wachzuküssen für deine Nachklapp-Frage... ?

Zur Frage:
Ich habe zwar seit mindestens 6 Jahren keine Sekunde darüber nachgedacht, ob es dieses "MS Query"-Dingens noch geben könnte außerhalb von Flohmärkten und Garagenverkäufen, aber selbst wenn es noch irgendwo rumgeistert: Da ist doch eh nur Dünnbrett-SQL drin.

Also kann die Syntax doch nicht spürbar hinausgehen über ein:
Select * from DeineTabelle 
where [param1] ="*" or DeinFeld like "*" & [param1]&"*";  
-oder-
Select * from DeineTabelle 
where [param1] ="*" or DeinFeld = [param1];  

--- wenn [param1] dein übergebener Parameter (hier angenommen als String) ist.

Grüße
Biber
AsciWhite
AsciWhite 25.04.2012 um 15:32:13 Uhr
Goto Top
Danke für die schnelle Antwort.
leider hilft das nicht weiter. Als echten SQL-Befehl würde das hinhaun und so hatte ich es auch schon, aber der MSQuery scheint eine etwas abweichende Syntax zu verwenden, so dass ein "*" abgelehnt wird. face-sad
Biber
Biber 25.04.2012 um 15:52:57 Uhr
Goto Top
Moin Asci White,

dann poste doch bitte mal die Query, die momentan bei dir funktioniert.

Soooo furchtbar abweichend kann es ja nicht sein - die Redmonder halten sich doch schon immer an geltende Standards..face-wink

Grüße
Biber
AsciWhite
AsciWhite 25.04.2012 um 16:10:46 Uhr
Goto Top
also ich hab bisher das hier zusammen

SELECT Terminalereignis_ZT.Zeit, Terminalereignis_ZT.DeviceID, Terminal_ZT.Description, Terminal_ZT.TGroup, Terminalgruppen_ZT.Bezeichnung, Terminalereignis_ZT.TerminalereignistypID, Terminalereignistyp_ZT.Bezeichnung, Terminalereignis_ZT.ErfassungstypID, Arbeitnehmer.Vorname, Arbeitnehmer.Name, Terminalereignis_ZT.Kennung, Terminalereignis_ZT.geaendertam, Terminalereignis_ZT.geaendertvon
FROM Firma_PZW.dbo.Arbeitnehmer Arbeitnehmer, Firma_PZW.dbo.Terminal_ZT Terminal_ZT, Firma_PZW.dbo.Terminalereignis_ZT Terminalereignis_ZT, Firma_PZW.dbo.Terminalereignistyp_ZT Terminalereignistyp_ZT, Firma_PZW.dbo.Terminalgruppen_ZT Terminalgruppen_ZT
WHERE Terminalereignistyp_ZT.TerminalereignistypID = Terminalereignis_ZT.TerminalereignistypID AND Terminalereignis_ZT.ANNr = Arbeitnehmer.ANNr AND Terminalereignis_ZT.DeviceID = Terminal_ZT.DeviceID AND Terminal_ZT.TGroup = Terminalgruppen_ZT.TGroupID AND ((Terminal_ZT.TGroup=?) AND (Arbeitnehmer.ANNr=?))
ORDER BY Terminalereignis_ZT.Zeit


Bei der Ausführung werde ich nach der Terminalgruppe und der Arbeitnehmernummer gefragt. Nun möchte ich aber zb. auch einfach die Mitarbeiternummer überspringen können.

Gruss