🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Datenbankaufbau - Leerformular m. Listenfelder füllen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Senior-2020
Beiträge: 16
Registriert: Fr 18. Dez 2020, 06:32

Datenbankaufbau - Leerformular m. Listenfelder füllen

Beitrag von Senior-2020 » Fr 18. Dez 2020, 07:45

Hallo,

wie ihr aus meinem Benutzernamen entnehmen könnt, bin ich nicht mehr der Jüngste. :roll:
Ich bin zur Zeit Zuhause und versuche mich LibreOffice Base einzuarbeiten.
Nun habe ich schon einiges gelesen, auf der bekannten Videoplattform einige Filmchen
angeschaut, im Netz gestöbert, und .... und... und.

Jetzt zum wesentlichen.

Ich wünsche eine Datenbank aufzubauen mit ich mir eine Stückliste aus mehreren Listenfeldern
zusammenstellen kann. Mein Gedanke war nun, daß ich verschiedene Tabellen fülle.
Das habe ich schonmal geschafft.

Jetzt will ich mir ein, ich sag mal, Blankoformular erstellen das ich dann jeweils kopieren kann.
Dieses Formular ist, wenn ich es aufrufe dann (jeweils) noch leer, es soll dann mit Listenfeldern aus den
verschiedenen Tabellen zur Auswahl der verschiedenen Formularzellen dienen.
Was mir jetzt nicht gelingt, ist daß ich aus den einzelnen vorhandenen "Haupttabellen" diese Listenfeldern
mit Auswahlmöglichkeiten aufbaue.

Wenn es mir dann tatsächlich gelungen ist so ein Listenfeld einzubauen kann ich dann zwar ein
Feld auswählen, aber das gelingt mir dann nur in der ersten Zeile bzw. Datensatz. Es gelingt
mir nicht dann weitere Datensätze hinzuzufügen.

In der angehängten Pdf-Datei habe ich versucht das Datenmodell aufzuzeigen.

Probleme habe ich auch die unter Extras, Beziehungen einzutragenden Beziehungen nützlich
zu erstellen. Zum Beispiel könnte es so sein, daß ich aus einer (Übersichts-)Tabelle, wenn ich
ein Feld auswähle dann zu einer weiteren (Untertabelle-)tabelle gelange die mir dann wiederum
nur die in der (Unter-)tabelle auszuwählenden Felder anzeigt.
Vom Datenmodell her würde das dann in etwa so aussehen:
Haupttabelle: Eis
Felder: CrushEis, SoftEis, KugelEis, ...
Untertabelle: AuswahlKugelEis
KugelEis Geschmack Vanille
KugelEis Geschmack Erdbeer
KugelEis Geschmack Schoko...
weiter Untertabelle: AuswahlCrushEis
CrushEis Wasser
CrushEis Zitrone
Crusheis Zimt ...
usw.

Eine weitere Frage wäre, ob ich in den Formularen die Listenfelder oder die Kombinationsfelder
nutzen soll. Es könnte ja sein, daß ich weitere Einträge in eine jeweilige Tabelle hinzufügen möchte, müßte?

Ok das war jetzt ziemlich viel, aber evtl. könntet ihr mir hierzu (erstmal) weiterhelfen.

Ich möchte mich im voraus für Eure Beiträge bedanken.
Viele Grüße Senior-2020

P.S. Ich habe LibreOffice 7.0.3.1 (x64) installiert
Dateianhänge
Datenmodell_V01_20201218.png
Datenmodell_V01_20201218.png (103.39 KiB) 3073 mal betrachtet

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Datenbankaufbau - Leerformular m. Listenfelder füllen

Beitrag von RobertG » Fr 18. Dez 2020, 18:27

