🙏 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. 🤗
Formular lässt keine neuen Werte zu
-
- Beiträge: 3
- Registriert: Mo 15. Okt 2012, 20:52
Formular lässt keine neuen Werte zu
Hallo Leute,
meine Sammlung von Stadionheften wächst mir langsam über den Kopf. Deshalb möchte ich sie in einer Datenbank katalogisieren. Ich habe zwar keine Kenntnisse auf dem Gebiet der Datenbankerstellung, aber mir mit Hilfe des Handbuches und einigen Youtube-Videos ist es mir gelungen eine Datenbank zu erstellen. Dies hat ganz gut funktioniert. Damit ich die Daten eintragen kann, benötige ich jetzt ein Formular, in dem die Inhalte von verschiedenen Tabellen, die mit Fremdschüsseln verknüpft sind, erscheinen. Dazu habe ich eine Abfrage gemacht und diese dann bei der Erstellung des Formulars genutzt. Damit ich die Werte aus den anderen Tabellen auswählen kann, habe ich sie als Listenfeld dargestellt.
Das Problem ist, in dem fertigen Formular kann ich kein neuen Datensatz eintragen. Es werden Datensätze angezeigt, die ich vorher mit Hilfe der Fremdschlüssel in den anderen Tabellen eingetragen habe. Aber das genau ist ja umständlich, denn statt der ID will ich reale Werte eintragen. Der Button für neuen Datensatz ist grau und nicht zugänglichl.
Hat jemand von euch eine Idee was ich falsch mache? Auch wenn ich versuche mit weniger Tabellen das Problem zu lösen, der Schreibschutz bleibt. Die Formulare habe ich mit dem Assistenten, aber auch in der Entwurfsansicht gebastelt, es macht keinen Unterschied.
Mit freundlichen Grüßen
Stadtfeld1996
System: Win7, LO Version 3.6.1.2.
meine Sammlung von Stadionheften wächst mir langsam über den Kopf. Deshalb möchte ich sie in einer Datenbank katalogisieren. Ich habe zwar keine Kenntnisse auf dem Gebiet der Datenbankerstellung, aber mir mit Hilfe des Handbuches und einigen Youtube-Videos ist es mir gelungen eine Datenbank zu erstellen. Dies hat ganz gut funktioniert. Damit ich die Daten eintragen kann, benötige ich jetzt ein Formular, in dem die Inhalte von verschiedenen Tabellen, die mit Fremdschüsseln verknüpft sind, erscheinen. Dazu habe ich eine Abfrage gemacht und diese dann bei der Erstellung des Formulars genutzt. Damit ich die Werte aus den anderen Tabellen auswählen kann, habe ich sie als Listenfeld dargestellt.
Das Problem ist, in dem fertigen Formular kann ich kein neuen Datensatz eintragen. Es werden Datensätze angezeigt, die ich vorher mit Hilfe der Fremdschlüssel in den anderen Tabellen eingetragen habe. Aber das genau ist ja umständlich, denn statt der ID will ich reale Werte eintragen. Der Button für neuen Datensatz ist grau und nicht zugänglichl.
Hat jemand von euch eine Idee was ich falsch mache? Auch wenn ich versuche mit weniger Tabellen das Problem zu lösen, der Schreibschutz bleibt. Die Formulare habe ich mit dem Assistenten, aber auch in der Entwurfsansicht gebastelt, es macht keinen Unterschied.
Mit freundlichen Grüßen
Stadtfeld1996
System: Win7, LO Version 3.6.1.2.
Re: Formular lässt keine neuen Werte zu
Hallo stadtfeld1996,
es kann verschiedene Fehlerquellen für dein Problem geben.
Lade die Datenbank doch einfach hier hoch (ggf. zippen oder in .zip umbenennen), dann kann man dir helfen.
Gruß R
Edit:
Ich empfehle LO 3.6.2 upgrade, LO 3.6.1 hat Probleme mit Base
es kann verschiedene Fehlerquellen für dein Problem geben.
Lade die Datenbank doch einfach hier hoch (ggf. zippen oder in .zip umbenennen), dann kann man dir helfen.
Gruß R
Edit:
...stadtfeld1996 hat geschrieben:System: Win7, LO Version 3.6.1.2.
Ich empfehle LO 3.6.2 upgrade, LO 3.6.1 hat Probleme mit Base
Windows 11: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 3
- Registriert: Mo 15. Okt 2012, 20:52
Re: Formular lässt keine neuen Werte zu
Hallo,
vielen Dank für das Angebot. Bitte nicht so streng sein, die Datei ist noch im Aufbau. Ich hatte für meinen Kumpel der mir ursprünglich helfen wollte eine kurze Einführung geschrieben. Ich denke dies hilft beim Verständnis. Zumindestens das Problem der Beziehungen konnte ich lösen.
mfg
stadtfeld1996
Ausgang
Ich bin Sammler von Programmheften die zu den Fußballspielen meines Vereins erscheinen. Bisher habe ich die Sammlung (1965-heute) nur in Papierform verwaltet. Damit ich einen besseren Überblick bekomme, wollte ich jetzt die Sammlung über das Datenbankmodule Base aus LibreOffice(OpenOffice) verwalten. Dazu muss ich mir ein Datenbankmodell erstellen, in dem ich verschiedene Anforderung an die Datenbank in Tabellen und Beziehungen umsetze. Dies wäre im Normalfall mit youtube-Anleitungen schwierig, aber noch umsetzbar.
Problem
Bereits zu DDR-Zeiten, z. B. mit der Gründung der Clubs haben die Vereine ihren Namen gewechselt. Dies passiert auch nach der Wende mehrfach. Damit man bei der Sammlung immer den korrekten Vereinsnamen muss man einen Dreh finden. Bei einer mir bekannten typo3-Extension hat der Programmierer eine Tabelle mit den Vereinsnamen gemacht und eine verbundene Tabelle in der für das aktuelle Spieljahr der Namen angeben werden muss. Gerade an der Lösung dieses Problems scheitere ich.
Was brauche ich?
In der beiliegenden Folie habe ich einige Tabelle bereits mit Namen und möglichen Feldern skizziert. Diese müssen verbundenen sowie mit Formularen und Berichten nutzbar gemacht werden. Beispiele:
Eingabemaske
Liste der mir fehlenden Programmhefte
Saisonliste der erschienen Programmhefte
Liste laufenden Ebay-Auktionen
…
Wenn die Beziehungen der Tabellen errichtet sind kann ich vieles selber machen, aber gerade an diesem wichtigen Teil scheitere ich.
vielen Dank für das Angebot. Bitte nicht so streng sein, die Datei ist noch im Aufbau. Ich hatte für meinen Kumpel der mir ursprünglich helfen wollte eine kurze Einführung geschrieben. Ich denke dies hilft beim Verständnis. Zumindestens das Problem der Beziehungen konnte ich lösen.
mfg
stadtfeld1996
Ausgang
Ich bin Sammler von Programmheften die zu den Fußballspielen meines Vereins erscheinen. Bisher habe ich die Sammlung (1965-heute) nur in Papierform verwaltet. Damit ich einen besseren Überblick bekomme, wollte ich jetzt die Sammlung über das Datenbankmodule Base aus LibreOffice(OpenOffice) verwalten. Dazu muss ich mir ein Datenbankmodell erstellen, in dem ich verschiedene Anforderung an die Datenbank in Tabellen und Beziehungen umsetze. Dies wäre im Normalfall mit youtube-Anleitungen schwierig, aber noch umsetzbar.
Problem
Bereits zu DDR-Zeiten, z. B. mit der Gründung der Clubs haben die Vereine ihren Namen gewechselt. Dies passiert auch nach der Wende mehrfach. Damit man bei der Sammlung immer den korrekten Vereinsnamen muss man einen Dreh finden. Bei einer mir bekannten typo3-Extension hat der Programmierer eine Tabelle mit den Vereinsnamen gemacht und eine verbundene Tabelle in der für das aktuelle Spieljahr der Namen angeben werden muss. Gerade an der Lösung dieses Problems scheitere ich.
Was brauche ich?
In der beiliegenden Folie habe ich einige Tabelle bereits mit Namen und möglichen Feldern skizziert. Diese müssen verbundenen sowie mit Formularen und Berichten nutzbar gemacht werden. Beispiele:
Eingabemaske
Liste der mir fehlenden Programmhefte
Saisonliste der erschienen Programmhefte
Liste laufenden Ebay-Auktionen
…
Wenn die Beziehungen der Tabellen errichtet sind kann ich vieles selber machen, aber gerade an diesem wichtigen Teil scheitere ich.
- Dateianhänge
-
- Test.zip
- Entwurf
- (22.59 KiB) 265-mal heruntergeladen
-
- Beiträge: 6
- Registriert: Mi 3. Okt 2012, 14:45
Re: Formular lässt keine neuen Werte zu
Moin stadtfeld1996,
Deine Formulare basieren auf Abfragen. Ich glaube letztens irgendwo gelesen zu haben, dass Daten in Formularen die auf Abfragen basieren nicht bearbeitet werden können.
Ich habe mal eines der Formulare basierend auf den Tabellen erstellt. Wie Du da aber über eine Tabelle als Zwischenschritt auf eine dritte zugreifen willst, erschließt sich mir in der kürze der Zeit nicht (Spiel greift über Programm auf den Herausgeber zu) ... hab ich ohne Abrage nicht hinbekommen. Die Listenfelder basieren auf Abfragen und speichern Ihre Values direkt in der Tabelle, das läuft.
vg prososenbier
P.S.: Die Vereinsnamen kommen mir recht bekannt vor. Alles früher mal Gegner gewesen und alle geschlagen
Deine Formulare basieren auf Abfragen. Ich glaube letztens irgendwo gelesen zu haben, dass Daten in Formularen die auf Abfragen basieren nicht bearbeitet werden können.
Ich habe mal eines der Formulare basierend auf den Tabellen erstellt. Wie Du da aber über eine Tabelle als Zwischenschritt auf eine dritte zugreifen willst, erschließt sich mir in der kürze der Zeit nicht (Spiel greift über Programm auf den Herausgeber zu) ... hab ich ohne Abrage nicht hinbekommen. Die Listenfelder basieren auf Abfragen und speichern Ihre Values direkt in der Tabelle, das läuft.
vg prososenbier
P.S.: Die Vereinsnamen kommen mir recht bekannt vor. Alles früher mal Gegner gewesen und alle geschlagen

