🙏 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. 🤗
Ändern von Daten in einem Formular nicht möglich
Ändern von Daten in einem Formular nicht möglich
Moin zusammen,
wer kann mir hier helfen...
Ich habe in einer Datenbank (ODBC auf MS SQL DB) aus einer vorhandenen Abfrage ein Formular über den Assistenten entwickelt, um darin nun entsprechende Daten zu ändern.
Die Daten werden im Formular alle angezeigt, allerdings ist eine Änderung der vorhandenen Daten nicht möglich.
Bei der Erstellung des Formulares habe ich ausgewählt, dass das Formular existierende Daten anzeigen soll und die Optionen für das "nicht ändern / hinzufügen" der Daten nicht ausgewählt.
Freue mich über jede Antwort. Vielen Dank im Voraus.
wer kann mir hier helfen...
Ich habe in einer Datenbank (ODBC auf MS SQL DB) aus einer vorhandenen Abfrage ein Formular über den Assistenten entwickelt, um darin nun entsprechende Daten zu ändern.
Die Daten werden im Formular alle angezeigt, allerdings ist eine Änderung der vorhandenen Daten nicht möglich.
Bei der Erstellung des Formulares habe ich ausgewählt, dass das Formular existierende Daten anzeigen soll und die Optionen für das "nicht ändern / hinzufügen" der Daten nicht ausgewählt.
Freue mich über jede Antwort. Vielen Dank im Voraus.
Re: Ändern von Daten in einem Formular nicht möglich
Hallo smokie,
Du kannst grundsätzlich im Formular nur dann Daten ändern, wenn das bereits in der zugrundeliegenden Abfrage bzw. Tabelle möglich ist. Standardeinstellung bei Base ist da, dass die Primärschlüssel der betroffenen Tabellen in der Abfrage vorkommen müssen.
Gruß
Robert
Du kannst grundsätzlich im Formular nur dann Daten ändern, wenn das bereits in der zugrundeliegenden Abfrage bzw. Tabelle möglich ist. Standardeinstellung bei Base ist da, dass die Primärschlüssel der betroffenen Tabellen in der Abfrage vorkommen müssen.
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: Ändern von Daten in einem Formular nicht möglich
Hiho, Ich häng mich hier mal dran:RobertG hat geschrieben: Du kannst grundsätzlich im Formular nur dann Daten ändern, wenn das bereits in der zugrundeliegenden Abfrage bzw. Tabelle möglich ist. Standardeinstellung bei Base ist da, dass die Primärschlüssel der betroffenen Tabellen in der Abfrage vorkommen müssen.
Ich hab eine Datenbank von der internen Datenbank in Base auf mySQL gewechselt - Frontend soll erstmal base bleiben und alle Formulare und so weiter funktionieren mittlerweile auch unter mysql...
Leider geht die dateneingabe bei einem Formular nicht mehr. (ist das einzigste das auf einer Abfrage basiert, alle primärschlüssel sind drin, ging mit der internen Datenbank).
Gibts da ne Möglichkeit, das das auch mit mysql funzt?
mfG
MartinS
Re: Ändern von Daten in einem Formular nicht möglich
es gilt das Selbe wie für smokie:
Abfrage öffnen und nachsehen ob Du da Daten ändern kannst. - Sollte das nicht möglich sein, musst Du die Abfrage umstricken.
Abfrage öffnen und nachsehen ob Du da Daten ändern kannst. - Sollte das nicht möglich sein, musst Du die Abfrage umstricken.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Ändern von Daten in einem Formular nicht möglich
Schon klar, das das Formular nicht funzt wenn schon bei der Abfrage keine Eingabe möglich ist.
Dateneingabebei Abfrage funzte aber mit der integrierten HSQLDB, jetzt nach der umstellung auf mySQL leider nicht mehr
Jetzt die frage, liegt das an MySQL und da muss das anderster gemacht werden odre liegt das an base und ich muss den fehler dort suchen..
mfG
MartinS
Dateneingabebei Abfrage funzte aber mit der integrierten HSQLDB, jetzt nach der umstellung auf mySQL leider nicht mehr