Ich greife hier einmal nur 2 Elemente heraus:
Listenfelder oder Kombinationsfelder
Wenn Du Listenfelder nutzt, dann kannst Du etwas anderes anzeigen lassen als in der Tabelle gespeichert wird. Das wäre dann bei Deinen Eis-Beispielen eben der Schlüsselwert aus der Eistabelle, der dann über die Liste mit der Beschreibung des Eises ausgewählt wird.
Listenfelder sind typisch für die Verbindung von mehreren Tabellen. In der einen Tabelle werden über Listenfelder die Fremdschlüssel einer anderen Tabelle gespeichert.
Kombinationsfelder hingegen speichern direkt den Text, den Du eingibst. Das bedeutet, dass Du jedes Mal den Eistyp schreiben musst und keine Beziehung zwischen den Eistypen stehen. So etwas wird verwendet, wenn ein Text sich zwar öfter in einem Formular wiederholt, aber nicht so oft, dass er in eine separate Tabelle ausgelagert wird. Der Inhalt der Kombinationsfelder wird also oft durch den Inhalt der Tabelle gefüllt, in die auch geschrieben wird. Nichts mit mehreren Tabellen, keine Fremdschlüssel.
Von einander abhängige Listenfelder
Schau einmal im Handbuch nach dem Begriff "Hierarchische Listenfelder". So etwas nutze ich in Bibliotheksprogrammen, wo eine bestimmte Systematik vorgesehen ist. Zuerst die Grobeinteilung raus suchen und davon abhängig zeigt das nächste Feld dann die Details dazu an. Geht aber nur sinnvoll mit kleinen Makros zu lösen.

Und noch ein Satz zum Schluss: Mach' Dich nicht zu alt. Viele, die hier unterwegs sind, haben noch in den Anfängen des StarWriters unter Windows, oder wie ich unter DOS, ihre ersten Erfahrungen mit dem jetzigen Vorgängermodell von LibreOffice gemacht. Und das ist auch schon so einige Jährchen her.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Senior-2020
Beiträge: 16
Registriert: Fr 18. Dez 2020, 06:32

Re: Datenbankaufbau - Leerformular m. Listenfelder füllen

Beitrag von Senior-2020 » Di 29. Dez 2020, 05:58

Hallo,

danke für Ihre Hilfe. Nach weiteren unendlichen Recherchen, Tests komme ich zu dem
Schluß, daß ich mit einer Datenbank nicht zum gewünschten Ziel komme.

Es ist in einer Datenbank nicht möglich einzelne Datensätze (Zellen) aus verschiedenen
Tabellen zu einer neuen Tabelle zusammenzufügen (-zustellen).

Das Projekt ist somit (zumindest vorerst) eingestellt.

Danke und freundliche Grüße
Senior-2020
Dateianhänge
Datenmodell_V02_20201229.png
Datenmodell_V02_20201229.png (22.27 KiB) 2790 mal betrachtet

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Datenbankaufbau - Leerformular m. Listenfelder füllen

Beitrag von RobertG » Di 29. Dez 2020, 07:56

Hallo Senior-2020,

nein, eine neue Tabelle mit den bereits vorhandenen Datensätzen sollte möglichst nicht zusammengebaut werden. Was ist, wenn Du in der Ausgangstabelle etwas änderst? Wie kommt das weiter in die daraus abgeleitete Tabelle?

Mit Abfragen hast Du Dich ja vermutlich beschäftigt. Das Zusammenführen von Daten in Abfragen ist es dann ja wohl nicht, was Du erreichen willst.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Senior-2020
Beiträge: 16
Registriert: Fr 18. Dez 2020, 06:32

Re: Datenbankaufbau - Leerformular m. Listenfelder füllen

Beitrag von Senior-2020 » Di 29. Dez 2020, 09:27

Hallo,
Was ist, wenn Du in der Ausgangstabelle etwas änderst?
Die Ausgangstabellen sind Werte aus z.B. Tabellenbuch oder Pdf-Datei mit Werten die es bereits gibt.
Zum Beispiel hier https://bauforumstahl.de/wissen/stahlprofile.
Wie kommt das weiter in die daraus abgeleitete Tabelle?
Über Formulare, Neues Formular, Formular...Assistenten, Spalte einfügen,...
getestet mit Textfeld
getestet mit Listenfeld
getestet mit Kombinationsfeld ...

dann Listeninhalt "SQL" , ... "SELECT ... FROM ..."
Mit Abfragen hast Du Dich ja vermutlich beschäftigt. Das Zusammenführen von Daten in Abfragen ist es dann ja wohl nicht, was Du erreichen willst.
Ja, wenn ich eine Abfrage aus der wie vor beschriebenen Tabelle eine Abfrage erstellen möchte, dann geht das
nicht, weil die zuvor erstellt Tabelle bzw. das dann gefüllte Formular sich nicht auswerten lässt.
Ich kann nur aus den bereits vorhandenen gefüllten Ausgangstabellen oder anderen Abfragen auswählen.
Jedoch nicht aus der von mir zusammengestellten "Formulartabelle".
Ich kann dieses von mir zusammengestellte Formular auch nicht in eine auswählbare Tabelle umwandeln.

