Formulardaten speichern
Moderator: Moderatoren
Formulardaten speichern
Hallo zusammen,
bin gerade dabei mich in die Materie einer Datenbank einzuarbeiten. Nun habe ich nach Beispielsdatenbanken eine für mich gemacht. Das Problem das ich habe ist folgendes: Es läst sich nach Eingabe eines neuen Datensatzes in das Formular (Pflanzen), dieses nicht speichern. Irgendwo muss ein Fehler in der Datenbank sein, aber nur wo. Oder hab ich gar den Fehler nur im Kopf?
Wäre euch für eine Hilfe Dankbar
Phlox
bin gerade dabei mich in die Materie einer Datenbank einzuarbeiten. Nun habe ich nach Beispielsdatenbanken eine für mich gemacht. Das Problem das ich habe ist folgendes: Es läst sich nach Eingabe eines neuen Datensatzes in das Formular (Pflanzen), dieses nicht speichern. Irgendwo muss ein Fehler in der Datenbank sein, aber nur wo. Oder hab ich gar den Fehler nur im Kopf?
Wäre euch für eine Hilfe Dankbar
Phlox
Re: Formulardaten speichern
Hi,
die Pflanzentyp_ID hast Du in der Tabelle auf "Eingabe erforderlich" gestellt, d.h. im SQL not Null, nicht leer, oder: Ohne einen Pflanzentyp gewählt zu haben, kannst Du den Datensatz nicht speichern. Ich habe das zurückgesetzt. Jetzt kannst Du auch einen Datensatz speichern, dem noch kein Pflanzentyp zugeordnet worden ist.
Ich empfehle dir, wenn Du Freude an der DB haben möchtest, dringend, auf die Bilder, LONGVARBINARY-Spalten, zu verzichten und stattdessen eine Textspalte mit den grafischen Kontrollfeldern zu verknüpfen. Dann wird in der DB nur der Pfad zum Bild gespeichert, die Bilder bleiben ausserhalb.
Ansonsten ist die DB rappzapp im Eimer.
Ich habe auch das umgebaut.
Gruß R
die Pflanzentyp_ID hast Du in der Tabelle auf "Eingabe erforderlich" gestellt, d.h. im SQL not Null, nicht leer, oder: Ohne einen Pflanzentyp gewählt zu haben, kannst Du den Datensatz nicht speichern. Ich habe das zurückgesetzt. Jetzt kannst Du auch einen Datensatz speichern, dem noch kein Pflanzentyp zugeordnet worden ist.
Ich empfehle dir, wenn Du Freude an der DB haben möchtest, dringend, auf die Bilder, LONGVARBINARY-Spalten, zu verzichten und stattdessen eine Textspalte mit den grafischen Kontrollfeldern zu verknüpfen. Dann wird in der DB nur der Pfad zum Bild gespeichert, die Bilder bleiben ausserhalb.
Ansonsten ist die DB rappzapp im Eimer.
Ich habe auch das umgebaut.
Gruß R
- Dateianhänge
-
- Gartenpflanten - Kopie.odb
- (14.34 KiB) 94-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formulardaten speichern
Vielen vielen Dank
Hätte jetzt nicht weitergewusst woran es liegt. Das mit den Bildern ist ein sehr wertvoller Tipp für mich. Werd das mit den grafischen Kontrollfeldern in Textspalte zu verknüpfen auch selbst noch mal ausprobieren. Auf so etwas wäre ich wohl nie gekommen.
Viele Grüße
Phlox
Hätte jetzt nicht weitergewusst woran es liegt. Das mit den Bildern ist ein sehr wertvoller Tipp für mich. Werd das mit den grafischen Kontrollfeldern in Textspalte zu verknüpfen auch selbst noch mal ausprobieren. Auf so etwas wäre ich wohl nie gekommen.
Viele Grüße
Phlox
Re: Formulardaten speichern
Hallo zusammen,
hab mal wieder eine Frage die ich mir selbst nicht beantworten kann. Es geht um die Anzeige von gesuchten Datensätzen. Momentan habe ich ein Suchformular zur Eingabe des Suchwortes auf diesen im unteren Bereich eine Tabelle die gefundenen Datensätze auflistet, soweit funktioniert alles. Nun meine Frage: Gibt es eine Möglichkeit in den gefundenen Datensätzen zu blättern?
Ich stelle es mir es so vor, das ich auf eine Schaltfläche des Suchformulars drücke und anschließend erscheinen die gefundenen Datensätze in ihren Formularen angefangen vom ersten gefundenen. Anschließend kann ich zum zweiten gefundenen Datensatz blättern und so weiter.
Der Vorteil läge für mich darin das auch die Bilder sichtbar wären und die Texte die in den einzelnen Datensätzen gespeichert sind.
Hoffe ich habe mich nicht zu verzettelt ausgedrückt und ihr könnt mir helfen.
Viele Grüße
Phlox
hab mal wieder eine Frage die ich mir selbst nicht beantworten kann. Es geht um die Anzeige von gesuchten Datensätzen. Momentan habe ich ein Suchformular zur Eingabe des Suchwortes auf diesen im unteren Bereich eine Tabelle die gefundenen Datensätze auflistet, soweit funktioniert alles. Nun meine Frage: Gibt es eine Möglichkeit in den gefundenen Datensätzen zu blättern?
Ich stelle es mir es so vor, das ich auf eine Schaltfläche des Suchformulars drücke und anschließend erscheinen die gefundenen Datensätze in ihren Formularen angefangen vom ersten gefundenen. Anschließend kann ich zum zweiten gefundenen Datensatz blättern und so weiter.
Der Vorteil läge für mich darin das auch die Bilder sichtbar wären und die Texte die in den einzelnen Datensätzen gespeichert sind.
Hoffe ich habe mich nicht zu verzettelt ausgedrückt und ihr könnt mir helfen.
Viele Grüße
Phlox
Re: Formulardaten speichern
Hi,
klar geht das. Grundsätzlich haben Schaltflächen auf dem Reiter "Allgemein" eine Eigenschaft "Aktion", schau da mal rein.
Allerdings ist es schwer zu erläutern, ohne den genauen Aufbau des Formulares zu kennen.
Kannst Du die DB hochladen?
Gruß R
klar geht das. Grundsätzlich haben Schaltflächen auf dem Reiter "Allgemein" eine Eigenschaft "Aktion", schau da mal rein.
Allerdings ist es schwer zu erläutern, ohne den genauen Aufbau des Formulares zu kennen.
Kannst Du die DB hochladen?
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formulardaten speichern
Hallo Phlox,
Du kannst auch neben dem Tabellenkontrollfeld, das Dir im Moment die Datenübersicht anzeigt, andere Formularfelder im gleichen Formular (ist vielleicht ein Unterformular?) für den gerade aktuellen Inhalt anlegen. Hast Du dann z.B. einen Datensatz, zu dem ein Bild gehört, so klickst Du auf den Datensatz und das Bild wird im gleichen Formular angezeigt.
Durch das Tabellenkontrollfeld kannst Du ja mit den dazugehörigen Buttons manövrieren - oder einfach per Maus scrollen.
Gruß
Robert
Du kannst auch neben dem Tabellenkontrollfeld, das Dir im Moment die Datenübersicht anzeigt, andere Formularfelder im gleichen Formular (ist vielleicht ein Unterformular?) für den gerade aktuellen Inhalt anlegen. Hast Du dann z.B. einen Datensatz, zu dem ein Bild gehört, so klickst Du auf den Datensatz und das Bild wird im gleichen Formular angezeigt.
Durch das Tabellenkontrollfeld kannst Du ja mit den dazugehörigen Buttons manövrieren - oder einfach per Maus scrollen.
Gruß
Robert
Re: Formulardaten speichern
Hallo R und Robert,
das sind wirklich erfreuliche Nachrichten für mich. Soweit ich das nun verstanden habe wäre es sinnvoll ein weiteres Unterformular in das Suchformular einzubauen in dem dann die gefundenen Datensätze in Formularansicht (Pflanzenformular) dargestellt werden. Durch klicken auf einen gefundenen Datensatz, in der Tabellarischen Ergebnisliste ändert sich dann der Inhalt im darunterliegenden Pflanzenformular.
Hört sich sehr gut an, nur wie muss ich vorgehen um dieses Ergebnis zu erreichen?
Die Datenbank kann ich momentan nicht hochladen, da sie die zugelassene Größe überschreitet. Hab vergessen die Art der Bilderspeicherung zu ändern und in der Version wo ich die Bilderspeicherung geändert habe hab ich die Filter und Suchfunktionen nicht eingebaut. Hab von ein und der selben Datenbank immer mal wieder Kopien gemacht falls ich beim weiteren Aufbau dieser einen größeren Fehler mache den ich nicht Rückgängig machen kann und somit nicht alles verloren geht. Letztendlich hab ich leider momentan noch keine hochladbare DB.
Viele Grüße
Phlox
das sind wirklich erfreuliche Nachrichten für mich. Soweit ich das nun verstanden habe wäre es sinnvoll ein weiteres Unterformular in das Suchformular einzubauen in dem dann die gefundenen Datensätze in Formularansicht (Pflanzenformular) dargestellt werden. Durch klicken auf einen gefundenen Datensatz, in der Tabellarischen Ergebnisliste ändert sich dann der Inhalt im darunterliegenden Pflanzenformular.
Hört sich sehr gut an, nur wie muss ich vorgehen um dieses Ergebnis zu erreichen?
Die Datenbank kann ich momentan nicht hochladen, da sie die zugelassene Größe überschreitet. Hab vergessen die Art der Bilderspeicherung zu ändern und in der Version wo ich die Bilderspeicherung geändert habe hab ich die Filter und Suchfunktionen nicht eingebaut. Hab von ein und der selben Datenbank immer mal wieder Kopien gemacht falls ich beim weiteren Aufbau dieser einen größeren Fehler mache den ich nicht Rückgängig machen kann und somit nicht alles verloren geht. Letztendlich hab ich leider momentan noch keine hochladbare DB.
Viele Grüße
Phlox
Re: Formulardaten speichern
Hallo Phlox,
Wie gesagt, nur aus dem Kopf:
Wenn Du in Deinem Formular ein Filterformular und ein Unterformular hast, das die gefundenen Pflanzen in einem Tabellenkontrollfeld auflistet, dann kannst du auf genau dieses Unterformular, und kein weiteres, zusätzliche Kontrollfelder legen. Unter anderem auch ein grafisches Kontrollfeld zur Anzeige der Bilder.
Gruß R
PS: wenn Du die Bilder aus der DB löschst und dann per Extras/SQL ... den Befehl ausführst, AOO dann schließt, ist deine DB wieder klein, da komprimiert.
NEIN!Phlox hat geschrieben:... wäre es sinnvoll ein weiteres Unterformular in das Suchformular einzubauen in dem dann die gefundenen Datensätze in Formularansicht (Pflanzenformular) dargestellt werden.
Wie gesagt, nur aus dem Kopf:
Wenn Du in Deinem Formular ein Filterformular und ein Unterformular hast, das die gefundenen Pflanzen in einem Tabellenkontrollfeld auflistet, dann kannst du auf genau dieses Unterformular, und kein weiteres, zusätzliche Kontrollfelder legen. Unter anderem auch ein grafisches Kontrollfeld zur Anzeige der Bilder.
Gruß R
PS: wenn Du die Bilder aus der DB löschst und dann per Extras/SQL ... den Befehl
Code: Alles auswählen
CHECKPOINT DEFRAG
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formulardaten speichern
Hallo Phlox,
nein, Du brauchst kein weiteres Unterformular. Die entsprechenden Felder packst Du in das gleiche Unterformular wie das Tabellenkontrollfeld. Probiere das einfach einmal mit einem zusätzlichen Feld für Dein Bild aus. Du kannst dann das Bild zum aktuell markierten Datensatz sehen.
Gruß
Robert
nein, Du brauchst kein weiteres Unterformular. Die entsprechenden Felder packst Du in das gleiche Unterformular wie das Tabellenkontrollfeld. Probiere das einfach einmal mit einem zusätzlichen Feld für Dein Bild aus. Du kannst dann das Bild zum aktuell markierten Datensatz sehen.
Gruß
Robert
Re: Formulardaten speichern
Hallo zusammen,
das mit den Bild einfügen auf dem Suchformular hat glücklicher weise geklappt. Danke für die Nachrichten.
Bei der Bereinigung und weiteren Aufbau der Datenbank ist mir noch aufgefallen das ich noch mehrere Baustellen habe.
Zum einem hab ich anscheinen einen Fehler im Suchcode. Zum anderen möchte ich diesen um weitere zu durchsuchende Felder (Standort, Vorhanden) erweitern, weis aber nicht an welcher stelle ich was einbauen muss. Der momentane Suchcode lautet: SELECT * FROM "Pflanzen" WHERE LOWER ( "Botanischer Name" ) LIKE IFNULL( ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" ), LOWER ( "Botanischer Name" ) ) OR LOWER ( "Herkunft" ) LIKE ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" )
Bei der Ergebnisliste der Suche, ist mir auch aufgefallen das beim Pflanzentyp_ID und Vorhanden_ID nur Nummern sind und nicht die Wörter wie Staude, Gehölz, ja, nein usw. aus den entsprechenden Tabellen. Wenn ich die Abfrage bearbeite und anschließend die entsprechenden Tabellen hinzufüge und in die unteren Tabelle bei Feld Pflanzentyp hinzufüge erscheint die Meldung: Syntax error in SQL expression. Kann ich das dennoch irgendwie ändern?
Viele Grüße
Phlox
das mit den Bild einfügen auf dem Suchformular hat glücklicher weise geklappt. Danke für die Nachrichten.
Bei der Bereinigung und weiteren Aufbau der Datenbank ist mir noch aufgefallen das ich noch mehrere Baustellen habe.
Zum einem hab ich anscheinen einen Fehler im Suchcode. Zum anderen möchte ich diesen um weitere zu durchsuchende Felder (Standort, Vorhanden) erweitern, weis aber nicht an welcher stelle ich was einbauen muss. Der momentane Suchcode lautet: SELECT * FROM "Pflanzen" WHERE LOWER ( "Botanischer Name" ) LIKE IFNULL( ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" ), LOWER ( "Botanischer Name" ) ) OR LOWER ( "Herkunft" ) LIKE ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" )
Bei der Ergebnisliste der Suche, ist mir auch aufgefallen das beim Pflanzentyp_ID und Vorhanden_ID nur Nummern sind und nicht die Wörter wie Staude, Gehölz, ja, nein usw. aus den entsprechenden Tabellen. Wenn ich die Abfrage bearbeite und anschließend die entsprechenden Tabellen hinzufüge und in die unteren Tabelle bei Feld Pflanzentyp hinzufüge erscheint die Meldung: Syntax error in SQL expression. Kann ich das dennoch irgendwie ändern?
Viele Grüße
Phlox
Re: Formulardaten speichern
Hallo Phlox,
wenn Du weitere Tabellen zu deiner Suchtabelle hinzufügst, dann musst Du an jedem der bisherigen Felder auch den Tabellennamen dazuschreiben.
Aus Deiner Abfrage
Gruß
Robert
wenn Du weitere Tabellen zu deiner Suchtabelle hinzufügst, dann musst Du an jedem der bisherigen Felder auch den Tabellennamen dazuschreiben.
Aus Deiner Abfrage
wirdSELECT * FROM "Pflanzen" WHERE LOWER ( "Botanischer Name" ) LIKE IFNULL( ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" ), LOWER ( "Botanischer Name" ) ) OR LOWER ( "Herkunft" ) LIKE ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" )
- natürlich müssen jetzt die anderen Tabellen noch mit hinein.SELECT "Pflanzen".* FROM "Pflanzen" WHERE LOWER ( "Pflanzen"."Botanischer Name" ) LIKE IFNULL( ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" ), LOWER ( "Pflanzen"."Botanischer Name" ) ) OR LOWER ( "Pflanzen"."Herkunft" ) LIKE ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" )
Gruß
Robert
Re: Formulardaten speichern
Hallo,
wenn ich nun noch „Pflanzen“ und “Standort“ mit in die Suche aufnehmen möchte, aus der gleichen Tabelle wie Botanischer Name und Herkunft, wo und wie muss ich das in den SQL-Befehl mit aufnehmen? Komm irgendwie nicht dahinter.
Viele Grüße
Phlox
wenn ich nun noch „Pflanzen“ und “Standort“ mit in die Suche aufnehmen möchte, aus der gleichen Tabelle wie Botanischer Name und Herkunft, wo und wie muss ich das in den SQL-Befehl mit aufnehmen? Komm irgendwie nicht dahinter.

