BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> 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]
Automatisches Generieren komplexer Schlüssel [gelöst]
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!
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.
-
- Beiträge: 755
- Registriert: Fr 28. Mär 2014, 10:41
Re: Automatisches Generieren komplexer Schlüssel
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
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.
Re: Automatisches Generieren komplexer Schlüssel
Firebird kann das:
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.
Code: Alles auswählen
SELECT UUID_TO_CHAR(GEN_UUID()) AS "UUID" FROM "RDB$DATABASE"
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Automatisches Generieren komplexer Schlüssel
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!
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!
Re: Automatisches Generieren komplexer Schlüssel
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:
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/
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"
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Automatisches Generieren komplexer Schlüssel
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?
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?
Re: Automatisches Generieren komplexer Schlüssel
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
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 ❤️