❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ 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. 🤗

Verknüpfte Werte anzeigen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Benutzeravatar
Voni
Beiträge: 4
Registriert: Mi 4. Sep 2013, 21:24
Wohnort: Schweiz

Verknüpfte Werte anzeigen

Beitrag von Voni » Mi 4. Sep 2013, 21:59

Hallo zusammen

Ich bin neu hier im Forum und auch ein neuer Benutzer von Base. Ich habe da eine Idee, welche ich in ein Projekt unterbringen möchte. Die Lösung als Datenbank zu realisieren erscheint mir am einfachsten.
Kurz zu der Idee: Ich möchte eine wöchentliche Einkaufsliste anhand eines Wochenplanes ausdrucken, und zwar sortiert nach Verkaufsladen. Dazu sind natürlich die Lebensmittel sowie die Rezepte erfasst. Wie ich das alles realiseren soll ich mir noch recht schleierhaft, darum habe ich mein Vorhaben mal mit Papier und Stift visualisiert, welche Tabellen nötig sind. Ok, eine A4 Seite füllt das locker mal. Unterteilt habe ich das ganze in 3 Kapitel: Lebensmittelerfassung, Rezepterfassung und Wochenplan mit Einkaufsliste.
Wie ich schon geschrieben habe, bin ich neu in Base, habe aber auch sonst bislang noch keine Datenbank-Design Erfahrungen gesamelt (reiner Anwender bis jetzt). Mir sind also nicht alle Möglichkeiten geläufig. Ich werde in Zukunft sicher einige Fragen stellen, einfach weil ich zwar weiss, was ich will, aber nicht weiss wie man das nennt. Ich wäre natürlich froh, wenn ich keine Copy & Paste Antwort erhalte sondern den Hinweis wie das heisst und evt. auch, wo ich am schnellsten eine Antwort finde (nach Möglichkeit selber erarbeiten ==> Lerneffekt). Mir ist bewusst, dass es das Base Handbuch gibt, welches ich auch heruntergeladen habe. Ich bin allerdings der praktische Mensch, welche an konkreten Beispielen lernt.

Nun ich habe folgene Konkrete Anwendung, welche mir Kopfzerbrechen bereitet:
Bild
Ich möchte gerne im Formular Laden nicht nur das Land auswählen können, sondern auch die Währung, welche an das Land gebunden ist, anzeigen lassen. Jetzt ist es so, dass ich die Währung auswählen kann, was so kein Sinn macht da diese nicht in eine weitere Tabelle geschrieben wird.
Welches Stichwort bringt mich da weiter? Sind in den Verknüpfungen offensichtliche Fehler vorhanden?

Es dankt und grüsst

Voni
LibreOffice Base Neuling ==> Das Ziel ist mir bekannt, den Weg dorthin erarbeite ich mir.

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Verknüpfte Werte anzeigen

Beitrag von F3K Total » Mi 4. Sep 2013, 22:56

Hi Voni,
das Zauberwort heißt Abfrage. Ein Beispiel:
Q.png
Q.png (16.72 KiB) 6443 mal betrachtet
Und in der SQL-Ansicht entspricht diese Abfrage:

Code: Alles auswählen

SELECT 
   "Laden"."ID", 
   "Laden"."Laden", 
   "Land"."Land", 
   "Währung"."Währung" 
FROM 
   "Laden", 
   "Land", 
   "Währung" 
WHERE 
   "Laden"."FK_ID_Land" = "Land"."ID" 
AND 
   "Land"."FK_ID_W" = "Währung"."ID"
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Benutzeravatar
Voni
Beiträge: 4
Registriert: Mi 4. Sep 2013, 21:24
Wohnort: Schweiz

Re: Verknüpfte Werte anzeigen

Beitrag von Voni » Do 5. Sep 2013, 11:51

Hallo R

Vielen Dank für deinen Input mit der Abfrage, ich mache mich im Moment in dem Bereich schlau und versuche dies und jenes so zu lösen.

Du hast mir noch den SQL Code aufgeschrieben. Welchen Stellenwert hat dieser z.B. für mich? Geht das ganze auch ohne selber Codes zu generieren oder kommt man früher oder später an eine Grenze, welche nur mit SQL durchbrochen werden kann?

Gruss

Voni
LibreOffice Base Neuling ==> Das Ziel ist mir bekannt, den Weg dorthin erarbeite ich mir.

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Verknüpfte Werte anzeigen

Beitrag von F3K Total » Do 5. Sep 2013, 19:45

Hi,
Voni hat geschrieben:...oder kommt man früher oder später an eine Grenze, welche nur mit SQL durchbrochen werden kann
Exakt so ist es.
Ich habe per GUI angefangen, dann den SQL Code angesehen und dadurch schon vieles verstanden.
Die Syntax von HSQL nach und nach dazugelernt und siehe da, ist nicht schwer und macht fast alles möglich.
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Benutzeravatar
Voni
Beiträge: 4
Registriert: Mi 4. Sep 2013, 21:24
Wohnort: Schweiz

Re: Verknüpfte Werte anzeigen

Beitrag von Voni » Do 5. Sep 2013, 21:35

Gut dann werde ich für die Zukunft den Blick auch auf den SQL Code werfen.

Ich habe die Abfrage wie du diese gemacht hast, nachstellen können, soweit kein Problem. Allerdings war das Ziel, dass ich den Laden schreiben und das Land auswählen kann und danach auch die Währung angezeigt wird. Ist es Möglich, von einer Abfrage ein Formular zu erstellen und darin Daten einzugeben?
LibreOffice Base Neuling ==> Das Ziel ist mir bekannt, den Weg dorthin erarbeite ich mir.

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

