Hallo,
nach einer schlaflosen Nacht.
Zitat: mir scheint, dass Du beim Aufbau der Datenbank etwas durcheinander bringst. Bei Dir beinhaltet eine Tabelle maximal eine zusätzliche Information. Alle anderen Felder sind entweder Primärschlüsselfelder oder Fremdschlüsselfelder.
Antwort:
Ja, so langsam habe ich den Eindruck, daß ich eine Datenbank grundsätzlich falsch verstehe.
Was ist eine Datenbank?
Datenbank - Ich stelle mir eine Datenbank vor wie ein riesengroßer Apothekenschrank mit unendlich vielen kleinen Schubladen.
Tabellen - In jeweils einer Schublabe sind, um von vorne anzufangen, z.B. die Positionsnummern.
Tabellen - Weitere Schubladen wären dann Menge, Baugruppe, Bauteil, Bennennung, Länge, Breite, Höhe usw.
Formulare - Will ich in eine Schublade etwas hinzufügen rufe ich die entsprechende Schublade über ein EINGABE-Formular auf und gebe weitere Daten ein.
Jörn schreibt Zitat: Formulare dienen erstmal der Bearbeitung oder Visualisierung und Selektion einzelner Datensätze.
weiter...Die Tabellen bzw. Schubladen sind jetzt mit Daten befüllt.
Formulare - Ich will jetzt aus einer Schublade ein Teil entnehmen (selektieren), das mache ich über ein Listenfeld bzw. Kombifeld
Formulare - Ich öffne weitere Schubladen öffen und entnehme weitere Daten die zu einer Baugruppe gehören.
z.B. Schublade Bauteile z.B. Stuetze, Schublade Benennung z.B. IPE, Schublade Laenge z.B. 3000mm lang, ...
So stelle ich jeweils mehrere (viele) Datensätze durch Selektion zusammen.
Somit habe ich jetzt ein gefülltes Formular (neue Schublade) erzeugt.
Jetzt müßte meines Erachtens aus der neu erzeugten Schublade(Formular) eine Tabelle entstehen welche die selektierten Daten enthält,
die ich dann abspeichern und/oder weiterbearbeiten kann.
Geht aber anscheinend nicht.
Vielleicht ein Beispiel aus dem wahren Leben:
Ich stehe vor einem Autohaus und möchte ein Auto mit bestimmten Eigenschaften (die ja nur ich wissen kann, weil ich noch nicht im Autohaus bin).
Jetzt gehe ich in das Autohaus zu dem Verkäufer. Dieser Verkäufer weis "nur" daß ich ein Kunde bin der ein Auto möchte.
1. Schritt: Der Verkäufer schlägt mir ein bestimmtes Modell von den vielen Modellen vor und öffnet damit die erste Schublade
2. Schritt: Der Verkäufer fragt welche Eigenschaften das Modell haben soll und öffnet somit jeweils eine weitere Schublade und holt die Eigenschaft heraus.
3. Schritt: Das so zusammengestellte Modell mit versch. Eigenschaften ist zusammengestellt.
Dies wäre jetzt der erste Datensatz.
Die Schritte 1-3 können jetzt beliebig oft mit versch. Modellen und Eigenschaften wiederholt werden.
Ok, sag ich dem Verkäufer ich möchte noch 1-2 alternative Modelle angeboten haben.
Somit hätten wir jetzt 3 (Modelle) Datensätze zusammengestellt und würde diese ausdrucken.
Und genau dieser, ich sag mal, Zusammenstellungsprozess (Selektionsprozess) geht nicht, obwohl ich alle Automodelle
mit allen Eigenschaften in dem Autohaus habe.
Zitat:
Für Dein Hauptformular habe ich zuerst gesucht, in welcher Tabelle Du denn jetzt die Informationen speichern willst, die Du da aus den verschiedenen Feldern irgendwie zusammenstückst. Das gelingt mir nicht, weil so eine Tabelle überhaupt nicht existiert.
Antwort:
In Anführungszeichen "doch" und zwar in dem von mir zusammengestellten bzw. selektierten Formular mit den Listen- bzw. Kombinationsfeldern.
Zitat:
Ich nehme einmal Tabelle 0 und Tabelle 1. Die sind bei Dir so verknüpft, dass alle Mengenangaben und alle Positionsangaben in der Tabelle_rel_01 zusammengeführt werden. In einem Formular würde das so aussehen, dass Du ein Listenfeld für die Postion und ein Listenfeld für die Menge. Datenbasis für das Formular wäre jetzt Tabelle_rel_01. Das sind dann aber nur 2 Felder, die im Formular eine Aussage erwirken.
Antwort:
Der Grundgedanke hier ist folgender:
Positionen können viele Mengen enthalten
Es könne aber auch gleiche Mengen in verschiedenen Positionen vorhanden sein.
Somit wäre dies ein m:n-Beziehung. Wie im Handbuch beschrieben über eine "rel_Tabelle" erzeugt.
Analog auch zwischen den anderen Tabellen.
Zitat:
Du könntest natürlich alle möglichen Inhalte über Nebenformulare und Unterformulare dort anhängen, aber mir erschließt sich nicht, wo das wirklich gespeichert werden soll.
Antwort:
Genau, wo kann ich das speichern?
Zitat:
Das wird auch an der Abfrage deutlich, bei der Du überhaupt keine Beziehung zwischen den Tabellen definiert hast.
Antwort:
Habe ich nicht unter "Extras/Bezieheungen" die Beziehungen bereits definiert?
Oder anders herum, wirken sich die Beziehungen nicht auch auf Tabellen und Abfragen aus?
Zitat:
Gehe den umgekehrten Weg. Fange mit dem Inhalt Deiner Abfrage an. Mache den Inhalt zu der Haupttabelle, in der später Deine Daten gespeichert werden. Baue dann Fremdschlüssel ein, wenn bestimmte Inhalte in der Haupttabelle häufiger vorkommen. Wenn es also z.B. eine begrenzte Anzahl an Positionen gibt (und nicht nur eine Zahlenfolge), dann solltest Du einen Fremdschlüssel in die Tabelle für die PostionsID einbauen und eine separate Tabelle "Postion" einführen. Sehe ich da nicht, aber z.B. bei der Tabelle für die Bauteile, die ja vermutlich begrenzt sind. Ebenso für die Benennung ...
Antwort:
Tut mir Leid, verstehe ich nicht. Ich kann doch in einer Abfrage keine Listen- und/oder Kombifelder zum auswählen, selektieren erzeugen???
Und das alles am frühen Morgen, ich brauch jetzt erstmal einen Kaffee.
Bis dann, über eine Antwort würde ich mich freuen.
Viele Grüße
Senior-2020