Es fehlt meines Erachtens der Schritt um aus meinem Formular eine neue Tabelle zu generieren.

Sollte es doch eine Möglichkeit geben das zu realisieren würde ich mich über eine Antwort freuen.

Danke und freundliche Grüße
Senior-2020

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Datenbankaufbau - Leerformular m. Listenfelder füllen

Beitrag von RobertG » Di 29. Dez 2020, 09:43

Hallo Senior-2020,

wo liegt bei Dir denn die "Formulartabelle"? In Base kannst Du für neue Abfragen auf alle Abfragen und Tabellen zugreifen. Damit kannst Du auch alle Daten entsprechend durchsuchen.

Das alles ist jetzt zu wenig konkret. Du müsstest schon ein Beispiel erstellen, woran ersichtlich ist, was Dir zur Zeit nicht gelingt.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Wanderer
* LO-Experte *
Beiträge: 909
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Datenbankaufbau - Leerformular m. Listenfelder füllen

Beitrag von Wanderer » Di 29. Dez 2020, 10:09

Senior-2020 hat geschrieben:
Di 29. Dez 2020, 05:58
Hallo,

danke für Ihre Hilfe. Nach weiteren unendlichen Recherchen, Tests komme ich zu dem
Schluß, daß ich mit einer Datenbank nicht zum gewünschten Ziel komme.

Es ist in einer Datenbank nicht möglich einzelne Datensätze (Zellen) aus verschiedenen
Tabellen zu einer neuen Tabelle zusammenzufügen (-zustellen).
...
Hallo,

schon die Eingangstirade enthält ja einen grundsätzlichen Fehler - sie war offensichtlich nicht unendlich.

Das Fazit ist ebenso falsch, denn jede Abfrage macht genau das: Eine neue (temporäre) Tabelle zusammenzustellen, die nach in SQL formulierten Regeln aus anderen bestehenden Tabellen und Abfragen zusammengesetzt wird.

Wie Robert schon schrieb, speichert man diese meist nicht - man kann sie ja jederzeit neu erzeugen.
Falls das doch nötig ist gibt es

Code: Alles auswählen

INSERT INTO ZielTabelle SELECT ...
womit das Ergebnis der Abfrage in eine vorher angelegte Tabelle geschrieben wird.

Ich habe den Verdacht, dass Du dasselbe mit einem Formular machen willst, aber da versuchst Du bildlich gesprochen mit einem Hammer eine Schraube zu bearbeiten.

Formulare dienen erstmal der Bearbeitung oder Visualisierung und Selektion einzelner Datensätze.

Ich nehme an, das Du erstmal eine Abfrage bauen musst, die die gewünschten Datensätze kombiniert. Das Ergebnis der Abfrage gehört dann ins Formular.
Typische Probleme: Keine Änderungen möglich, weil Primärschlüssel fehlen oder das Formular keine erlaubt.

Selektionsmöglichkeiten kommen dann über Parameterabfragen oder Filtertabellen.
Die Begriffe dürften während der unendlichen Recherchen ja schon mal an Dir vorbeigekommen sein (Ich nehme an Du hast das Base-Handbuch für Libre-Office gefunden?)

Mfg, Jörn

Mfg, Jörn
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

Senior-2020
Beiträge: 16
Registriert: Fr 18. Dez 2020, 06:32

Re: Datenbankaufbau - Leerformular m. Listenfelder füllen

Beitrag von Senior-2020 » Di 29. Dez 2020, 11:35

Hallo,

@Robert:
wo liegt bei Dir denn die "Formulartabelle"?
Ich habe deshalb Formulartabelle geschrieben, weil ich ein Formular in Tabellenform geschrieben habe.
In Base kannst Du für neue Abfragen auf alle Abfragen und Tabellen zugreifen.
Das habe ich ja oben schon erwähnt. ABER ich kann nicht auf die "Formulartabelle" zugreifen.
Damit kannst Du auch alle Daten entsprechend durchsuchen.
Es bringt mir doch nichts, wenn ich die Daten durchsuchen kann.
Ich möchte aus den vorhandenen Daten (Tabelle), Daten zusammenstellen um eine Stückliste zu erhalten.

Beispiel:
Auswahl aus Tabelle Menge: 2 (als Zahl)
Auswahl aus Tabelle Einheit: Stück (Text)
Auswahl aus Tabelle IPE-Profile: Auswahl IPE80 (Text)
Auswahl aus Tabelle Länge: 3000mm lang (als Zahl)
Auswahl aus Tabelle Masse: 6,0 kg/m (als Zahl)
Auswahl aus Tabelle MasseEinheit: kg/m
Berechnung Menge x Länge/1000 x Masse

