Wir sind auf Ihre Unterstützung angewiesen!
💚 BITTE helfen Sie uns HEUTE mit einer SPENDE 💚
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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
Beiträge: 2416
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 10: 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
Beiträge: 2735
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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten