Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: KonradR am Februar 24, 2024, 10:12:34

Titel: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 24, 2024, 10:12:34
Hallo liebe Accessfreunde,

gemäß meinem Betreff möchte ich im Ausdrucksgenerator eine Wenn Funktion bis zu 16x verschachteln. Beim 6x kann ich allerdings im Ausddrucksgenerator nicht weiterschreiben. Was kann ich da machen? Oder ist einfach die Verschachtelungstiefe im Ausdrucksgenerator auf 6 Ebenen begrenzt. Gibt es da noch andere Alternativen?
Schon im Voraus vielen Dank.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am Februar 24, 2024, 10:32:34
Hallo,
das geht nicht, das ist auf 6-7 Ebenen begrenzt.
Es gibt aber andere Möglichkeiten.
Oftmals liegt es auch an einem falschen Datenmodel.

Beschreibe dein Vorhaben mal genauer.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: ebs17 am Februar 24, 2024, 10:34:53
Zitatmöchte ich im Ausdrucksgenerator eine Wenn Funktion bis zu 16x verschachteln
Hat das funktionelle oder ideologische Gründe?

ZitatGibt es da noch andere Alternativen?
Vorbehaltlich der konkreten Aufgabe löst man solche Wenn-Kaskaden meist gut über eine zusätzliche Tabelle, die per JOIN eingebunden wird. Das ist dann übersichtlicher, schneller und viel besser pflegbar.
Deinen Schachtelausdruck, selbst wenn er gelingen würde, versteht doch kein Mensch, Du nach einer Woche auch nicht mehr.

Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: PhilS am Februar 24, 2024, 11:08:33
Zitat von: KonradR am Februar 24, 2024, 10:12:34möchte ich im Ausdrucksgenerator eine Wenn Funktion bis zu 16x verschachteln.
Argh.
Der Ausdrucksgenerator ist hier nicht das Kernproblem. Du kannst deinen Ausdruck ja auch einfach per Hand schreiben.

Unabhängig von möglichen Einschränkungen des Ausdrucksgenerators, wird das am Ende ein undurchdringbarer Wust, der kaum noch wartbar sein wird.