wie vor, ebenfalls aus den Tabellen, jedoch 3, Stk., IPE100, 2500, 8,2
usw.
Beispiel erstellen, woran ersichtlich ist, was Dir zur Zeit nicht gelingt.
Was mir nicht gelingt habe ich oben bereits geschrieben. Nochmal, ich erhalte aus der Liste mit Datensätzen
in dem Formular in Tabellenform, keine eigenständige Tabelle die ich in einer Abrage abfragen kann.

@Jörn:
erstmal Danke für deinen Beitrag.
Das Fazit ist ebenso falsch, denn jede Abfrage macht genau das: Eine neue (temporäre) Tabelle zusammenzustellen, die nach in SQL formulierten Regeln aus anderen bestehenden Tabellen und Abfragen zusammengesetzt wird.
Egal was ich probiert habe, ich konnte keine EINZELNEN Datensätze auswählen um ein Bauteil wie in dem Beispiel beschrieben zu erhalten.
Bei mir kamen immer endlose Listen mit ALLEN verfügbaren Möglichkeiten heraus.
z.B. um obiges Beispiel vom IPE wieder zu verwenden.

gewünscht wäre der erste Datensatz:
2 Stück IPE80 3000mm lang, 6,0kg/m, 18kg (berechnet nach obiger Formel)
nächster Datensatz
3 Stück IPE100 2500mm lang, 8,2kg/m, 20,5kg (berechnet nach obiger Formel)
Ich habe den Verdacht, dass Du dasselbe mit einem Formular machen willst,...
Ja genau, da im Handbuch auch steht, FORMULARE sind für die Dateneingabe zuständig.
Und ich möchte die Dateneingabe mit den vorhandenen Tabellen erledigen.
Der Gedanke ist eben der, daß ich aus den vorhandenen Tabellen einzelne Daten mittels Drop-Down-Liste zusammenstellen möchte.
Formulare dienen erstmal der Bearbeitung oder Visualisierung und Selektion einzelner Datensätze.
Hier schreibst du es selber. Zitat: "Selektion einzelner Datensätze".
Ich nehme an, das Du erstmal eine Abfrage bauen musst,...
Ahaaaa, diesen Weg über die Abfrage ein Formular zu füllen hatte ich noch nicht getestet. Danke für den Tipp.
So wie ich das verstehe muss (sollte) ich alle Tabellen in eine Abfrage stecken und dann erst ein Formular aus der Abfrage erzeugen, wo ich dann die einzelnen Datensätze zusammensetzen kann. Richtig? Kann man über diesen Weg eine Stückliste erzeugen?

MfG Senior-2020

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Datenbankaufbau - Leerformular m. Listenfelder füllen

Beitrag von RobertG » Di 29. Dez 2020, 11:54

Hallo Senior-2020,

wenn ich das richtig verstehe willst Du aus bestehenden Tabellen Inhalte übernehmen, um die in einer neuen Tabelle zu kombinieren. Das ist das, was normalerweise mit Listenfeldern erledigt wird. Jedes Listenfeld zeigt den Inhalt einer bestehenden Tabelle Zeilenweise an. An die Tabelle, in der das gespeichert werden soll, wird nur der Schlüsselwert aus der bestehenden Tabelle weiter gegeben.

Dein Formular basiert nachher also auf einer Tabelle, die im Prinzip aus lauter Zahlen besteht. Die Anzahl für die jeweiligen Gegenstände und den Primärschlüssel für den entsprechenden Gegenstand, eingetragen als Fremdschlüssel.

Noch einmal: Einfacher wird das für uns, wenn Du ein kleines Beispiel hier online stellst, das zeigt, wo Du vielleicht Probleme hast.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Senior-2020
Beiträge: 16
Registriert: Fr 18. Dez 2020, 06:32

Re: Datenbankaufbau - Leerformular m. Listenfelder füllen

Beitrag von Senior-2020 » Di 29. Dez 2020, 11:59

Hallo,

ich habe jetzt nochmal ein Bild erstellt. Siehe Anhang.

Freundliche Grüße
Senior-2020
Dateianhänge
Stueckliste_V01_20201229.png
Stueckliste_V01_20201229.png (13.29 KiB) 2756 mal betrachtet


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten