🙏 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!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Leichtes erstellen und speichern von ausfüllbaren Formularen
Re: Leichtes erstellen und speichern von ausfüllbaren Formul
Klingt nach einiger Arbeit.
Aber erstmal muss ich die grundlegenden Dinge meiner Datenbank hinbekommen.
Aber erstmal muss ich die grundlegenden Dinge meiner Datenbank hinbekommen.
Re: Leichtes erstellen und speichern von ausfüllbaren Formul
So, neues Problem. Ich hab jetzt dann doch nochmal meine Tabelle der besseren Erweiterbarkeit aufgespalten. Im Formular hab ich jetzt jeweils Unterformulare angelegt, damit ich auf die Tabellen Zugriff habe. Doch wenn ich das Formular öffne, sind die Felder in den Unterformularen gesperrt.
Eine platzsparenderere Version als Checkboxes im Formular gibt es nicht, oder?
Eine platzsparenderere Version als Checkboxes im Formular gibt es nicht, oder?
- Dateianhänge
-
- Statistik_neu.zip
- (30.79 KiB) 269-mal heruntergeladen
Re: Leichtes erstellen und speichern von ausfüllbaren Formul
Hi Sephan
Es geht doch um Anruferprotokolle. Alle eingegebenen Daten eines Anrufes gehören zusammen. Das siehst Du schon an deinen Beziehungen, sind alle 1:1.
Das Trennen verkompliziert die Sache unnötigerweise.
Du musst die Makros umbauen und drei "Speichermöglichkeiten" koordinieren.
Ich empfehle Dir den Rückbau auf eine Tabelle. Siehe SQL-Befehl unten.
Mehrere Tabellen benutzt man nach meiner Kenntnis dann, wenn man 1:n oder gar n:m Beziehungen hat.
Beispiel: Du möchtest die Anrufprotokolle den Mitarbeitern zuordnen.
1 Mitarbeiter, n Protokolle.
Dann hättest Du eine Tabelle "Mitarbeiter" im Hauptformular, die "Protokolle" im Unterformular, die ID des Mitarbeiters würde in eine Frendschlüsselspalte der Tabelle "Protokolle" geschrieben.
Wenn es Dir darum geht, die "große Tabelle" zu erweitern, Spalten kannst Du genug einfügen.
Und wenn Du das per SQL machst, kannst Du sogar bestimmen wohin eine neue Spalte kommen soll.
Beispiel Einfügen einer Boolean Spalte "Neue Spalte" vor der Spalte "Quatschen"
Gib unter Extras/SQL diesen Befehl ein:
Jetzt Tabellen-> Ansicht, Tabellen aktualisieren, dannach kannst Du die neue Spalte in deiner Tabelle finden
Beispiel Löschen der Spalte "Neue Spalte"
Mit SQL... kannst Du die Haupttabelle mit einem Kommando erzeugen, probiere es an einer Kopie aus, indem du erst alle Tabellen löschst und dann diesen Befehl ausführst:
Jetzt nur noch die Kontrollfelder wieder ins MainForm schieben und die Unterformulare löschen.
Gruß R
und dazu auch noch hausgemacht. Es mag mich ein Datenbankprofi korrigieren, aber was du gemacht hast, bringt aus meiner Sicht nur Nachteile.Sephan hat geschrieben:So, neues Problem
Es geht doch um Anruferprotokolle. Alle eingegebenen Daten eines Anrufes gehören zusammen. Das siehst Du schon an deinen Beziehungen, sind alle 1:1.
Das Trennen verkompliziert die Sache unnötigerweise.
Du musst die Makros umbauen und drei "Speichermöglichkeiten" koordinieren.
Ich empfehle Dir den Rückbau auf eine Tabelle. Siehe SQL-Befehl unten.
Mehrere Tabellen benutzt man nach meiner Kenntnis dann, wenn man 1:n oder gar n:m Beziehungen hat.
Beispiel: Du möchtest die Anrufprotokolle den Mitarbeitern zuordnen.
1 Mitarbeiter, n Protokolle.
Dann hättest Du eine Tabelle "Mitarbeiter" im Hauptformular, die "Protokolle" im Unterformular, die ID des Mitarbeiters würde in eine Frendschlüsselspalte der Tabelle "Protokolle" geschrieben.
Wenn es Dir darum geht, die "große Tabelle" zu erweitern, Spalten kannst Du genug einfügen.
Und wenn Du das per SQL machst, kannst Du sogar bestimmen wohin eine neue Spalte kommen soll.
Beispiel Einfügen einer Boolean Spalte "Neue Spalte" vor der Spalte "Quatschen"
Gib unter Extras/SQL diesen Befehl ein:
Code: Alles auswählen
Alter Table "Haupttabelle" add column "Neue Spalte" boolean default false before "Quatschen"
Beispiel Löschen der Spalte "Neue Spalte"
Code: Alles auswählen
Alter Table "Haupttabelle" drop column "Neue Spalte"
Code: Alles auswählen
CREATE CACHED TABLE "Haupttabelle"
("ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Datum" DATE NOT NULL,
"Wochentag" DATE NOT NULL,
"Uhrzeit-Anfang" TIME NOT NULL,
"Uhrzeit-Ende" TIME NOT NULL,
"Telefonist-Geschlecht" VARCHAR(1) NOT NULL,
"Anrufer-Geschlecht" VARCHAR(1) NOT NULL,
"Aufleger" BOOLEAN,
"Daueranrufer" BOOLEAN,
"Thema-sonstiges" VARCHAR(100),
"Weitverwiesen-sonstiges" VARCHAR(100),
"Quatschen" BOOLEAN,
"Partnerschaft" BOOLEAN,
"Freundschaft" BOOLEAN,
"Sexualität" BOOLEAN,
"Einsamkeit" BOOLEAN,
"Sucht" BOOLEAN,
"Familie" BOOLEAN,
"Geld" BOOLEAN,
"Studium" BOOLEAN,
"Selbstzweifel" BOOLEAN,
"Gesundheit" BOOLEAN,
"Stress" BOOLEAN,
"psycho-soziale Beratungsstelle des Studentenwerks" BOOLEAN,
"Frauenhorizonte" BOOLEAN,
"Wildwasser" BOOLEAN,
"Studienberatung" BOOLEAN,
"AK Leben/U25" BOOLEAN,
"allgem. Telefonseelsorge" BOOLEAN,
"Ambulanz der Psychiatrie" BOOLEAN,
"pro familia" BOOLEAN,
"Nightline Zürich" BOOLEAN,
"andere NLs" BOOLEAN)
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Leichtes erstellen und speichern von ausfüllbaren Formul
Ah ok, das mit 1:1 hatte ich irgendwie auch so noch im Hinterkopf und deine Argumentation und Beispiele finde ich schlüssig. Trotzdem wurden auch 1:1 Beispiele im Basehandbuch gebracht. Den einzigen Grund den ich mir vorstellen kann ist, dass es ja auch 1:0 sein kann. Das kommt bei mir auch vor. Also wenn der Anrufer gleich wieder aufgelegt hat, gibt es keine Themen und eher selten wird an eine andere Organisation weiterverwiesen. Würde sicher ganz arg viel Speicherplatz sparen, den ich ja durch die Spalte Wochentag verbrauche 
Aber kannst mir noch sagen, warum meine Unterformulare deaktiviert waren. Würde mich dann doch nochmal interessieren.

