Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: K a t j a am November 28, 2024, 12:32:17

Titel: Variable als Kriterium festlegen
Beitrag von: K a t j a am November 28, 2024, 12:32:17
Hallo Zusammen,
ich bin noch Anfänger, bitte seid nachsichtig.
Folgende Frage: Ich habe eine größere Tabelle geladen mit Daten, welche u.a. nach Kalenderwoche (KW) sortiert sind. Davon möchte ich jetzt diverse Abfragen laufen lassen, wobei ich einmal am Anfang die KW als Variable auswählen will. Ein Freund, der leider krank ist, hat mir gesagt, das sowas über Formulare oder ein Modul möglich wäre. Leider hab ich von beiden keine Ahnung.
Kann mir jemand einen einfachen Weg zeigen, wie ich das lösen kann? Ich würde am liebsten die Variable als Kriterium in den Entwurfsansichten einfügen können (s. screen).

Hier ist als Beispiel eine Abfrage, wo momentan die KW 47 fest ausgewählt ist.

SELECT
tbl_Sales_Daten.Datum,
tbl_Sales_Daten.KW,
tbl_Sales_Daten.Menge,
tbl_Artikelpreise.MEK,
[Menge]*[tbl_Artikelpreise.MEK] AS WE
INTO tbl9_WE_o_Ret
FROM tbl_Sales_Daten LEFT JOIN tbl_Artikelpreise ON tbl_Sales_Daten.Artikelnummer = tbl_Artikelpreise.ArtNr
WHERE
(((tbl_Sales_Daten.KW)=47) AND
((tbl_Sales_Daten.Menge)>0));

Würde mich sehr freuen, wenn ich das gelöst bekomme. :)
Titel: Re: Variable als Kriterium festlegen
Beitrag von: MzKlMu am November 28, 2024, 12:41:12
Hallo,
im einfachsten Fall so:
.
.
WHERE KW= [Welche KW ?] AND Menge > 0

PS:
Zitatdas sowas über Formulare oder ein Modul möglich wäre. Leider hab ich von beiden keine Ahnung.
Wie kann man ein Datenbank erstellen, wenn man von Formularen keine Ahnung hat ?
Formulare sind mit das Wichtigste einer Datenban. Dateneingaben Datendarstellungen und Datenänderungen sollten ausschließlich  über Formulare erfolgen.
Weiterhin ist auffällig, dass es in den Beziehungen keine referentielle Integrität eingestellt ist. Erkennbar an der Verbindungslinie in der Abfrage. Auch RI ist unerlässlich.
Titel: Re: Variable als Kriterium festlegen
Beitrag von: Knobbi38 am November 28, 2024, 12:42:30
Hallo Katja,

dafür gibt es mehrere Möglichkeiten, abhängig vom geplantem Verwendungszweck.

1. Eine Parameterabfrage erstellen, wobei die Kalenderwoche als Parameter angegeben wird.
2. Abfrage mit einer Tempvar als Variable für die Where-Condition
3. VBA Funktion, welche die gewünschte KW zurückgibt und in der Where-Condition aufgerufen wird

... in dieser Rangfolge.

Gruß
Ulrich
Titel: Re: Variable als Kriterium festlegen
Beitrag von: K a t j a am November 28, 2024, 13:59:18
Zitat von: MzKlMu am November 28, 2024, 12:41:12Wie kann man ein Datenbank erstellen, wenn man von Formularen keine Ahnung hat ?
Geht gut bis jetzt. Danke der Nachfrage. ;)
Zitat von: MzKlMu am November 28, 2024, 12:41:12Formulare sind mit das Wichtigste einer Datenban. Dateneingaben Datendarstellungen und Datenänderungen sollten ausschließlich  über Formulare erfolgen.
Ich vermute, wir verwenden Access nicht so, wie Du. Ich gebe keine Daten ein, ändere nichts daran und Darstellen muss ich auch nix. Ich brauche fast nur Abfragen, um große Mengen an Daten zu holen, zu verarbeiten und wieder auszuspucken. Aber ich bin ja auch noch Anfänger.
Zitat von: MzKlMu am November 28, 2024, 12:41:12Weiterhin ist auffällig, dass es in den Beziehungen keine referentielle Integrität eingestellt ist. Erkennbar an der Verbindungslinie in der Abfrage. Auch RI ist unerlässlich.

