Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: Micha 1310 am September 09, 2022, 14:07:32

Titel: Bericht über Dropdown im Formular filtern
Beitrag von: Micha 1310 am September 09, 2022, 14:07:32
Hallo zusammen,

Ich bin gerade dabei eine Angebotsdatenbank für unser Team zu erstellen.
Hierfür habe ich eine Tabelle mit Kunden (Name*, Nr,...), eine mit Angeboten (Kunde als Nachschlage-Assistent,ID*...) und eine mit Positionen pro Angebot (ID*, Losgröße, Preise,...). Die mit Stern markierten sind jeweils die Primärschlüssel.

Alle Formulare zur Eingabe und die anderen Berichte habe ich in einem Navigationsformular dargestellt.

Nun zu meiner Frage:

Ich habe eine Abfrage erstellt und auf ihr basierend einen Bericht, der mir alle Angebote pro Kunde ausgibt. Soweit passt und funktioniert auch alles.

Ich möchte jetzt aber diesen Bericht über ein Dropdown Feld in einem Formular filtern, sodass mir nur die Angebote für den einen ausgewählten Kunden angezeigt werden.
Dafür scheine ich aber leider zu blöd zu sein. Kann mir hier bitte jemand helfen?

Vielen Dank ☺️

Titel: Re: Bericht über Dropdown im Formular filtern
Beitrag von: MzKlMu am September 09, 2022, 17:34:57
Hallo,
Du hast doch bestimmt ein Formular zur Anzeige des Kunden.
In diesem Formular kannst Du einen Button plazieren der den Bericht zum angezeigten Kunden druckt.
Den Primärschlüssel kannst Du dann als Kriterium verwenden.
Der Code dazu sieht so aus:
DoCmd.OpenReport "Berichtsname", acViewPreview, , "KundenID = " & Me.KundenIDImFormularEin extra Dropdown braucht es da nicht.

Anmerkung:
Name als Primärschlüssel ist völlig ungeeignet. Textfelder taugen meist nicht als PS. Außerdem ist der Name vom Prinzip her nicht geeignet. Beim 2. Müller geht das schief. Name als Feldname sollte man auch unbedingt vermeiden. Die Kundentabelle braucht daher einen extra Primärschlüssel (KundenID als Autowert).
Weiterhin ist von der Verwendung von Nachschlagefeldern in Tabellen dringend abzuraten. Die haben nur Nachteile. Nur in Formularen sind diese als Kombinationsfelder sinnvoll.
Siehe hierzu:
http://web.archive.org/web/20060213100523/http://dbwiki.de/wiki.php?title=Access_Anf%E4nger:_Die_Nachteile_von_Nachschlagefeldern (http://web.archive.org/web/20060213100523/http://dbwiki.de/wiki.php?title=Access_Anf%E4nger:_Die_Nachteile_von_Nachschlagefeldern)
Und weiter (im 2. Absatz):
https://www.access-tutorial.de/tabellen/tipps.htm
Titel: Re: Bericht über Dropdown im Formular filtern
Beitrag von: Micha 1310 am September 09, 2022, 18:18:26
Hallo Klaus,

danke für deine schnelle Antwort und für die Anmerkungen.

Im ,,Namen der Kunden" ist auf Wunsch meiner Kollegen auch direkt der Ort, sodass es hier bei unseren Kunden keine Dopplungen geben wird. Ich habe also quasi ,,Name a Werk b" immer eingetragen.

Den Nachschlage-Assistent habe entfernt.

Ein Formular zur Anzeige des Kunden habe ich nicht, wie müsste ich das dann aufbauen?
Es gab vor meiner Zeit im Unternehmen eine ähnliche Datenbank die wohl über ein DropDown gefiltert wurde, daher kommt meine Frage. Die Datei ist aber leider weg.

Ich habe im Formular ,,Abfrage nach Kunden" das Dropdown und einen Button zum Anzeigen des Berichtes. Das war der Wunsch der Kollegen.
Nur leider bekomme ich das als Filterkriterium nicht verknüpft.

Kannst du mir da helfen?