mfG
MartinS
Re: Ändern von Daten in einem Formular nicht möglich
Syntax MySQL <> Syntax HSQL-DB! Daher: eine Abfrage die in der internen HSQL-DB eine Eingabe erlaubt tut dies evtl. nicht wenn das Backend MySQL heisst! Das hat mit dem Treiber zu tun mit dem Du die MySQL ansteuerst - wenn der eine gewisse Syntax nicht zwischen Base und MySQL vermitteln kann, dann ...
Falls Dir der Button "SQL-direkt ausführen" schon mal untergekommen ist: der tut genau das - eine per (LO-Base-Code & Treiber-Code) nicht vermittelbare SQL-Anweisung wird im "Klartext" an die MySQL geschickt, das Ergebnis ist dann ein Resultset (oder ein Error
) aber NIE editierbar!
Falls Dir der Button "SQL-direkt ausführen" schon mal untergekommen ist: der tut genau das - eine per (LO-Base-Code & Treiber-Code) nicht vermittelbare SQL-Anweisung wird im "Klartext" an die MySQL geschickt, das Ergebnis ist dann ein Resultset (oder ein Error

g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Ändern von Daten in einem Formular nicht möglich
Ich habe das gerade einmal mit MySQL und dem direkten Treiber probiert. Da scheint es eher ein Grundproblem im Treiber zu geben. Scheint mir ganz so, als wären externe Datenbanken in der beschriebenen Weise nicht bearbeitbar. Da muss dann die Abfrage entsprechend anders konstruiert werden.
Ich mache das einmal an einem Beispiel deutlich:
Funktioniert nicht. Es sind beide Primärschlüssel drin. Anscheinend wird ausgewertet, ob m,ehr als eine Tabelle abgefragt wird (FROM ...)
Funktioniert. Die Korrelierende Unterabfrage wird nicht als Ausschlusskriterium interpretiert. Vom Prinzip her leistet sie genau das Gleiche. Allerdings muss beherzigt werden, dass der Inhalt aus der Tabelle "Klasse" bekannt ist - hier können keine Neueingaben gemacht werden. Die Eingabe eines Wertes für die "Klasse_ID" funktioniert aber, wenn eben die Klasse vorhanden ist.
Gruß
Robert
Ich mache das einmal an einem Beispiel deutlich:
Code: Alles auswählen
SELECT "Person"."ID", "Person"."Name", "Person"."Klasse_ID", "Klasse"."ID", "Klasse"."Klasse" FROM "test"."Person" AS "Person", "test"."Klasse" AS "Klasse" WHERE "Person"."Klasse_ID" = "Klasse"."ID"
Code: Alles auswählen
SELECT "Person"."ID", "Person"."Name" AS "PersonID", "Person"."Klasse_ID", (SELECT "Klasse"."Klasse" FROM "test"."Klasse" AS "Klasse" WHERE "Klasse"."ID" = "Person"."Klasse_ID") AS "Klasse" FROM "test"."Person" AS "Person"
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: Ändern von Daten in einem Formular nicht möglich
hiho robert,
ok, ich versuch das mal entsprechend nachzuvollziehen und umzustricken ...
testdatenbank test.odb mit der internen Datenbank:
2 Tabellen "Person" und "Klasse" mit den entsprechenden Feldern.
Dein erster code (alles mit "test" rausgelöscht) funzt.
und liefert als Abfrage richtiges ergebniss...
Dein 2ter code
funzt so, wenn ich ihn direkt als SQL-befehl eintippe (Meldung: 1: Befehl erfolgreich ausgeführt.)
Als Abfrage lässt er aber Base direkt abstürzen (Version 3.6.0.2 (Build ID: 360m1(Build:102)) unter Kubuntu)
Muss ich wohl noch ein bisserl nachschauen was da passiert..
MartinS
ok, ich versuch das mal entsprechend nachzuvollziehen und umzustricken ...
testdatenbank test.odb mit der internen Datenbank:
2 Tabellen "Person" und "Klasse" mit den entsprechenden Feldern.
Dein erster code (alles mit "test" rausgelöscht) funzt.
Code: Alles auswählen
SELECT "Person"."ID", "Person"."Name", "Person"."Klasse_ID", "Klasse"."ID", "Klasse"."Klasse" FROM "Person" AS "Person", "Klasse" AS "Klasse" WHERE "Person"."Klasse_ID" = "Klasse"."ID"
Dein 2ter code
Code: Alles auswählen
SELECT "Person"."ID", "Person"."Name" AS "PersonID", "Person"."Klasse_ID", (SELECT "Klasse"."Klasse" FROM "Klasse" AS "Klasse" WHERE "Klasse"."ID" = "Person"."Klasse_ID") AS "Klasse" FROM "Person" AS "Person"
Als Abfrage lässt er aber Base direkt abstürzen (Version 3.6.0.2 (Build ID: 360m1(Build:102)) unter Kubuntu)

Muss ich wohl noch ein bisserl nachschauen was da passiert..
MartinS
Re: Ändern von Daten in einem Formular nicht möglich
Hallo Martin,
ich habe das hier lediglich mit LO 3.3.4 und dem direkten Treiber getestet, also weder JDBC noch ODBC. Mein System: OpenSuSE 11.4. Das Ganze lief dann nicht im direkten SQL-Modus sondern so als Abfrage durch, in die ich eben auch Eingaben machen konnte.
Gruß
Robert
ich habe das hier lediglich mit LO 3.3.4 und dem direkten Treiber getestet, also weder JDBC noch ODBC. Mein System: OpenSuSE 11.4. Das Ganze lief dann nicht im direkten SQL-Modus sondern so als Abfrage durch, in die ich eben auch Eingaben machen konnte.
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: Ändern von Daten in einem Formular nicht möglich
Ich habe weder ODBC noch "MS SQL DB", aber wenn Du das Kommando direkt ausführst, dann solltest Du keinen Absturz bekommen, sondern einen Error - aus dem ist auch das Statement ersichtlich welches den Error produziert hat. Dieses kann stark von dem was Du im Editor erfasst hast abweichen.MartinS hat geschrieben: Als Abfrage lässt er aber Base direkt abstürzen (Version 3.6.0.2 (Build ID: 360m1(Build:102)) unter Kubuntu)
Muss ich wohl noch ein bisserl nachschauen was da passiert..
Base versucht immer die Abfrage aufzulösen, allerdings gibt's das eine oder andere Problem beim auflösen der Alias. Versuche mal deine mehrfachen Alias zu verändern:
Code: Alles auswählen
SELECT
"P"."ID",
"P"."Name" AS "PersonID",
"P"."Klasse_ID",
(SELECT "K"."Klasse" FROM "Klasse" AS "K" WHERE "K"."ID" = "P"."Klasse_ID") AS "Klasse_SubStr"
FROM
"Person" AS "P";
Code: Alles auswählen
SELECT
"P"."ID" as "P_ID",
"P"."Name" AS "P_Name",
"P"."Klasse_ID" as "P_Klasse",
(SELECT "K"."Klasse" as "K_Klasse" FROM "Klasse" AS "K" WHERE "K"."ID" = "P"."Klasse_ID") AS "Klasse_SubStr"
# (SELECT "K"."Klasse" as "K_Klasse" FROM "Klasse" AS "K" WHERE "K"."ID" = "P"."P_Klasse") AS "Klasse_SubStr" <= OPTIONAL
FROM
"Person" AS "P";
Code: Alles auswählen
SELECT
"P"."ID",
"P"."Name" AS "PersonID",
"P"."Klasse_ID",
"Klasse_SubTab"."K_Klasse"
FROM
"Person" AS "P"
JOIN <===== oder LEFT JOIN, LEFT OUTER JOIN, RIGHT JOIN bzw. RIGHT OUTER JOIN
(SELECT "K"."ID","K"."Klasse" as "K_Klasse" FROM "Klasse" AS "K") AS "Klasse_SubTab"
ON
("P"."Klasse_ID"="Klasse_SubTab"."ID")
;
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
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.