🙏 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. 🤗

Wie eine Datenbank definieren ?

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
anton
Beiträge: 59
Registriert: Di 10. Jul 2012, 11:37

Re: Wie eine Datenbank definieren ?

Beitrag von anton » Fr 27. Dez 2013, 15:15

Hallo,
ich komme da nicht weiter, hier die Datei:
regale.zip
Datenbank, die nicht funktioniert
(11.45 KiB) 162-mal heruntergeladen
Was ich gern hätte:
Im Formular "eingabe-21" sind Listenfelder für
Regal, Fachboden, Behälter aufgeführt. Dieser Teil funktioniert soweit.
Links unten sind die bis jetzt erfaßten Schlagworte aufgeführt. Dort soll man auch Schlagworte ergänzen können.

Rechts unten sollen nun die für den jeweiligen Behälter zutreffenden Schlagworte aus der vorhandenen Schlagwortliste eingetragen werden (beliebig viele). Dort kann ich Schlagworte auswählen, beim Abspeichern erhalte ich jedoch eine Fehlermeldung.

(Zur Gestaltung des Formulars sage ich mal nichts, ich will zunächst begreifen wie man die Datenbank definieren muß.)

Vielen Dank.

Anton

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

Re: Wie eine Datenbank definieren ?

Beitrag von RobertG » Fr 27. Dez 2013, 16:27

Hallo Anton,

zuerst einmal hast Du das Listenfeld in dem entsprechenden Tabellenkontrollfeld mit einem Feld verbunden, das eigentlich gar keinen Sinn macht: "Schlagw.-Ausgew." (oder so ähnlich). Du speicherst doch den Inhalt des Schlüsselfeldes. Die Verbindung des Feldes muss also nach "Schlagwort_ID" gehen. Das andere Feld ist überflüssig.
Dann hast Du das Unterformular nicht mit dem darüberliegenden Formular verbunden. Klicke auf das Tabellenkontrollfeld und lass Dir die Eigenschaften für das dazugehörige Formular anzeigen. Bei den Daten muss eine Verknüpfung van → nach erstellt werden. Wenn Du das Formular mit der Tabelle "rel_Schlagwort_Behältnis" als Grundlage geöffnet hast, dann kannst Du bei "Verknüpfen von" auf den Button rechts mit den drei Punkten klicken und die entsprechenden Felder aussuchen. Das ist aus der Tabelle "Behältnis" das Feld "ID" und aus der Tabelle "rel_Schlagwort_Behältnis" das Feld "Behältnis_ID". Jetzt wird von dem darüberliegenden Formular an das neue Formular der Wert für "Behältnis_IID" weiter gegeben und von dem Listenfeld der Wert für "Schlagwort_ID".

Habe es danach getestet. Dann endlich läuft das Tabellenkontrollfeld so wie gewünscht: Hammer, Axt und Stemmeisen konnte ich der blauen Kiste zuordnen.

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

anton
Beiträge: 59
Registriert: Di 10. Jul 2012, 11:37

Re: Wie eine Datenbank definieren ?

Beitrag von anton » Fr 27. Dez 2013, 17:55

Hallo,
ja, jetzt läuft es :D Vielen Dank.

Das Feld "Schlagw.-Ausgew." hatte ich eingefügt, weil nichts richtig lief ... Aber ich soll ja nur die ID des Schlagwortes speichern!

Die Verbindung der Formulare hatte ich bisher nur im Formular Navigator angesehen ... Und im "Sub-Form-Schalgwort" habe ich unter Eigenschaften die Verknüpfungen gefunden und hergestellt. (Irgendwie ist das bei den anderen SubFormularen automatisch geschehen?)

Nochmals vielen Dank für die Hilfe und die Geduld.

Jetzt habe ich noch einige Wünsche bei den Schlagworten.

In der Tabelle über alle Schlagworte sollten die Schlagworte in alphabetischer Reihenfolge angezeigt werden.
In den Formular-Eigenschaften für die Schlagworte habe ich eingestellt, daß nach "Schlagwort" aufsteigend sortiert wird. Das funktioniert auch.

Auch bei der Auswahl, wenn ich ein Schlagwort dem Behälter zuordne, die Schlagworte in alphabetischer Reihenfolge?
In dem "SubForm-Schlagwort" könnte ich zwar auch eine Sortierung einstellen, es geht aber nur über die ID's, das will ich ja nicht.
Wie mache ich das hier?

Ich hoffe auf weitere Geduld.

Anton

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

Re: Wie eine Datenbank definieren ?

Beitrag von RobertG » Fr 27. Dez 2013, 20:53