Viele Grüße
Phlox
Re: Formulardaten speichern
Hallo Phlox,
Bei mehreren tabellen müsstest Du natürlich wieder den Tabellennamen dazu schreiben.
Gruß
Robert
war Deine Ursprungsabfrage.SELECT * FROM "Pflanzen" WHERE LOWER ( "Botanischer Name" ) LIKE IFNULL( ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" ), LOWER ( "Botanischer Name" ) ) OR LOWER ( "Herkunft" ) LIKE ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" )
ist der Teil, der das Feld "Herkunft" auf den Inhalt aus "Suchbegriff" hin untersucht. Dieser Teil wird mit OR an die anderen Elemente angehängt.LOWER ( "Herkunft" ) LIKE ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" )
hängt also z.B. das Feld "Pflanzen" mit an.OR LOWER ( "Pflanzen" ) LIKE ( SELECT '%' || LOWER ( "Suchbegriff" ) || '%' FROM "Filter" )
Bei mehreren tabellen müsstest Du natürlich wieder den Tabellennamen dazu schreiben.
Gruß
Robert
Re: Formulardaten speichern
Danke Robert für die Erklärung.
Habe den Befehl immer falsch zusammengebaut, aber jetzt funktioniert es dank deiner Hilfestellung.
Bei der optimierung der Datenfilterung stellt sich auch schon das nächste Problem heraus. Nach Botanischen Namen und Herkunft gleichzeitig zu filtern geht. Aber in einer anderen Abfrage nach den Pflanzenty_ID und Vorhanden_ID zu filtern funktioniert nicht. Hab den Befehl so zusammengestellt:
SELECT "Pflanzen".* , IFNULL( "Pflanzen"."Pflanzentyp_ID", '' ) AS "T", IFNULL( "Pflanzen"."Vorhanden_ID", '' ) AS "K" FROM "Pflanzen" WHERE "T" = IFNULL( ( SELECT "Filter_1" FROM "Filter" ), "T" ) AND "K" = IFNULL( (SELECT "Filter_2" FROM "Filter" ), "K" )
Viele Grüße
Phlox
Habe den Befehl immer falsch zusammengebaut, aber jetzt funktioniert es dank deiner Hilfestellung.
Bei der optimierung der Datenfilterung stellt sich auch schon das nächste Problem heraus. Nach Botanischen Namen und Herkunft gleichzeitig zu filtern geht. Aber in einer anderen Abfrage nach den Pflanzenty_ID und Vorhanden_ID zu filtern funktioniert nicht. Hab den Befehl so zusammengestellt:
SELECT "Pflanzen".* , IFNULL( "Pflanzen"."Pflanzentyp_ID", '' ) AS "T", IFNULL( "Pflanzen"."Vorhanden_ID", '' ) AS "K" FROM "Pflanzen" WHERE "T" = IFNULL( ( SELECT "Filter_1" FROM "Filter" ), "T" ) AND "K" = IFNULL( (SELECT "Filter_2" FROM "Filter" ), "K" )
Viele Grüße
Phlox
Re: Formulardaten speichern
Hallo Phlox,
mit der ID klappt die Abfrage wohl deshalb nicht, weil es sich um ein INTEGER-Feld handelt. In ein Zahlenfeld kannst Du nicht über IFNULL nicht '' (also einen leeren Text) schreiben, sondern höchstens einen Zahlenwert. mit einem Zahlenwert stellst Du aber gleichzeitig eine falsche Verbindung her.
Gruß
Robert
mit der ID klappt die Abfrage wohl deshalb nicht, weil es sich um ein INTEGER-Feld handelt. In ein Zahlenfeld kannst Du nicht über IFNULL nicht '' (also einen leeren Text) schreiben, sondern höchstens einen Zahlenwert. mit einem Zahlenwert stellst Du aber gleichzeitig eine falsche Verbindung her.
Gruß
Robert