Aber kannst mir noch sagen, warum meine Unterformulare deaktiviert waren. Würde mich dann doch nochmal interessieren.
Re: Leichtes erstellen und speichern von ausfüllbaren Formul
So wie du das Formular und die Unterformulare aufgebaut hast, geht es nicht.
Öffne mal die Haupttabelle und gib einen Datensatz von Hand ein, dann siehst Du, das die ID (Autovalue) erst beim Speichern gesetzt wird. Erst jetzt könntest Du in deine Unterformulare, die über genau diese ID verknüpft sind, Daten eingeben. Da das Hauptformular aber den Datensatz mit dem Speichern, wegen der Einstellung "Nur Daten hinzufügen = Ja", nicht mehr anzeigt, ist auch keine ID als Grundlage für den Eintrag im Subformular vorhanden. Stelle das Hauptformular einmal auf "Nur Daten hinzufügen = Nein" um. Jetzt ist die ID da, aber die Unterformulare funktionieren noch immer nicht.
Warum? Weil Du die ID der Unterformulare als Auto-ID definiert hast, die Datenbank will also eine fortlaufende Nummer eintragen, du hast aber definiert, das die Zahl, die eingetragen werden soll, die ID aus dem Hauptformular ist. Also muss die Spalte ID in den Unterformularen Autowert = Nein bekommen.
Dann klappt es.
R
Öffne mal die Haupttabelle und gib einen Datensatz von Hand ein, dann siehst Du, das die ID (Autovalue) erst beim Speichern gesetzt wird. Erst jetzt könntest Du in deine Unterformulare, die über genau diese ID verknüpft sind, Daten eingeben. Da das Hauptformular aber den Datensatz mit dem Speichern, wegen der Einstellung "Nur Daten hinzufügen = Ja", nicht mehr anzeigt, ist auch keine ID als Grundlage für den Eintrag im Subformular vorhanden. Stelle das Hauptformular einmal auf "Nur Daten hinzufügen = Nein" um. Jetzt ist die ID da, aber die Unterformulare funktionieren noch immer nicht.
Warum? Weil Du die ID der Unterformulare als Auto-ID definiert hast, die Datenbank will also eine fortlaufende Nummer eintragen, du hast aber definiert, das die Zahl, die eingetragen werden soll, die ID aus dem Hauptformular ist. Also muss die Spalte ID in den Unterformularen Autowert = Nein bekommen.
Dann klappt es.
R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Leichtes erstellen und speichern von ausfüllbaren Formul
Ah, das mit dem Auto Wert wollte ich eh schon mal ändern, gab aber Beschwerden. Jetzt hab ich auch rausgefunden warum. Weil ich die ID verknüpft hatte.
Ich habe jetzt also die ID Felder der Untertabellen auf Auto-Wert=Nein gestellt und und das Hauptformular auf "Nur Daten hinzufügen = Nein". Die Unterformulare sind aber noch immer gesperrt.
Ich habe jetzt also die ID Felder der Untertabellen auf Auto-Wert=Nein gestellt und und das Hauptformular auf "Nur Daten hinzufügen = Nein". Die Unterformulare sind aber noch immer gesperrt.
- Dateianhänge
-
- Statistik_neu.zip
- (31.15 KiB) 268-mal heruntergeladen
Re: Leichtes erstellen und speichern von ausfüllbaren Formul
Die Beziehungen habe ich einmal gelöscht, gespeichert und wieder neu gemacht.
Ausserdem eine Navigationleiste, damit du auf einen neuen Datensatz springen kannst.
Hier siehst Du die Nachteile deiner Teilungsidee.
Die ID fürs Unterformular wird erst dann definiert, wenn Du das Haupformular speicherst. Das geht aber erst nachdem im Feld Uhrzeit-Ende ein Wert gespeichert wurde, weil "Eingabe erforderlich".
Also können die Unterformulare erst dann beschrieben werden, wenn aufgelegt worden ist. So willst Du das doch nicht, oder?
R
Ausserdem eine Navigationleiste, damit du auf einen neuen Datensatz springen kannst.
Hier siehst Du die Nachteile deiner Teilungsidee.
Die ID fürs Unterformular wird erst dann definiert, wenn Du das Haupformular speicherst. Das geht aber erst nachdem im Feld Uhrzeit-Ende ein Wert gespeichert wurde, weil "Eingabe erforderlich".
Also können die Unterformulare erst dann beschrieben werden, wenn aufgelegt worden ist. So willst Du das doch nicht, oder?
R
- Dateianhänge
-
- Statistik_neu2.zip
- (31.09 KiB) 245-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Leichtes erstellen und speichern von ausfüllbaren Formul
Interessant, macht Sinn. Und ich dachte noch meine Idee das mit der ID so zu regeln wäre cool 
Hm, jetzt hab ichs, wie ich es ursprünglich mal geplant hatte, mit einem extra ID Feld für die beiden Untertabellen in der Haupttabelle versucht, aber auch das hat nichts gebracht :/

Hm, jetzt hab ichs, wie ich es ursprünglich mal geplant hatte, mit einem extra ID Feld für die beiden Untertabellen in der Haupttabelle versucht, aber auch das hat nichts gebracht :/
- Dateianhänge
-
- Statistik_neu (2).zip
- (31.56 KiB) 297-mal heruntergeladen
Re: Leichtes erstellen und speichern von ausfüllbaren Formul
Tja, ist aber extrem uncool!Sephan hat geschrieben: Und ich dachte noch meine Idee das mit der ID so zu regeln wäre cool
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Leichtes erstellen und speichern von ausfüllbaren Formul
Ja, hab ich gemerkt 
Aber warum gehts jetzt noch nicht? Hab eben mal noch im Formular in den Eigenschaften des Unterformulars die richtigen ID Felder verknüpft, aber auch das hat nichts gebracht.

Aber warum gehts jetzt noch nicht? Hab eben mal noch im Formular in den Eigenschaften des Unterformulars die richtigen ID Felder verknüpft, aber auch das hat nichts gebracht.
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.