Hallo Anton,
anton hat geschrieben: Auch bei der Auswahl, wenn ich ein Schlagwort dem Behälter zuordne, die Schlagworte in alphabetischer Reihenfolge?
In dem "SubForm-Schlagwort" könnte ich zwar auch eine Sortierung einstellen, es geht aber nur über die ID's, das will ich ja nicht.
Wie mache ich das hier?
Die Schlagworte in dem Listenfeld bekommst Du über die Abfrage zu den Listenfeldinhalten sortiert. Dort steht zur Zeit:
SELECT "Schlagwort", "ID" FROM "Schlagwort"
Daraus machst Du
SELECT "Schlagwort", "ID" FROM "Schlagwort" ORDER BY "Schlagwort" ASC
(ASC steht für "to ascend", aufsteigen)

Die Schlagworte, die Du schließlich ausgesucht hast, kannst Du nicht mehr so einfach in dem Tabellenkontrollfeld sortieren. Dies könntest Du realisieren, indem Du statt der Tabelle "rel_Schlagwort_Behältnis" eine Abfrage als Grundlage für das Formular nutzt:

Code: Alles auswählen

SELECT "Schlagwort_ID", "Behältnis_ID", (SELECT "Schlagwort" From "Schlagwort" WHERE "ID" = "a"."Schlagwort_ID") AS "Schlagwort" FROM "rel_Schlagwort_Behältnis" AS "a" ORDER BY "Schlagwort"
Du fragst vom Prinzip her die gesamte Tabelle "rel_Schlagwort_Behältnis" ab und lässt eine Unterabfrage mitlaufen, die das Schlagwort selbst angibt. Diese Unterabfrage bestimmt die Sortierung. Das Ganze als Abfrage gespeichert und als Grundlage für das entsprechende Unterformular gemacht sortiert Dir dann auch die Begriffe.

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

anton
Beiträge: 59
Registriert: Di 10. Jul 2012, 11:37

Re: Wie eine Datenbank definieren ?

Beitrag von anton » Sa 28. Dez 2013, 15:06

Hallo Robert,

die Sortierung bei der Auswahl konnte ich nach Deinen Vorgaben einfach erstellen - funktioniert auch.
Bei der Darstellung der ausgewählten Schlagworte in alphabetischer Reihenfolge:
uff, das war wie alles hier ganz neu!

Ich habe mir zwar im Handbuch Einführung das Kapitel Abfrage erstellen (ganz am Anfang) angesehen ... zum Schluß habe ich aber Deinen Code einfach in das Formular eingegeben ... auch hier funktioniert das alles. :D

Wie der Code mit der "Abfrage in der Entwurfsansicht erstellen" gebildet wird ist mir nicht klar. Das macht aber auch zunächst nichts, jetzt muß ich mir Berichte / Abfragen ansehen:
(Falls ich die Garage dann aufgeräumt habe und Behältnisse verschlagwortet habe) möchte ich eine Schlagwortliste erstellen (am Bildschirm ansehen bzw. ausdrucken), die mir nach Schlagworten sortiert angibt, welche Behälter von dem jeweiligen Schlagwort betroffen sind.
Also z.B.
Abdichtungsband: Regal 1, Fachboden 3, Behälter 2 - Blaue Kiste

Wie muß ich da vorgehen, was muß ich nacheinander definieren?

Ich hoffe weiterhin auf Geduld.

Gruß

Anton

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

Re: Wie eine Datenbank definieren ?

Beitrag von RobertG » Sa 28. Dez 2013, 18:02

Hallo Anton,

in der Entwurfsansicht kannst Du korrelierende Unterabfragen auch nur sehr schlecht erstellen. Das ist etwas für die direkte Eingabe des SQL-Codes.

Die Gruppierung nach den verschiedenen Schlagworten würde ich über einen Bericht erstellen. Du brauchst da ja nichts einzugeben, sondern nur eine Liste zu haben - wo ist was. Aber auch wenn Du das im Formular haben möchtest wäre zuerst eine Abfrage zu erstellen, die alle notwendigen Daten aus den verschiedenen Tabellen in einer Ansicht zusammenfasst. Erst auf der basierend erhältst Du dann die Möglichkeit, das Ganze nach den Schlagwörtern gruppiert irgendwo auszugeben.

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

anton
Beiträge: 59
Registriert: Di 10. Jul 2012, 11:37

Re: Wie eine Datenbank definieren ?

Beitrag von anton » Sa 28. Dez 2013, 19:08

Hallo Robert,

ich habe zunächst einmal eine Abfrage definiert, die die oben beschriebene Liste erzeugt.
Jetzt schaue ich mal, wie und ob ich daraus einen Bericht erstellen kann, also etwas zum Ausdrucken. Wenn das so geht.

Gruß

anton


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