Versteh ich nicht. Ich habe die Verknüpfung doch extra rein gebastelt. Ohne sie funktioniert die Abfrage doch gar nicht? 
Titel: Re: Variable als Kriterium festlegen
Beitrag von: MzKlMu am November 28, 2024, 14:16:14
Hallo,
Zitatund Darstellen muss ich auch nix.
Was sind deine Abfragen sonst als Darstellungen?

ZitatVersteh ich nicht. Ich habe die Verknüpfung doch extra rein gebastelt. Ohne sie funktioniert die Abfrage doch gar nicht? 
Ich sprach ja auch von Beziehungen und nicht von Verknüpfungen. Beziehungen sind ein Datenbankobjekt und haben mit den Verknüpfungen einer Abfrage nichts zu tun. Die Verknüpfungen orientieren sich zwar an den Beziehungen können aber auch abweichend sein. Wenn Du Beziehungen angelegt hast, wird die Verknüpfung Deiner beiden Tabellen automatisch erstellt, das musst Du nicht selbst machen. Diese Verknüpfung wird natürlich benötigt, ich habe ja auch mit keinem Wort geschrieben, dass Du diese weglassen sollst.

Du solltest Dich mal mit den Grundlagen beschäftigen.

https://www.access-tutorial.de/

Und hier zu den Beziehungen:

https://www.access-tutorial.de/tabellen/beziehungen.htm

PS
Was ist denn aus dem Vorschlag aus #1 geworden?
Titel: Re: Variable als Kriterium festlegen
Beitrag von: K a t j a am Dezember 03, 2024, 10:05:40
Zitat von: MzKlMu am November 28, 2024, 14:16:14Was sind deine Abfragen sonst als Darstellungen?
Tabellen
Zitat von: MzKlMu am November 28, 2024, 14:16:14Ich sprach ja auch von Beziehungen und nicht von Verknüpfungen. ...
Sorry, das ist mir momentan zu wirr und hilft mir nicht weiter. Ich kann ja nicht alles an einem Tag lernen.
Zitat von: MzKlMu am November 28, 2024, 14:16:14PS
Was ist denn aus dem Vorschlag aus #1 geworden?
Also der Kollege ist aus seiner Krankheit zurück und hat mir den Weg über ein Formular gezeigt und wie man den Wert in den Kriterien auswählt. Letzteres war das eigentliche Problem. Damit nicht andere an der Stelle auch verzweifeln:
Um das Feld auszuwählen gebt Ihr ein: [Formulare]![Formularname]![Formularwert]. Das Gemeine ist das Ausrufezeichen. Sobald Ihr das setzt, schlägt Access jeweils die nächste Unter-Auswahlmöglichkeit vor. Ihr braucht nur noch klicken. Wenn Ihr das nicht setzt, geht's nicht.
Titel: Re: Variable als Kriterium festlegen
Beitrag von: Beaker s.a. am Dezember 03, 2024, 17:44:42
Hallo Katja,
Zitat[Formulare]![Formularname]![Formularwert]. Das Gemeine ist das Ausrufezeichen. Sobald Ihr das setzt, schlägt Access jeweils die nächste Unter-Auswahlmöglichkeit vor.
Bei (A2010) wird die Intellisense nur mit "." angezeigt, nicht mit einem "!". Da wird
ein Fehler i.Ü. erst zur Laufzeit angezeigt, und nicht schon beim Kompilieren.
Ausserdem hat ein Formular keinen Wert, nur das eine oder andere Steuerelement
[Formulare]![Formularname]![SteuerelementName]![Steuerelementwert] oder
[Formulare]![Formularname]![SteuerelementName]![SteuerelementEigenschaft]Sowie du es schreibst, verwendest du die Standardeigenschaft ".Value", die man nicht
explizit angeben muss.

gruss ekkehard