Ich würde evaluieren, ob du den Ausdruck mit Switch (https://support.microsoft.com/de-de/office/switch-funktion-d750c10d-0c8e-444c-9e63-f47504f9e379) oder Choose (https://support.microsoft.com/de-de/topic/choose-funktion-76230415-910f-463a-a799-cf7e90aa7fd4) nicht einfacher und übersichtlicher gestalten kannst.

Eine zusätzliche Referenztabelle, die du dann über einen Join in deiner Abfrage einbindest, ist evtl. auch eine mögliche Alternative, die den Ausdruck ersetzen und die Wartung deutlich vereinfachen kann.



Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am Februar 24, 2024, 11:38:47
Hallo,
Zitat von: PhilSDu kannst deinen Ausdruck ja auch einfach per Hand schreiben.
Soweit ich weiß, gehen auch von Hand nur 7 Ebenen.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 24, 2024, 11:46:45
Zitat von: MzKlMu am Februar 24, 2024, 10:32:34das geht nicht, das ist auf 6-7 Ebenen begrenzt.
Danke, dann komme ich mit dieser Möglichkeit über den Ausdrucksgenerator eine Wenn-Dann-Sonst-Funktion einzugeben nicht weiter.

Zitat von: MzKlMu am Februar 24, 2024, 10:32:34Es gibt aber andere Möglichkeiten.
Spannend. Welche sind das?

Zitat von: MzKlMu am Februar 24, 2024, 10:32:34Oftmals liegt es auch an einem falschen Datenmodel.
Vielleicht. Wie kann ich das herausfinden?

Zitat von: MzKlMu am Februar 24, 2024, 10:32:34Beschreibe dein Vorhaben mal genauer.
Ich habe ein Formular, in dem ich mit einem Kombinationsfeld bis zu 16 (Kochrezept)Einheiten auswählen kann. in einer untergeordneten Tabelle habe ich für jede Zutat ein Feld für das Gewicht einer Einheit vorgesehen. So z.B. Esslöffel, Teelöffel, Messerspitze, Scheibe etc.. Wenn ich jetzt die entsprechende Einheit auswähle, soll der spezifische Nährwert für diese Zutat, abhängig von dessen Menge, also ob es sich um eine Scheibe, einen Esslöffel oder einen Teelöffel etc., handelt ausgerechnet werden. Das mache ich in einer Abfrage. Das Ergebnis zeige ich dann wieder über ein Textfeld im Formular an, in dem ich auf diese Abfrage mit diesem berechneten Feld zurückgreife.



Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am Februar 24, 2024, 11:51:44
Hallo,
ZitatWelche sind das?
Die hat PhilS in #3 schon genannt.

Für was Du die Wenn brauchst geht aus Deiner Beschreibung nicht klar hervor.
Zeige mal die Wenn Formel (3-4 Ebenen).
Ich ich denke hier fehlt einfach noch eine Tabelle.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 24, 2024, 11:55:24
Zitat von: ebs17 am Februar 24, 2024, 10:34:53Hat das funktionelle oder ideologische Gründe?
Was verstehst du unter ideologischen Gründen?

Zitat von: ebs17 am Februar 24, 2024, 10:34:53Vorbehaltlich der konkreten Aufgabe löst man solche Wenn-Kaskaden meist gut über eine zusätzliche Tabelle, die per JOIN eingebunden wird. Das ist dann übersichtlicher, schneller und viel besser pflegbar.
Das habe ich, denke ich gemacht. Hier ein Bild meiner Beziehungsstruktur von der dem Formular zugrundeliegenden Abfrage:
Screenshot 2024-02-24 115309.png

Zitat von: ebs17 am Februar 24, 2024, 10:34:53Deinen Schachtelausdruck, selbst wenn er gelingen würde, versteht doch kein Mensch, Du nach einer Woche auch nicht mehr.
Sehe ich auch so. Mir ist das auch zu kompliziert.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: PhilS am Februar 24, 2024, 11:55:34
Zitat von: KonradR am Februar 24, 2024, 11:46:45Tabelle habe ich für jede Zutat ein Feld für das Gewicht einer Einheit vorgesehen. So z.B. Esslöffel, Teelöffel, Messerspitze, Scheibe etc.. Wenn ich jetzt die entsprechende Einheit auswähle, soll der spezifische Nährwert für diese Zutat, abhängig von dessen Menge, also ob es sich um eine Scheibe, einen Esslöffel oder einen Teelöffel etc., handelt ausgerechnet werden. Das mache ich in einer Abfrage.
Wenn du die Tabelle mit den Gewichten pro Einheit in deine Abfrage aufnimmst, bleibt doch aber nur noch eine einfache Berechnung: AnzahlEinheiten * GewichtsfaktorDerEinheit = Gewicht
Wo brauchst du da auch nur ein einziges Wenn-Dann, geschweige denn 16?
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 24, 2024, 11:57:32
Zitat von: PhilS am Februar 24, 2024, 11:08:33Unabhängig von möglichen Einschränkungen des Ausdrucksgenerators, wird das am Ende ein undurchdringbarer Wust, der kaum noch wartbar sein wird.
Das sehe ich auch so. Es kostet extrem viel Zeit und ist sehr Fehleranfällig.

Zitat von: PhilS am Februar 24, 2024, 11:08:33Ich würde evaluieren, ob du den Ausdruck mit Switch oder Choose nicht einfacher und übersichtlicher gestalten kannst.
Diese Ausdrücke kenn ich noch nicht. Damit werde ich mal etwas näher mit beschäftigen.

Zitat von: PhilS am Februar 24, 2024, 11:08:33Eine zusätzliche Referenztabelle, die du dann über einen Join in deiner Abfrage einbindest, ist evtl. auch eine mögliche Alternative, die den Ausdruck ersetzen und die Wartung deutlich vereinfachen kann.
Danke dafür. Ist das das gleiche, von dem ebs17 geschrieben hat? Das scheint die Lösung zu sein.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 24, 2024, 12:04:34
Zitat von: MzKlMu am Februar 24, 2024, 11:51:44Zeige mal die Wenn Formel (3-4 Ebenen).
Hier ist sie:
KJRezept: Wenn([tblZutatenSammel]![ZutatSammelEinheIDRef]=1;([tblZutatenStamm]![ZutatStammKJ100g]/100)*[tblZutatenSammel]![ZutatSammelMenge];Wenn([tblZutatenSammel]![ZutatSammelEinheIDRef]=2;([tblZutatenStamm]![ZutatStammKJ100g]/100)*[tblZutatenStamm]![ZutatStammGewichtEL]*[tblZutatenSammel]![ZutatSammelMenge];Wenn([tblZutatenSammel]![ZutatSammelEinheIDRef]=3;([tblZutatenStamm]![ZutatStammKJ100g]/100)*[tblZutatenStamm]![ZutatStammGewichtTL]*[tblZutatenSammel]![ZutatSammelMenge];"n.V")))
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 24, 2024, 12:13:33
Zitat von: PhilS am Februar 24, 2024, 11:55:34Wo brauchst du da auch nur ein einziges Wenn-Dann, geschweige denn 16?
Das Wenn-Dann unterscheidet ja zwischen der Auswahl aus dem Kombinationsfeld vorher, dass die Einheit festlegt. Eine Scheibe hat ein anderes Gewicht als ein Esslöffel oder ein Teelöffel. Außerdem haben alle Zutaten verschieden Dichten. Meiner Meinung nach, ist es daher am sinnvollsten, die einzelnen Einheiten abzuwiegen, einzugeben und dann später mit der Wenn-Dann-Sonst-Funktion zu rechnen. Wie das mit Gewichtsfaktoren für die einzelnen Einheiten gehen soll, verstehe ich nicht.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am Februar 24, 2024, 12:15:34
Hallo,
ZitatEine Scheibe hat ein anderes Gewicht als ein Esslöffel oder ein Teelöffel.
Hier ist eine Zuordnungstabelle notwendig, die die Zuordnung zwischen Einheit und Produkt abbildet.
So in etwa:
ID  Einheit  Zutat  Gewicht
 1  Scheibe   Gurke   25
 2  Scheibe   Apfel   35
Scheibe hat noch die Besonderheit, dass auch die Dicke eine Rolle spielt.
Statt der Texte stehen hier normalerweise nur die Schlüsselzahlen.

Über das Datenmodell haben wir schon öfter gesprochen. Hier gibt es garantiert noch Potential für Verbesserungen. Aber das ist mir jetzt zu viel.

Versuche es mit den Vorschlägen in #3. In den Links sind auch Beispiele.

Nachtrag:
Ich habe jetzt erst das Bild mit den Beziehungen gesehen. Die Felder mit dem Gewicht müssen alle aus der Stammtabelle raus. Die Gewichtszuordung Einheit Produkt erfolgt dann über die Zordnungstabelle wie oben beschrieben. Dann wird die Wenn Orgie ersatzlos überflüssig.

Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 24, 2024, 17:31:23
Zitat von: MzKlMu am Februar 24, 2024, 12:15:34Hier ist eine Zuordnungstabelle notwendig, die die Zuordnung zwischen Einheit und Produkt abbildet.
Meinst du mit "Zuordnungstabelle" eine Tabelle, die als Zwischentabelle dient um eine m:n-Beziehung abbilden zu können? Wie kommst du auf das Wort "Produkt"? Denn das habe ich gar nicht in der Abbildung der Beziehungen der Abfrage drin. Meinst du damit die Zutat, die ich in der Tabelle "tblZutatenStamm" definiert habe?

Zitat von: MzKlMu am Februar 24, 2024, 12:15:34ID  Einheit  Zutat  Gewicht
 1  Scheibe   Gurke   25
 2  Scheibe   Apfel   35
Wenn ich das richtig  verstehe, wären dann die Tabellen "tblEinheiten" und "tblZutatenStamm" so zu verändern, dass die Felder mit den Gewichten in einer Extra Nachschlagetabelle, z.B. "tblZUtatenStammGewicht" separiert werden und beide in einer weiteren Vermittlungstabelle kombiniert bzw. nachgeschlagen werden können? Die Tabellen "tblZutaenSammel" und "tblZutatenStamm" würden aber bestehen bleiben?
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am Februar 24, 2024, 17:47:55
Hallo,
ja, n:m. Mit Produkt habe ich mich vertan, ich meinte natürlich Zutat.

Mache mal die Beziehungen neu und zeige dann das Bild.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 25, 2024, 06:45:50
Zitat von: PhilS am Februar 24, 2024, 11:55:34Wenn du die Tabelle mit den Gewichten pro Einheit in deine Abfrage aufnimmst, bleibt doch aber nur noch eine einfache Berechnung: AnzahlEinheiten * GewichtsfaktorDerEinheit = Gewicht
Jetzt ist mir klar geworden, dass du mit "Gewichtsfaktor" wahrscheinlich das Gewicht einer Rezepteinheit, wie z.B. eines EL oder eines Teelöffels oder einer Scheibe meinst. Ich hatte mich nur von meiner Annahme in die Irre führen lassen, dass ein Faktor immer dimensionslos ist.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 25, 2024, 06:48:20
Zitat von: PhilS am Februar 24, 2024, 11:55:34Wenn du die Tabelle mit den Gewichten pro Einheit in deine Abfrage aufnimmst, bleibt doch aber nur noch eine einfache Berechnung: AnzahlEinheiten * GewichtsfaktorDerEinheit = Gewicht
Jetzt ist mir klar geworden, dass du wahrscheinlich mit "Gewichtsfaktor" das Gewicht pro Rezepteinheit gemeint hast. Ich hatte mich nur von meiner Annahme in die Irre führen lassen, nachder ein Faktor dimensionlos ist.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 25, 2024, 09:47:04
Zitat von: MzKlMu am Februar 24, 2024, 17:47:55Mache mal die Beziehungen neu und zeige dann das Bild.
Hallo Klaus, hier das Bild der neu erstellten Beziehungen:
Screenshot 2024-02-25 094523.png
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am Februar 25, 2024, 12:21:25
Hallo,
ZitatJetzt ist mir klar geworden, dass du wahrscheinlich mit "Gewichtsfaktor" das Gewicht pro Rezepteinheit gemeint hast.
Nein, das ist kein Gewicht, das ein Faktor der für das Gewicht die unterschiedlichen Zutaten abbildet.
Der Faktor ist dimensionlos. Ein Faktor ist immer dimensionslos. Wenn Du eine Rezept hast für 4 Personen und Du brauchst es für 8, so hast Du den dimensionslosen Faktor 2 für die Umrechnung.
Allerdings, sehe ich bei dem Faktorvorschlag keinen Vorteil, gegenüber gleich das Gewicht zu speichern.

Das in #17 gezeigte Beziehungsbild ist nach meiner Auffassung richtig.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am Februar 25, 2024, 18:08:53
Zitat von: MzKlMu am Februar 25, 2024, 12:21:25Nein, das ist kein Gewicht, das ein Faktor der für das Gewicht die unterschiedlichen Zutaten abbildet.
Der Faktor ist dimensionlos. Ein Faktor ist immer dimensionslos. Wenn Du eine Rezept hast für 4 Personen und Du brauchst es für 8, so hast Du den dimensionslosen Faktor 2 für die Umrechnung.
Allerdings, sehe ich bei dem Faktorvorschlag keinen Vorteil, gegenüber gleich das Gewicht zu speichern.
Danke für deine Einschätzung. Ich werde auch die Vorgehensweise mit dem Gewicht pro Rezepteinheit verfolgen.

Zitat von: MzKlMu am Februar 25, 2024, 12:21:25Das in #17 gezeigte Beziehungsbild ist nach meiner Auffassung richtig.
Danke für deine Rückmeldung. Jetzt darf ich erst mal mein Formular anpassen und infolge der neuen Beziehungsstruktur aufgetauchte Fehler beseitigen. Wenn ich das geschafft habe und ich das mit dem Berechnen der KJ (Energiemenge) des Gewichts pro Rezepteinheit funktioniert, dann melde ich mich noch mal hier in diesem Thema. Bis hier hin erst mal vielen Dank. Grüße: Konrad



Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am Februar 25, 2024, 19:25:08
Hallo,
fällt mir erst jetzt auf, bzw. übersehen. Die Felder mit den Nährwerten pro 100g sind auch falsch.
Das gibt auch n:m. Du brauchst eine Tabelle für die Nährwerte je 100gr als je ein Datensatz. In einer Zwischentabelle werden dann diese Nährwerte dann der Zutat zugeordnet.

ZutatID     Nährwert           Eintrag  
  1        Kohlenhydrate           12
  1        Balaststoffe            20
  1        Eiweis                  35

Dass der jetzige Aufbau falsch ist, erkkenst Du auch daran, dass ein weiterer Nährwert ein Umbau aller Objekte erforderlich machen würde.
Kcal und KJ anzugeben wäre auch nicht gut. Einer der Werte reicht, da sich der jeweils andere Wert errechnen lässt.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am März 03, 2024, 08:30:14
Zitat von: MzKlMu am Februar 25, 2024, 19:25:08Das gibt auch n:m. Du brauchst eine Tabelle für die Nährwerte je 100gr als je ein Datensatz. In einer Zwischentabelle werden dann diese Nährwerte dann der Zutat zugeordnet.

Code [Auswählen] Erweitern
ZutatID     Nährwert           Eintrag  
  1        Kohlenhydrate           12
  1        Balaststoffe            20
  1        Eiweis                  35
Danke für deine Antwort. Ich habe jetzt noch mal die Beziehungsstruktur geändert und zwar so:
Screenshot 2024-03-03 082040.png
Allerdings habe ich das Problem, dass im Formular der Eintrag im eingekreisten Kombinationsfeld des nachfolgenden Bildes verschwindet und die Fehlermeldung "Der Datensatz kann nicht hinzugefügt werden, da ein Datensatz in der Tabelle 'tblEinheiten' mit diesem Datensatz in Beziehung stehen muss." angezeigt wird, wenn ich in das Textfeld, mit dem Bezeichnungsfeld "Einheit" und dem Inhalt "ZutatGweEinheIDRef", klicke. Habe ich da was falsch verknüpft? Hier das Bild vom Formular: Screenshot 2024-03-03 082655.png
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am März 03, 2024, 09:53:20
Ich habe die Beziehungsstruktur für die Abfrage als Grundlage für das Formular noch mal angepasst. Ich denke, so müsste es passen:Screenshot 2024-03-03 094905.png
Jetzt wird nur leider im Formular eine weise Fläche und nicht die Textfelder zur Eingabe angezeigt. Wenn ich die Steuerelementinhalte der Tabelle tblZutatGwe und tblZutatNaehrwerte aus dem Formular lösche, dann werden die Textfelder zur Eingabe angezeigt. Wie kann ich die Textfelder anzeigen lassen?
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am März 03, 2024, 10:56:11
Hallo,
beide Tabellenstrukturen sind falsch und entsprechen nicht meinen Vorschlägen.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am März 03, 2024, 13:35:49
Hallo Klaus,

Zitat von: MzKlMu am März 03, 2024, 10:56:11beide Tabellenstrukturen sind falsch und entsprechen nicht meinen Vorschlägen.
Danke für deine Antwort. Wenn die Beziehungsstruktur unter #17 richtig ist, dann sehe ich mit dieser Struktur nur das Problem, dass es für die gleiche Zutat mehrere gleiche Kombinationsmöglichkeiten von Gewichten und Einheiten geben kann. Also mehre Datensätze mit unterschiedlichen Gewichtangaben für eine Einheit. In etwa so:

ZutatStammGewichtID  ZutatStammGewichtZutatStammNWIDRef  ZutatStammGewichtEinheitIDRef  ZutatStammGewicht
1   Gurke   15   EL
2   Apfel   30   TL
3   Gurke   25   EL

Dann gäbe es für Gurke zwei mal die Angabe EL mit 25g und mit 15g. Das wollte ich vermeiden. Oder sehe ich das falsch?
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am März 03, 2024, 19:31:39
Hallo,
die Beispieltabelle in #24 ist mir unklar. Wie kommt es bei Gurke zu EL und bei Apfel zu TL ?

Du hast in der GWE Tabelle und in der mit den Nährwerten 2 ref Felder, wo sind denn die Tabellen dazu ?

Du solltest die TAbellennamen vereinfachen.
tblZutatStamm wozu das Stamm ? tblZutat ist doch völlig ausreichend. Das zieht sich ja durch alle Tabellen.

Zitatdass es für die gleiche Zutat mehrere gleiche Kombinationsmöglichkeiten von Gewichten und Einheiten geben kann.
Das würde ja nur zutreffen, wenn es für eine Zutat verschiedene Einheiten geben kann.
Z.B. so:
Eier > Stück
Salz > Esslöffel
Salz > Teelöffel
Salz > Brise
Salz > Gramm

Das wäre auch richtig, und musst Du so machen, wenn Du jeweils die Mengen richtig berechnen willst.

Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am März 03, 2024, 21:17:14
Zitat von: MzKlMu am März 03, 2024, 19:31:39die Beispieltabelle in #24 ist mir unklar. Wie kommt es bei Gurke zu EL und bei Apfel zu TL ?
El und TL sind natürlich unübliche Rezeptmengen für Apfel und Gurken. Ich wollte mit dem Beispiel veranschaulichen, dass nach meiner Ansicht möglich, ist mit der Beziehungsstruktur unter #17 für ein und die selbe Zutat in Kombination mit der selben Einheit, mehrere Datensätze mit verschiedenen Gewichten zu erzeugen und das will ich ja vermeiden. Ein besseres Beispiel ist mir so auf die Schnelle halt nicht eingefallen.

Zitat von: MzKlMu am März 03, 2024, 19:31:39Du hast in der GWE Tabelle und in der mit den Nährwerten 2 ref Felder, wo sind denn die Tabellen dazu ?
Die Tabellen dazu sind in dem Bild von der Abfrage aus #17 zu finden.

Zitat von: MzKlMu am März 03, 2024, 19:31:39Das würde ja nur zutreffen, wenn es für eine Zutat verschiedene Einheiten geben kann.
Z.B. so:
Eier > Stück
Salz > Esslöffel
Salz > Teelöffel
Salz > Brise
Salz > Gramm
Also war meine Idee unter #22 unter diesem Aspekt richtig?

Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am März 04, 2024, 00:22:59
Hallo,
was für eine Idee in #22 ?
Das Bild in #22 ist ja unvollständig. In die Beziehungen müssen auf jeden Fall noch die beiden Referenztabellen.

ZitatDann gäbe es für Gurke zwei mal die Angabe EL mit 25g und mit 15g. Das wollte ich vermeiden. Oder sehe ich das falsch?
Die Einheiten den Zutaten zuzuordnen ist Deine Aufgabe, das macht (und kann es auch nicht) Access nicht automatisch.
Dein Beispiel mit der Gurke ist sinnfrei, denn Du würdest doch beim Erfassen der Zutaten einer Gurke doch nicht EL zuordnen. Und 2x Gurke würde nur Sinn machen wenn es auch mehr als eine Größe geben würde.
Ich würde die Tabelle so aufbauen wie in #25 dargestellt.
Du hast also für Salz 4 Auswahlmöglichkaiten, was auch richtig ist, denn Du willst ja die Zutat einem Rezept zuordnen und da musst Du entsprechend wählen. Dann wird entsprechend der Auswahl und der Menge auch die Nährwerte gerechnet.

Was wird denn in der Tabelle "tblZutatSammel" gesammelt ?

PS:
Die Feldnamen die Du da gemacht hast sind gruselig. Du als Entwickler weist das natürlich. Aber eine Fremder tut sich da schwer mit. Und wenn Du 4 Wochen an der DB nichts gemacht hast, weist Du das auch nicht mehr.

Z.B.
tblZutat
ZutatID
Zutatname
Kategorie_F

tblZutatNw
ZutatNwID
ZutatID_F
NwNameID_F
Menge100g





Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am März 07, 2024, 20:40:31
Zitat von: MzKlMu am März 04, 2024, 00:22:59Das Bild in #22 ist ja unvollständig. In die Beziehungen müssen auf jeden Fall noch die beiden Referenztabellen.
Hier habe ich ein Bild mit beiden Referenztabellen:
Screenshot 2024-03-07 203409.png

Zitat von: MzKlMu am März 04, 2024, 00:22:59Die Einheiten den Zutaten zuzuordnen ist Deine Aufgabe, das macht (und kann es auch nicht) Access nicht automatisch.
Das mache natürlich ich. Aber wenn ich eine Tabelle habe, wo alles gesammelt wird, ist die Fehlerquote doch viel höher (bei einer m:n-Beziehung), als wenn ich eine Tabelle per 1:n-Beziehung verknüpft habe und darauf eine Abfrage aufbaue und diese alphabetisch sortiere. Dann fällt sofort auf, wenn es einen Wert doppelt gibt, wenn ich z.B. über ein Kombinationsfeld dessen Inhalt im Formular anzeigen lasse. Oder nicht?

Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am März 07, 2024, 20:48:20
Zitat von: MzKlMu am März 04, 2024, 00:22:59Die Feldnamen die Du da gemacht hast sind gruselig. Du als Entwickler weist das natürlich. Aber eine Fremder tut sich da schwer mit. Und wenn Du 4 Wochen an der DB nichts gemacht hast, weist Du das auch nicht mehr.
Danke für den Tip. Die Bezeichnungen der Textfelder im Formular sind natürlich kürzer. Ich gebe dir recht, dass die Feldnamen sehr lang sind. Deinen Vorschlag finde ich sehr passend für mich. Das werde ich umsetzen.

Zitat von: MzKlMu am März 04, 2024, 00:22:59Was wird denn in der Tabelle "tblZutatSammel" gesammelt ?
Das ist wie eine Einkaufsliste, auf die ich später eine Abfrage aufbauen kann um zu ermitteln, was ich für den gewünschten Zeitraum einkaufen darf. Wenn dann später noch Preise hinzukommen, habe ich gleich einen Überblick, was die Lebensmittel für ein Gericht, eine Woche oder ein Tag kosten und ich kann sie  auch gleich nach Kategorie sortieren, was praktisch ist, weil ich dann im Supermarkt strukturierter einkaufen gehen kann.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: MzKlMu am März 08, 2024, 00:06:59
Hallo,
ZitatAber wenn ich eine Tabelle habe, wo alles gesammelt wird, ist die Fehlerquote doch viel höher
Was für eine Fehlerquote ?
Du wählst für die Sammelliste eine bzw. mehrere Zutat(en) aus und fertig. Wo soll da ein Fehler entstehen ?
Dass Du die richtigen Zutaten auswählst, das ist dann Deine Aufgabe.

Eine n:m Beziehungen sind zwei 1:n Beziehungen, mit einer 1:n Beziehung währe Dein Vorhaben gar nicht möglich.

ZitatDann fällt sofort auf, wenn es einen Wert doppelt gibt,
Wenn Du damit Doppelungen in der Sammeltabelle meinst, so kann man in der Sammeltabelle über die beiden Fremdschlüssel (...Ref) einen eindeutigen zusammengesetzten Index legen. Damit sind Doppelungen nicht mehr möglich, unter keinen Umständen.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am März 09, 2024, 06:43:39
Zitat von: MzKlMu am März 08, 2024, 00:06:59Was für eine Fehlerquote ?
Du wählst für die Sammelliste eine bzw. mehrere Zutat(en) aus und fertig. Wo soll da ein Fehler entstehen ?
Dass Du die richtigen Zutaten auswählst, das ist dann Deine Aufgabe.
Wenn ich die Beziehungsstruktur wie in #28 nutze dann nicht. Ich hatte wieder eine andere Beziehungsstruktur vor Augen.

Zitat von: MzKlMu am März 08, 2024, 00:06:59Eine n:m Beziehungen sind zwei 1:n Beziehungen, mit einer 1:n Beziehung währe Dein Vorhaben gar nicht möglich.
Danke für die Erinnerung.

Zitat von: MzKlMu am März 08, 2024, 00:06:59Wenn Du damit Doppelungen in der Sammeltabelle meinst, so kann man in der Sammeltabelle über die beiden Fremdschlüssel (...Ref) einen eindeutigen zusammengesetzten Index legen. Damit sind Doppelungen nicht mehr möglich, unter keinen Umständen.
Danke. Ich glaube das kann sehr hilfreich für mich sein. Ich werde das mal in meine Überlegungen einbeziehen und mitteilen, wenn ich die Lösung habe. Das erweitert meinen Horizont enorm.
Titel: Re: Wenn Funktion in Abfrage per Ausdrucksgenerator 16x verschachteln
Beitrag von: KonradR am März 16, 2024, 17:39:04
Im Zuge meiner weiteren Überlegungen zu dem Thema bin ich bei meiner Abfrage, die meinem Formular zugrundeliegt, auf eine weitere Herausforderung gestoßen. Nämlich, dass ich ja die Gewichtseinheiten in einer Abfrage abbilden möchte um mit diesen rechnen zu können. Daher, so meine Ansicht, ist es sinnvoll von der Zuordnungstabelle tblZutatenSammel (sorry die Tabellennamen habe ich noch nicht angepasst), eine Verbindung zur Tabelle tblZutatGWE und zur Tabelle tblZutatNaehrwerte zu erstellen, so dass die beiden zu letzt genannten Tabellen auch als Nachschlagetabelle genutzt werden können. Im Formular würde ich die Neueintragungung von Datensätzen in den beiden Tabellen tblZutatGwe und tblZutatNaehrwerte über PopUp-Formulare lösen. Im Unterformular möchte ich dann diese eingetragenen Datensätze nachschlagen können. Daher habe ich folgende Abfrage erstellt und in der Tabelle tblZutatSammel über die Fremdschlüssel ZutatSammelZutatGweIDRef und ZutatSammelZutatNwIDRef die beiden letztgenannten Tabellen verknüpft:
Screenshot 2024-03-07 203409.png
Die Berechnungen habe ich mir erst mal gespart, weil ich nur die Anzeige der Werte aus der Tabelle ZutatGWE prüfen wollte.

Wenn ich dann aber das Formular öffne, das als Datensatzherkunft die Abfragenstruktur vom Bild oben hat, erscheint genau eine weise Fläche und ich kann keine Daten eingeben. Wie hier:
Screenshot 2024-03-16 172620.png
 
Wenn ich mir die zugrunde liegende Abfrage in der Datenblattansicht anzeigen lasse, dann erscheint an der Stelle von ZutatSammelZutatGweIDRef die Spaltenüberschrift Expr1004. Für den Fremdschlüssel ZutatSammelZutatNwIDRef erscheint ein derartiger Text in der Spaltenüberschrift aber nicht. Könnt ihr mir da helfen, wie ich diese Herausforderung löse?