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

Automatisches Generieren komplexer Schlüssel [gelöst]

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Susi93
! Supporter - Spende !
Beiträge: 34
Registriert: Di 1. Nov 2022, 07:37

Automatisches Generieren komplexer Schlüssel [gelöst]

Beitrag von Susi93 » Do 22. Dez 2022, 12:11

Hallo zusammen,

ich übernehme gerade eine Datenbank aus Excel, die ich in Base überführe.

Diese haben eine Form wie z.B. "ace597b3-717c-4a65-990c-e9fd0ec0c2a0".

Wie heißt diese Form? Und wie kann ich sie bei jedem neu angelegten Eintrag in die Tabelle automatisch erstellen lassen?

Danke!
Zuletzt geändert von Susi93 am Mo 13. Feb 2023, 20:59, insgesamt 1-mal geändert.

Freischreiber
Beiträge: 755
Registriert: Fr 28. Mär 2014, 10:41

Re: Automatisches Generieren komplexer Schlüssel

Beitrag von Freischreiber » Do 22. Dez 2022, 15:17

Hallo Susi,

googel mal UUID bzw. GUID. So sieht das jedenfalls aus. Dafür gibt es auch Generatoren. Ob direkt unter LibreOffice, weiß ich nicht.

Gruß
Freischreiber
Freischreiber nutzt seit 6/2023 LibreOffice Version: 7.2.7.2 (x64) unter Windows 10 und SplitDB mit HSQL 2.7.2.

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Automatisches Generieren komplexer Schlüssel

Beitrag von RobertG » Do 22. Dez 2022, 16:17

Firebird kann das:

Code: Alles auswählen

SELECT UUID_TO_CHAR(GEN_UUID()) AS "UUID" FROM "RDB$DATABASE"
Das Feld muss dann natürlich ein VARCHAR-Feld sein, das diesen Schlüssel aufnimmt.

Du könntest so etwas mit Hilfe einer Abfrage eventuell innerhalb eines Formulars vorbelegen, wenn es sich nicht um den Primärschlüssel handelt. Mittels Makros geht es natürlich auf jeden Fall.
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

Susi93
! Supporter - Spende !
Beiträge: 34
Registriert: Di 1. Nov 2022, 07:37

Re: Automatisches Generieren komplexer Schlüssel

Beitrag von Susi93 » Do 12. Jan 2023, 17:31

Das Verlegen der Datenbank zu Base klappt immer besser, ich mache einige Fortschritte.
Vielleicht könnt ihr mir noch bei ein paar kleineren Dingen helfen, für die ich nicht einen eigenen Thread aufmachen möchte:
Wie schaffe ich es, dass bei jedem neuen Datensatz, der über ein Formular angelegt wird, ein Wert (Zahl für Datensatz) um 1 erhöht wird?
Wie schaffe ich es über eine Formulareingabe, den Wert von zwei Spalten zu multiplizieren und in eine dritte Spalte einzugeben (z.B. Stundensatz x Arbeitsstunden = Honorar)?
Wie kann ich über das Formular ein Datum über eine Kalenderanzeige eingeben?
Gibt es eine Möglichkeit, ein Datum nach Berichterstellung automatisch umzustellen (d.h. ich erstelle eine Rechnung, und der Status eines Projekts geht von "nicht in Rechnung gestellt" in "in Rechnung gestellt" über)?

Ich nehme an, dass dies alles über SQL geht, ich habe aber davon (noch) wenig Erfahrung.

Danke für die Hilfe!

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Automatisches Generieren komplexer Schlüssel

Beitrag von RobertG » Do 12. Jan 2023, 17:49

Zum automatisch ansteigenden Wert: Das Feld muss natürlich ein Zahlenfeld, am besten INTEGER sein.

Wenn Du die interne HSQLDB nutzt klappt es, indem Du die Tabelle zum Bearbeiten öffnest und in den Feldeigenschaften (unten im Editor) zu dem entsprechenden Feld Auto-Wert einstellst.
Bei Firebird ist die Integration in die GUI nicht so gut. Da müsstest Du eine neue Tabelle erstellen, die eben diesen Auto-Wert hat.

Wenn Du Werte multiplizieren willst, so mache dies über eine Abfrage. Der Nachteil ist natürlich, dass Du den Wert nicht direkt während der Eingabe angezeigt bekommst. Nutzt Du aber ein Tabellenkontrollfeld, dann hast Du direkt einen Blick auf den Wert, wenn Du die Zeile verlässt.
Also den Abfrageeditor öffnen, alle Felder der Tabelle dort hinein und einfach die Namen der beiden Felder, die Multipliziert werden sollen, mit einem '*' verknüpft dazu packen. Das sieht dann in dem direkten SQL so aus:

Code: Alles auswählen

SELECT "ID", "Anzahl", "Preis", "Anzahl" * "Preis" AS "E_Preis" FROM "Einkauf"
Die Abfrage muss auf jeden Fall den Primärschlüssel der Tabelle enthalten. Sonst kannst mit der Abfrage als Basis im Formular keine Daten ändern.

Datumsanzeige zum Auswählen: Du musst ein "Datumsfeld" haben - kein "Formatiertes Feld". In den allgemeinen Eigenschaften gibt es die Möglichkeit, "Aufklappbar" zu wählen.

Wenn Du nach einer Berichtserstellung etwas automatisch erzeugen willst, dann kommst Du um Makros nicht herum. Deswegen: Zuerst die kleinen Schritte, dann der nächste größere Schritt. Und falls Dir die Informationen ausgehen:
Lade Dir einfach das Handbuch runter. Dann brauche ich nur auf die entsprechenden Seiten zu verweisen.
https://de.libreoffice.org/get-help/documentation/
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

Susi93
! Supporter - Spende !
Beiträge: 34
Registriert: Di 1. Nov 2022, 07:37

Re: Automatisches Generieren komplexer Schlüssel

Beitrag von Susi93 » Fr 13. Jan 2023, 08:58

Ja, es gibt noch einiges zu tun, aber ich bin froh, nicht mehr von anderen Projektmanagement-Tools abhängig zu sein.

Wegen der automatischen Erhöhung: Wenn ich "AutoWert" aktiviere, wird die Spalte "Nummer" zu einem Primärschlüssel, und ich bekomme die Meldung, dass ein Speichern nicht möglich ist. Wie kann ich das verhindern?

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Automatisches Generieren komplexer Schlüssel

Beitrag von RobertG » Fr 13. Jan 2023, 09:41

Wenn Du schon einen Primärschlüssel hast, dann macht der AutoWert keinen Sinn. Was möchtest Du erreichen? Und: Mit welcher Datenbank arbeitest Du? Es gibt intern die HSQLDB und Firebird, also schon 2 Datenbanktypen in einer Base-Datei zur Auswahl.
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

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