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

Feld in Tabelle einen Befehl zuordnen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
dackelpack
Beiträge: 19
Registriert: Do 20. Okt 2016, 16:16

Feld in Tabelle einen Befehl zuordnen

Beitrag von dackelpack » Di 23. Mai 2017, 18:26

Ich versuche gerade für unseren Verein eine Vereinsverwaltung aufzubauen, alles was man käuflich erwerben kann, hat uns entweder nicht gefallen oder war für unsere Zwecke zu teuer. Ich bin was Datenbanken angeht ein absoluter Anfänger und wurschtele mich so durch. Ich hab ein paar Tabellen angelegt, mir Formularfelder und ein paar Abfrage erstellt und komme soweit auch zurecht. Jetzt habe ich aber ein Problem und konnte weder bei Google, hier im Forum noch im BASE-Handbuch etwas finden (da ich vermutlich die falschen Suchworte benutze). Also, ich habe eine Tabelle "Mitglieder" in der es die Felder ID, Name, Vorname usw. und so fort gibt. Für das Feld "Alter" brauche ich ja eigentlich nicht rechnen bzw. das Alter eintragen, geht ja mit unten aufgeführten SQL-Code. Auch das Feld "Geschlecht" möchte ich nicht immer ausfüllen, da sich "männlich" oder "weiblich" ja über mein Feld "Anrede Herr/Frau" ableiten lassen würde. Mein Problem ist aber, ich finde keine Möglichkeit, den Tabellen-Feldern die entsprechenden Befehle zuzuweisen. In Calc ist das ja recht einfach über die Funktionen gelöst wie aber funktioniert das bei BASE? D.h. wo muss ich den unten aufgeführten Befehl in meiner Tabelle eingeben? Bei den Abfragen (siehe unten) ist das kein Problem, nur bei den Tabellen kann ich nichts finden!

Code: Alles auswählen

SELECT "Anrede", "Titel", "Nachname", "Vorname", "Straße", "PLZ", "Wohnort", "Geschlecht", "Familienstand", "Mgl.-Nr.", "Geburtsdatum",
CASEWHEN ((MONTH("Geburtsdatum") > MONTH(CURDATE())) OR
((MONTH("Geburtsdatum") = MONTH(CURDATE())) AND (DAY("Geburtsdatum") >
DAY(CURDATE()))) , DATEDIFF('yy',"Geburtsdatum",CURDATE())-1,
DATEDIFF('yy',"Geburtsdatum",CURDATE()))
AS "Alter" FROM "Mitglieder"

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

Re: Feld in Tabelle einen Befehl zuordnen

Beitrag von F3K Total » Di 23. Mai 2017, 19:21

Versuche es mit dieser Abfrage:

Code: Alles auswählen

SELECT "Anrede", "Titel", "Nachname", "Vorname", "Straße", "PLZ", "Wohnort", "Geschlecht", "Familienstand", "Mgl.-Nr.", "Geburtsdatum",
CASEWHEN ((MONTH("Geburtsdatum") > MONTH(CURDATE())) OR
((MONTH("Geburtsdatum") = MONTH(CURDATE())) AND (DAY("Geburtsdatum") >
DAY(CURDATE()))) , DATEDIFF('yy',"Geburtsdatum",CURDATE())-1,
DATEDIFF('yy',"Geburtsdatum",CURDATE()))
AS "Alter",  CASEWHEN ("Anrede" = 'Herr', 'männlich', 'weiblich') AS "Geschlecht" FROM "Mitglieder"
So siehst du das Geschlecht.
Es ist natürlich auch möglich eine neue Spalte "Geschlecht" in der Tabelle anzulegen und diese mit 'männlich' oder 'weiblich', je nach Anrede zu füllen.
Geht alles per SQL.
Aber das wäre doppelte Datenführung.
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

dackelpack
Beiträge: 19
Registriert: Do 20. Okt 2016, 16:16

Re: Feld in Tabelle einen Befehl zuordnen

Beitrag von dackelpack » Di 23. Mai 2017, 21:46

Danke schon mal für die Antwort aber mein Problem bleibt! Wie/Wo kann ich die BASE-Tabelle damit füttern (keine Abfrage, sondern einfach die Einträge in der/dem entsprechenden Feld/Spalte)? Ich gehe davon aus, dass ich aktuell Bretter vorm Kopf habe aber leider lichtet sich der Wald nicht!

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

Re: Feld in Tabelle einen Befehl zuordnen

Beitrag von RobertG » Mi 24. Mai 2017, 19:39

Hallo dackelpack,

grundsätzlich haben Felder, die aufgrund der Eingabe in andere Felder berechnet werden sollen, in der Tabelle nichts zu suchen. Wenn Sich Felder berechnen lassen, dann geschieht dies in einer Abfrage (oder einer Ansicht(View)). Das hat mehrere Gründe:
Tabellen sollen nur die notwendigen Daten enthalten. Alles das, was sich daraus erschließen lässt, bläht eine Datenbank nur auf.
Felder in Tabellen werden einmal beschrieben. Der Inhalt ist also mit dem Eingabewert, nicht mit einer Formel gespeichert. Das geben schon die Feldtypen gar nicht her.

Wenn Du tatsächlich über eine Formel (mittels Makro) z.B. das Alter in die Tabelle schreiben lässt, dann ist die Spalte eventuell schon einen Tag später veraltet - wenn die Person einen Tag später Geburtstag hat.

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

dackelpack
Beiträge: 19
Registriert: Do 20. Okt 2016, 16:16

Re: Feld in Tabelle einen Befehl zuordnen

Beitrag von dackelpack » Mi 24. Mai 2017, 19:57

Hallo Robert,
Danke für deine Erklärung! Nachdem was ich heute recherchieren konnte ist es wohl (leider) so. Ich hab mich da ein bisschen verrannt, eine Abfrage ist ja nichts schlimmes :)!

Ich wünsche allen einen schönen Feiertag

dackelpack


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