Viele Grüße
Titel: Re: Bericht über Dropdown im Formular filtern
Beitrag von: MzKlMu am September 09, 2022, 19:20:59
Hallo,
Zitat von: undefined... auch direkt der Ort, sodass es hier bei unseren Kunden keine Dopplungen geben wird.
Sorry, aber so etwas ist für eine Datenbank völliger Unsinn und ein NoGo. Außerdem verstößt das bereits gegen die 1. Normalform (atomare Inhalte). Und, wie willst Du auch mit Name und Ort zuverlässig Doppelungen verhindern (sag niemals nie) ? Weiterhin kannst Du ja trotzdem einen Autowert als PS anlegen.
Was die Kollegen wollen spielt hier eigentlich keine Rolle. Zu Ansichstzwecken kannst Du jederzeit die beiden Felder über eine Abfrage zusammensetzen und wie gewünscht angezeigen.
Zitat von: undefinedEin Formular zur Anzeige des Kunden habe ich nicht, wie müsste ich das dann aufbauen?
Das ist ein ganz einfaches normales Formular mit der Kundentabelle als Datenherkunft/Datenquelle. In dieses Formular kommt dann der Button mit obigem Code.
Zitat von: undefinedIch habe im Formular ,,Abfrage nach Kunden"
Was zeigst Du denn in diesem Formular an?

Hier noch was zum Lesen. Für Access sind solche Grundlagen unerlässlich, denn Access muss man lernen, da kann man nicht mal so einfach anfangen.

https://www.hdm-stuttgart.de/~riekert/lehre/db-kelz/

https://www.access-tutorial.de/
Titel: Re: Bericht über Dropdown im Formular filtern
Beitrag von: Micha 1310 am September 09, 2022, 19:43:18
Hallo,

ich bin neu im Unternehmen und auch in der Anwendung mit Access und versuche hier gerade schlicht die Wünsche meiner Kollegen umzusetzen. 🙈
Ich bin soweit auch fertig mit den Eingabeformularen, sonstigen Abfragen und Berichten. Das klappt alles wunderbar, bis auf dieses letzte Detail.

Im Formular ,,Abfrage nach Kunden" ist lediglich das Dropdown Feld über das ich die Kunden auswählen kann und daneben ein Button über den ich den Bericht dann öffne. So war es wohl auch in der alten Datei und so wollen sie es wieder.
Gibt es dafür eine Lösung?

Viele Grüße
Titel: Re: Bericht über Dropdown im Formular filtern
Beitrag von: MzKlMu am September 09, 2022, 20:03:45
Hallo,
gerade als Neuling in Access solltest Du die Hinweise nicht einfach ignorieren, das wird Dir noch auf die Füße fallen. Aber egal, versuche es so:
DoCmd.OpenReport "Berichtsname", acViewPreview, , "KundenName = '" & Me.Dropdownfeld & "'"Als Code für den Button. Weil Kundename Text ist, sind Hochkomma erforderlich.
Wobei Du aber zwingend auf den Feldnamen "Name" verzichten musst. Name ist eine Eigenschaft (reserviertes Wort) und beinhaltet den Namen eines Objekts.
Titel: Re: Bericht über Dropdown im Formular filtern
Beitrag von: Beaker s.a. am September 10, 2022, 10:55:22
Hallo,
Abgesehen von Klaus' Hinweisen, mit denen du dich unbedingt beschäftigen
solltest; -
wozu der Button? Klicken deine Kollegen gerne rum?
Den Bericht kann man doch direkt nach Auswahl (Nach Aktualisierung) im Kombi
öffnen
Private Sub Dropdownfeld_AfterUpdate()
    DoCmd.OpenReport "Berichtsname", acViewPreview, , "KundenName = '" & Me.Dropdownfeld & "'"
End Sub

gruss ekkehard
Titel: Re: Bericht über Dropdown im Formular filtern
Beitrag von: Micha 1310 am September 11, 2022, 14:18:15
Hallo zusammen

ich bin definitiv gewillt die ganzen Ratschläge entgegen zu nehmen und werde diese auch versuchen so umzusetzen wenn ich morgen wieder im Büro bin.
Falls das anders rüber gekommen ist tut es mir leid.

Wo gebe ich die Codes denn dann ein?

Viele Grüße
Titel: Re: Bericht über Dropdown im Formular filtern
Beitrag von: Beaker s.a. am September 11, 2022, 15:37:30
ZitatWo gebe ich die Codes denn dann ein?
Siehe Prozedurkopf; - bei Klaus hätte er gelautet
Private Sub DeinButton_Click()