Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

TempVars mit Mehrfachauswahl-Listenfelder

Begonnen von Paule, Juni 14, 2016, 07:07:16

⏪ vorheriges - nächstes ⏩

Paule

Hallo,
ich habe eine kurze theoretische Frage (und weiß nicht so recht, wo ich die hinpacken soll):

Ich habe eine Abfrage erstellt, die mir den Status von jedem Lagerhaus anzeigen lässt - sprich, wieviele Produkte sind dort noch.

Nun werden ja in Zukunft weitere Lagerhäuser hinzukommen, weswegen die Abfrage dann doch sehr unübersichtlich wird mit der Zeit. Ich würde daher gerne eine Abfrage erstellen, wo man über TempVars zuerst die Lagerhäuser auswählt, die man gerne einsehen möchte und die dann dementsprechend als Kriterium für die Abfrage genommen werden. Im Bericht soll er mir dann diese Lagerhäuser nur anzeigen.

Ist sowas praktisch möglich?

Anbei mal der SQL-Code für die entsprechende Abfrage:

TRANSFORM Sum(WH_InOut2Q.Amount) AS SummevonAmount
SELECT WH_InOut2Q.ItemName
FROM WH_InOut2Q
GROUP BY WH_InOut2Q.ItemName
ORDER BY WH_InOut2Q.ItemName DESC
PIVOT WH_InOut2Q.WarehouseName;


Diese Abfrage basiert wiederum auf de Abfrage WH_InOut2Q. Der Code zu ihr ist folgender:

SELECT WH_Warehouses.WarehouseName, WH_ItemsT.ItemName, WH_MovingsT.Amount
FROM WH_ItemsT INNER JOIN (WH_Warehouses INNER JOIN WH_MovingsT ON WH_Warehouses.WarehouseID = WH_MovingsT.Destination) ON WH_ItemsT.ItemID = WH_MovingsT.ItemID;
UNION ALL SELECT WH_Warehouses.WarehouseName, WH_ItemsT.ItemName, -[WH_MovingsT].[Amount] AS Amount
FROM WH_ItemsT INNER JOIN (WH_Warehouses INNER JOIN WH_MovingsT ON WH_Warehouses.WarehouseID = WH_MovingsT.Departure) ON WH_ItemsT.ItemID = WH_MovingsT.ItemID;


Ich wäre euch dankbar für einen kurzen Input.

Danke und viele Grüße,
Marcus

markusxy

Ja, man kann TempVars als Argument für eine Abfrage nehmen.

Es muss einem nur klar sein, dass man bei gespeicherten Abfragen eine Funktion benötigt um auf die Daten Bezug zu nehmen. Also einfach eine Funktion schreiben, die die Ergebnisse der TempVars zurückliefert. Das geht dann natürlich genauso mit einem Objekt, irgendeiner Variable usw.

Im Gegensatz dazu benötigt man in einer Ad-hoc Abfrage nicht unbedingt eine Funktion als Schnittstelle. Da kann man dann alles ganz simpel einbinden.
LG Markus

DF6GL

#2
Hallo,
Zitat
Es muss einem nur klar sein, dass man bei gespeicherten Abfragen eine Funktion benötigt um auf die Daten Bezug zu nehmen.

Das ist nicht ganz richtig..  Tempvars-Elemente sind auch direkt in Abfragen einsetzbar ohne Umweg über eine Public-Funktion.

(Ausnahme: Kreuztabellenabfrage)

Zitat
Ich würde daher gerne eine Abfrage erstellen, wo man über TempVars zuerst die Lagerhäuser auswählt, die man gerne einsehen möchte und die dann dementsprechend als Kriterium für die Abfrage genommen werden.

Obwohl Tempvar(iablen) teilweise in Abfragen geeignet sind, empfehle ich, den SQL-String mittels VBA zusammenzusetzen und im Fall von Berichten der entspr. Berichtsabfrage (SQL-Eigenschaft) zuzuweisen.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

markusxy

ZitatTempvars-Elemente sind auch direkt in Abfragen einsetzbar ohne Umweg über eine Public-Funktion.

Cool, das geht tatsächlich.
LG Markus