- Dateianhänge
-
- Test_neu.zip
- (28.87 KiB) 280-mal heruntergeladen
Re: Formular lässt keine neuen Werte zu
Hallo Stadtfeld1996,
beide Formulare haben Fehler:
Das Formular Dateieingabe möchte aus der Tabelle "Spiel" den "Herausgeber" laden. Das schlägt fehl, weil es in der Tabelle "Spiel" kein Feld "Herausgeber" gibt.
Das Formular "Vereinsname" hat als Datenbasis die Abfrage "Vereinsname". Schon in die Abfrage kannst Du keine Daten eingeben, da die Abfrage auf drei verschiedenen Tabellen beruht und von allen diesen Tabellen die Primärschlüsselfelder nicht aufgeführt werden.
Es gibt zwei Möglichkeiten, In einem Formular Tabellen vernünftig miteinander zu verbinden:
Das Formular erhält untergeordnet ein Subformular. Dieses Subformular kann wieder ein Subformular enthalten usw. So etwas bietet sich z.B. an, wenn Du (um etwas beim Thema zu bleiben), einem Verein alle SportlerInnen zuordnen würdest. Der Verein würde im Hauptformular eingegeben, die dazugehörigen SportlerInnen im Subformular. in der Tabelle "Sportler" wäre dann der Fremdschlüssel des Vereins automatisch mit abgespeichert.
Das Formular erhält Listenfelder. Dies bietet sich z.B. an, wenn bestimmte Werte nicht so häufig ergänzt werden müssen. Die Listenfelder müssen schließlich irgendwie erst einmal bestückt werden - es sei denn, Du arbeitest mit Nebenformularen und Aktualisieren oder mittels Makros ... Ein Beispiel (wieder aus dem Themenbereich): Die Eingabe sämtlicher Spiele innerhalb der Bundesliga. Da gäbe es eine Tabelle Spiele, in der es die Felder "Heimverein" und "Auswärtsverein" sowie andere Felder (Datum, Ergebnis ...) gibt. Die Felder "Heimverein" und "Auswärtsverein" werden mit den Fremdschlüsseln aus der Tabelle "Verein" über Listenfelder versehen. Dazu müssen aus einer Tabelle die Bundesligavereine ausgelesen werden. Die gibst Du zum Saisonanfang einmal ein. Dann hast Du die Auswahl in den Listenfeldern und brauchst Dich ein Jahr Lang nicht mehr um den Inhalt kümmern.
Für Dein Verfahren noch ein Hinweis: Das alles wird im Base-Handbuch im Kapitel "Formulare" erklärt. Zusätzlich hilft auch noch das Kapitel "Abfragen". Das Handbuch findest Du hier: http://de.libreoffice.org/hilfe-kontakt/handbuecher/ - ein bisschen musst Du nach unten scrollen, um zu den Base-Handbüchern zu kommen.
Gruß
Robert
beide Formulare haben Fehler:
Das Formular Dateieingabe möchte aus der Tabelle "Spiel" den "Herausgeber" laden. Das schlägt fehl, weil es in der Tabelle "Spiel" kein Feld "Herausgeber" gibt.
Das Formular "Vereinsname" hat als Datenbasis die Abfrage "Vereinsname". Schon in die Abfrage kannst Du keine Daten eingeben, da die Abfrage auf drei verschiedenen Tabellen beruht und von allen diesen Tabellen die Primärschlüsselfelder nicht aufgeführt werden.
Es gibt zwei Möglichkeiten, In einem Formular Tabellen vernünftig miteinander zu verbinden:
Das Formular erhält untergeordnet ein Subformular. Dieses Subformular kann wieder ein Subformular enthalten usw. So etwas bietet sich z.B. an, wenn Du (um etwas beim Thema zu bleiben), einem Verein alle SportlerInnen zuordnen würdest. Der Verein würde im Hauptformular eingegeben, die dazugehörigen SportlerInnen im Subformular. in der Tabelle "Sportler" wäre dann der Fremdschlüssel des Vereins automatisch mit abgespeichert.
Das Formular erhält Listenfelder. Dies bietet sich z.B. an, wenn bestimmte Werte nicht so häufig ergänzt werden müssen. Die Listenfelder müssen schließlich irgendwie erst einmal bestückt werden - es sei denn, Du arbeitest mit Nebenformularen und Aktualisieren oder mittels Makros ... Ein Beispiel (wieder aus dem Themenbereich): Die Eingabe sämtlicher Spiele innerhalb der Bundesliga. Da gäbe es eine Tabelle Spiele, in der es die Felder "Heimverein" und "Auswärtsverein" sowie andere Felder (Datum, Ergebnis ...) gibt. Die Felder "Heimverein" und "Auswärtsverein" werden mit den Fremdschlüsseln aus der Tabelle "Verein" über Listenfelder versehen. Dazu müssen aus einer Tabelle die Bundesligavereine ausgelesen werden. Die gibst Du zum Saisonanfang einmal ein. Dann hast Du die Auswahl in den Listenfeldern und brauchst Dich ein Jahr Lang nicht mehr um den Inhalt kümmern.
Für Dein Verfahren noch ein Hinweis: Das alles wird im Base-Handbuch im Kapitel "Formulare" erklärt. Zusätzlich hilft auch noch das Kapitel "Abfragen". Das Handbuch findest Du hier: http://de.libreoffice.org/hilfe-kontakt/handbuecher/ - ein bisschen musst Du nach unten scrollen, um zu den Base-Handbüchern zu kommen.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Formular lässt keine neuen Werte zu
Jupp,
und zur Verwendung von Listenfeldern habe ich versucht dein Hauptformular zur Eingabe von Daten aus deinen Tabellen neu zu gestalten.
Grundsätzlich kann man, wie Robert schon geschrieben hat, mit einem Listenfeld auf die Daten einer zweiten Tabelle zugreifen, und die ID des jeweiligen Datensatzes so in die Haupttabelle schreiben.
Das Listenfeld hat nämlich folgende Eigenschaft: Es gibt einen Anzeigewert, den sieht man, und einen Datenwert, den schreibt man.
Beispiel: Saison
In deiner Tabelle Saisonname steht:
ID Saisonname
0 2012/13
1 2011/12
2 2010/11
3 2009/10
usw...
Du möchtest z.B. 2012/13 auswählen, in deine Tabelle Spiel soll dann in die Spalte fk_saisonname der Wert 0 eingetragen werden.
Dazu:
1.) Formular unter Verwendung des Assistenten erstellen ...
2.) Tabellen und Abfragen -> wähle Tabelle Spiel
3.) Schiebe alle Tabellenspalten mit dem Doppelpfeil nach rechts, dann weiter zu Punkt 5
4.) Anordnung der Kontrollfelder: Wähle den dritten Button (Tabellenkontrollfeld), dann weiter bis Punkt 8
5.) Klicke "Das Formular weiter verändern" an, dann Fertigstellen -> So kommst Du in den Formularentwurfsmodus
6.) Rechtsklick auf den Spaltenkopf "fk_saisonname"-> Ersetzen durch Listenfeld
7.) Rechtsklick auf den Spaltenkopf "fk_saisonname"-> Spalte
8.) Reiter Allgemein -> Schreibe in Titel Saison hinein.
9.) Wechsle auf den Reiter Daten-> Art des Listeninhalts SQL
10.) Klicke auf die drei kleinen schwarzen Punkte rechts von Listeninhalt
11.) Füge Tabelle Saisonname hinzu, schliesse das kleine Fenster
12.) Doppelklick auf Saisonname( Anzeigewert), dann Doppelklick auf ID(Datenwert)
13.) speichern, Fenster schliessen, Formular speichern, Entwurfsmodus ausschalten.
Jetzt kannst Du in der Spalte Saison eine Spielzeit auswählen, in die Tabelle Spiel wird aber die ID der ausgewählten Spielzeit geschrieben.
Wenn du den Entwurfsmodus wieder einschaltest, kannst Du alle weiteren benötigten Spalten sinngemäß in Listenfelder umwandeln.
Anbei ein Beispiel, siehe Formular Dateneingabe_Spiele
Viel Erfolg, Gruß R
und zur Verwendung von Listenfeldern habe ich versucht dein Hauptformular zur Eingabe von Daten aus deinen Tabellen neu zu gestalten.
Grundsätzlich kann man, wie Robert schon geschrieben hat, mit einem Listenfeld auf die Daten einer zweiten Tabelle zugreifen, und die ID des jeweiligen Datensatzes so in die Haupttabelle schreiben.
Das Listenfeld hat nämlich folgende Eigenschaft: Es gibt einen Anzeigewert, den sieht man, und einen Datenwert, den schreibt man.
Beispiel: Saison
In deiner Tabelle Saisonname steht:
ID Saisonname
0 2012/13
1 2011/12
2 2010/11
3 2009/10
usw...
Du möchtest z.B. 2012/13 auswählen, in deine Tabelle Spiel soll dann in die Spalte fk_saisonname der Wert 0 eingetragen werden.
Dazu:
1.) Formular unter Verwendung des Assistenten erstellen ...
2.) Tabellen und Abfragen -> wähle Tabelle Spiel
3.) Schiebe alle Tabellenspalten mit dem Doppelpfeil nach rechts, dann weiter zu Punkt 5
4.) Anordnung der Kontrollfelder: Wähle den dritten Button (Tabellenkontrollfeld), dann weiter bis Punkt 8
5.) Klicke "Das Formular weiter verändern" an, dann Fertigstellen -> So kommst Du in den Formularentwurfsmodus
6.) Rechtsklick auf den Spaltenkopf "fk_saisonname"-> Ersetzen durch Listenfeld
7.) Rechtsklick auf den Spaltenkopf "fk_saisonname"-> Spalte
8.) Reiter Allgemein -> Schreibe in Titel Saison hinein.
9.) Wechsle auf den Reiter Daten-> Art des Listeninhalts SQL
10.) Klicke auf die drei kleinen schwarzen Punkte rechts von Listeninhalt
11.) Füge Tabelle Saisonname hinzu, schliesse das kleine Fenster
12.) Doppelklick auf Saisonname( Anzeigewert), dann Doppelklick auf ID(Datenwert)
13.) speichern, Fenster schliessen, Formular speichern, Entwurfsmodus ausschalten.
Jetzt kannst Du in der Spalte Saison eine Spielzeit auswählen, in die Tabelle Spiel wird aber die ID der ausgewählten Spielzeit geschrieben.
Wenn du den Entwurfsmodus wieder einschaltest, kannst Du alle weiteren benötigten Spalten sinngemäß in Listenfelder umwandeln.
Anbei ein Beispiel, siehe Formular Dateneingabe_Spiele
Viel Erfolg, Gruß R
- Dateianhänge
-
- Programmhefte.zip
- entpacken
- (16.57 KiB) 259-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 3
- Registriert: Mo 15. Okt 2012, 20:52
Re: Formular lässt keine neuen Werte zu
Hallo F3K Total,
vielen Dank für die Weiterbildung und die schnelle Hilfe.Ich habe jetzt verstanden wie es funktioniert. Ich werde jetzt mir die anderen Formulare erstellen und weitere Daten einstellen. Wenn ich soweit bin würde ich die Datei wieder hochladen. Auch den Anderen vielen Dank für die Hinweise.
mfg
stadtfeld1996
vielen Dank für die Weiterbildung und die schnelle Hilfe.Ich habe jetzt verstanden wie es funktioniert. Ich werde jetzt mir die anderen Formulare erstellen und weitere Daten einstellen. Wenn ich soweit bin würde ich die Datei wieder hochladen. Auch den Anderen vielen Dank für die Hinweise.
mfg
stadtfeld1996
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.