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-Key: 85097

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

Printed on: April 25, 2024 at 15:04 o'clock

Member: Arafat
Arafat Apr 09, 2008 at 13:35:34 (UTC)
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
Member: AsciWhite
AsciWhite Apr 25, 2012 at 11:33:18 (UTC)
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ß
Member: Biber
Biber Apr 25, 2012 at 12:21:32 (UTC)
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
Member: AsciWhite
AsciWhite Apr 25, 2012 at 13:32:13 (UTC)
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
Member: Biber
Biber Apr 25, 2012 at 13:52:57 (UTC)
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
Member: AsciWhite
AsciWhite Apr 25, 2012 at 14:10:46 (UTC)
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