Re: Verknüpfte Werte anzeigen

Beitrag von RobertG » Fr 6. Sep 2013, 16:59

Hallo Voni,

für ein Formular braust Du nicht die Abfrage. Dort gibst Du schließlich nur die Daten ein, die nach dem Beispiel von F3K Total in der Tabelle "Laden" auftauchen.

Erstelle ein Formular (z.B. mit dem Assistenten) für die Tabelle "Laden". Der Assistent gibt Dir alle 3 Felder der Tabelle als Formular wieder. Das Feld "ID" ist vermutlich ein AutoWert-Feld. Wird also automatisch hochgeschrieben, könntest Du also genauso gut auf schreibgeschützt setzen oder im Formularentwurf ganz löschen. Das Feld "Laden" dient zur Eingabe des Ladens. Das Feld "FK_ID_Land" ist jetzt etwas blöde zu bestücken. Da müsste eigentlich jetzt laufend auf die Tabelle "Land" gesehen werden, das Land ausgesucht werden, dann die ID ermittelt werden und eingetragen werden - unpraktisch.

Öffne das Formular nicht zur Eingabe von Daten, sondern zum Bearbeiten. Markiere das Feld, das "FK_ID_Land" aufnehmen soll. Gegebenenfalls kannst Du das nicht so einfach markieren, da zusätzlich ein Beschriftungsfeld in der Gruppe liegt. Hier müsstest Du erst die Gruppe betreten, anschließend das Feld markieren. Rechter Mausklick, Feld umwandeln in ein Listenfeld.
Jetzt die Eigenschaften des Listenfeldes aufrufen, Reiter Daten. In den Daten steht oben immer noch das damit verbundene Feld, nämlich "FK_ID_Land". Die Art des Listeninhaltes stellst Du auf 'SQL'. Bei 'Listeninhalt' taucht ein Button mit 3 Punkten auf. Über den erreichst Du die gleiche Oberfläche wie bei den Abfragen. Du erstellst also eine Abfrage, die das Feld bestückst. Trick dieser Abfrage: Die erste Spalte der Abfrage wird im Listenfeld angezeigt, die 2. Spalte wird gespeichert. Wähle also im Abfrageeditor die Tabelle "Land". Wähle aus dieser Tabelle zuerst "Land" und dann "ID". Lass vielleicht noch "Land" sortieren. Schließe die Abfrage, schließe auch das Eigeschaftsfeld und speichere das Formular.

Du bist jetzt einen Schritt weiter. Im Formular siehst Du den Laden und das dazugehörige Land - nicht mehr den Laden und eine nackte Zahl. Du kannst das Land mit dem Listenfeld auch ändern oder eben bei einer Neueingabe auswählen.

Jetzt fehlt Dir noch die Währung. Die kann auch in der Abfrage für das Listenfeld mit eingebaut werden. Allerdings bedarf es da etwas Handarbeit, da ja nur die Informationen des ersten Feldes angezeigt, die des zweiten gespeichert werden.

Zum Lernen jetzt einfach einmal eine Abfrage erstellen, in der Du die Tabelle "Land" und "Währung" miteinander verbindest. Dann die Felder "Land", "Währung" und "ID" (aus der Tabelle "Land") auswählen. Ein Blick auf den SQL-Code ergibt das folgende:

Code: Alles auswählen

SELECT "Land"."Land", "Währung"."Währung", "Land"."ID"
FROM  "Land", "Währung"
WHERE  "Land"."FK_ID_W" = "Währung"."ID"
Dummerweise ist das natürlich nicht so schön geordnet. Die Schlüsselwörter sind aber farblich hervorgehoben, so dass es bei so einer kurzen Abfrage auch noch übersichtlich bleibt.
Die Abfrage gibt 3 Felder wieder. Jetzt müssen wir händisch eingreifen:

Code: Alles auswählen

SELECT "Land"."Land"||"Währung"."Währung", "Land"."ID" ...
Nur noch 2 Felder sind sichtbar, die Währung wird direkt an das Land angehängt. Nicht schön, aber die Information ist da. Muss also noch etwas schöner:

Code: Alles auswählen

SELECT "Land"."Land"||' - Währung:'||"Währung"."Währung", "Land"."ID" ...
Jetzt ist ein Abstand eingefügt worden und die Information, dass die Währung folgt. Du kannst also beliebige Informationen mit in dem Feld ausgeben.

Die Abfrage ist erstellt, die jetzt die Abfrage in dem, Listenfeld des Formulars ersetzen soll. Also das Formular zum Bearbeiten öffnen, Listenfeld zum Bearbeiten ...

Das klappt sicher nicht alles beim ersten Mal, aber Versuch macht Kluch.

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

Benutzeravatar
Voni
Beiträge: 4
Registriert: Mi 4. Sep 2013, 21:24
Wohnort: Schweiz

Re: Verknüpfte Werte anzeigen

Beitrag von Voni » Fr 6. Sep 2013, 22:00

Hallo Robert

Vielen Dank für deine sehr ausführliche Erklärung.
RobertG hat geschrieben:Das klappt sicher nicht alles beim ersten Mal, aber Versuch macht Kluch.
In der Tat hat es weder beim ersten, noch beim zweiten mal geklapt. Allerdings, und das ist wichtig, es hat geklapt und ich durfte dabei noch was wesentliches lernen. Danke für deinen Hinweis!
Nun mache ich mich daran, dies auch an vielen anderen Orten auszuprobieren :mrgreen:

Gruss Voni
LibreOffice Base Neuling ==> Das Ziel ist mir bekannt, den Weg dorthin erarbeite ich mir.


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