September 26, 2020, 19:07:40

Neuigkeiten:

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


Komplizierte Abfrage

Begonnen von Minotauros, September 14, 2020, 08:42:48

⏪ vorheriges - nächstes ⏩

Minotauros

Guten Morgen allerseits

Meine Skills stossen wieder an meine Grenzen bei einer Abfrage.

Ausgangslage: In einem Formular soll der User eine Liste ausfüllen. Eine Liste besteht aus mehreren Positionen, welche wiederum aus verschiedenen Inhalten (Preis, Objekte, Menge, etc) bestehen kann. Die Liste will ich mit einem Endlosformular umsetzen, welches als Datensatzquelle die Tabellen Position, Menge, Objekte, etc vereinigt. Da es sich bei den Beziehungen Position <-> Inhalt um n:m Beziehungen handelt existieren auch noch entsprechende Verknüpfungstabellen.

Das Beziehungsdiagramm habe ich in Visio nachgezeichnet (möchte mein Beziehungsdiagramm in Access nicht zerstören).

Problem: Wie erstelle ich die Abfrage für die Datensatzquelle, so dass eine Eingabe aller Datensätze möglich bleibt?
Ich habe zwei Abfragen erstellt (Position INNERJOIN ObjektInhalte INNERJOIN Objekt) und (Position INNERJOIN MengenInhalte INNERJOIN Menge) welche beide funktionieren und die Eingabe erlauben. Möchte ich diese beiden Abfragen aber nun mit einer INNERJOIN-Verknüpfung über den Primärschlüssel von Position (PosID=PosID) verbinden, so ist eine Dateneingabe nicht mehr möglich.

Ich hoffe ich konnte meine Anfrage ausreichend formulieren und bedanke mich für Eure Hilfe.

LG Mino

MzKlMu

Hallo,
zeige bitte das Access Original Beziehungsbild.
Wieso sollte man sich das zerstören?

Die Tabelle für die Menge halte ich für überflüssig.
Die Einheit gehört zum Objekt.
Von zusammengesetzten Primärschlüsseln solltest du Abstand nehmen, ein Autowert als Primärschlüssel ist besser.
Gruß
Klaus

Minotauros

Hoi

Vielen Dank für die Antwort und Tipps. Hier ist ein Ausschnitt des Beziehungsdiagramms mit den wichtigsten Tabellen: Sie dürfen in diesem Board keine Dateianhänge sehen.
Die ganze Darstellung befindet sich im Anhang.
Bezüglich Diagramm zerstören: Wenn ich die unnötigen Tabellen lösche, um die wichtigen übersichtlich darzustellen, dann muss ich wenn ich wieder das ganze sehen will wieder alle Tabellen wieder neu anordnen.

Warum sollte man Abstand nehmen von zusammengesetzten Primärschlüsseln?
Ich verwende sie nur bei Verknüpfungstabellen, die sowieso nur aus Fremdschlüsseln bestehen.

Die Einheit kann ich leider nicht in die Tabelle "Objekt" nehmen, weil Alternativeinheiten gewünscht werden.

Wo sollte man eine Mengen-Angabe platzieren wenn nicht in einer separaten Tabelle?

Freundliche Grüsse

MzKlMu

Hallo,
die Mengenangabe gehört in die Positopnstabelle ebenso der Fremdschlüssel zur Einheit.
Der Mwst Satz gehört in das Objekt. Mit der Position oder der Menge hat der garantiert nichts zu tun.

Überhaupt, tue ich mir schwer die Beziehungen zu verstehen, das scheint mir ziemlich übertrieben.
Kann da aber weiter nichts dazu sagen, da ich die Gesamtzusammenhänge nicht kenne.
Was hat es z.B. mit den Tabellen auf sich mit "...Tag..." im Namen ?
Sind das Stichworte, oder Tage eines Datums ?
Und wieso gibt es eine Beziehung auf sich selbst mit der Tabelle "tblTag" ?
Was ist SuperTag ?

PS:
Das Feld Anzahl solltest Du unbedingt umbenennen (Menge), das ist ein reserviertes Wort und macht Probleme mit der Access Funktion Anzahl()
Gruß
Klaus

Minotauros

Hoi

Ja bei "Tag" handelt es sich um Stichworte die ich benutze um alle möglichen Datensätze zu kategorisieren. Um die Stichworte selbst zu kategorisieren können sie ihre eigenen "Tags" haben, einen solche Beziehung nenne ich "SuperTag".

MWST-Satz hatte ich ursprünglich bei den Objekten. Der Einkauf hat allerdings gewünscht, dass der MWST-Satz separat für jede Buchung ausgewiesen wird und nicht bei den Stammdaten untergebracht wird, da sie sich die MWST wie zuletzt in Deutschland ändern kann.

Anzahl werde ich umbenennen. Ich gebe dir Recht: Ausser für den Ersteller sind die Beziehungen und wenig aussagekräftigen Bezeichnungen schwer durchschaubar.
Gesamtzusammenhang: Sollte eigentlich ein simples (und dadurch möglichst allgemeingültiges) Tool für die Erfassung von allen Möglichen Betriebsdaten werden, damit das Zusammentragen von Daten für Auswertungen und Berichte einfacher wird. Und dann kommen plötzlich alle möglichen Sonderwünsche und ehe ich mich versehe habe ich 3 mal so viele Beziehungen.

Um zu meiner Anfangsfrage zurückzukommen: Ich bin kaum der erste der versucht eine "Gabelung" von n:m -Beziehungen zusammenzufassen und unabhängig davon wie ich mein Problem löse, werde ich sicher wieder in diese Situation geraten.
Gibt es da vielleicht eine SQL-Referenzabfrage dafür?

Freundliche Grüsse

Beaker s.a.

@Minotauros
Zitatmöchte mein Beziehungsdiagramm in Access nicht zerstören
Was willst du da zerstören? Die Übersicht? Das ist doch das reinste Chaos.
Mit sowas könnte ich überhaupt nicht arbeiten. Das geht auch aufgeräumter.
Man kann die Tabellen z.B. verschieben, und durch eine geschickte Reihen-
folge der Schlüsselfelder lassen sich auch sehr viele Überkreuzungen von
Beziehungslinien vermeiden. Und dann kann man auch doppelte (tblEinheit 3x
mit dem gleichen FK verbunden  ??? ) erkennen und ausmerzen.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

ebs17

ZitatUm zu meiner Anfangsfrage zurückzukommen:
Die ist nicht so wirklich verständlich oder plausibel. Du wirst nicht erwarten können, ...zig Tab ellen mit JOIN's zu verknüpfen und dann eine Aktualisierbarkeit zu bekommen.

Das Einzige, was Sinn macht, ist, in einer Tabelle (welche) die Fremdschlüssel aus Verknüpfungstabellen zzgl. einiger zusätzlicher Daten zusammenzufassen. Die genannten Schlüssel bzw. -kombinationen kann man sich über Kombinationsfelder hereinholen.
Mit freundlichem Glück Auf!

Eberhard