Moin, moin,
ich möchte einige Felder eines Formulars per Makro aktualisieren - am liebsten so, dass der Anwender (ähnlich wie bei manuellen Veränderungen an den Daten) vorm Schließen des Formulars gefragt wird, ob er die Veränderungen speichern möchte (oder eben nicht).
Mit oFeld.text = strVariable
oder auch mit oSubForm.updateString(33,strVariable)
gelingt es mir, die Felder (bzw das Feld) zu füllen. Aber wenn ich dann das Formular schließe, ist die Änderung weg.
oSubForm.upDateRow() schreibt die Änderungen gleich hinein, also keine Chance auf Abbruch.
oForm.isModified= true führt dazu, dass ich beim Schließen zwar gefragt werde, ob ich speichern möchte, aber führt anschließend zur Fehlermeldung "Fehler beim Schreiben des aktuellen Datensatzes . Es wurden keine Werte verändert."
Hat jemand einen Tipp für mich?
Textfelder per Makro aktualisieren (Base)
Moderator: Moderatoren
Textfelder per Makro aktualisieren (Base)
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40
herzliche Grüße aus Deutschlands Norden
herzliche Grüße aus Deutschlands Norden
Re: Textfelder per Makro aktualisieren (Base)
Die entscheidenden Punkte lässt du bei deiner Problembeschreibung weg:
Welche Code-Variante wird an welches Ereignis gebunden?
Du erweckst jedenfalls den Eindruck, dass du für die verschiedenen Versuche mehrere Varianten (also unterschiedliche Makros, unterschiedliche Ereignisse) probiert hast. Dazu müsstest du mehr Informationen geben.
Das sinnvollste Verfahren ist IMHO das Eintragen des Wertes über oFeld.BoundField. Die Zuweisung an die Eigenschaft Text ist fast immer der falsche Weg, siehe das Handbuch 4.0 Seite 263:
Gruß Jürgen
Welche Code-Variante wird an welches Ereignis gebunden?
Du erweckst jedenfalls den Eindruck, dass du für die verschiedenen Versuche mehrere Varianten (also unterschiedliche Makros, unterschiedliche Ereignisse) probiert hast. Dazu müsstest du mehr Informationen geben.
Das sinnvollste Verfahren ist IMHO das Eintragen des Wertes über oFeld.BoundField. Die Zuweisung an die Eigenschaft Text ist fast immer der falsche Weg, siehe das Handbuch 4.0 Seite 263:
Je nachdem, wann du prüfen willst (Button, Formular schließen, Datensatzwechsel), musst du ein passendes Ereignis suchen. Ich würde selbst fragen (if isModified then msgBox) und je nach der Antwort die Speicherung mit updateRow bestätigen oder mit cancelRowUpdates verwerfen.Es ist deshalb sinnlos, die Eigenschaft Text des Kontrollfelds zu ändern.
Gruß Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Textfelder per Makro aktualisieren (Base)
Ich denke, das hilft mir weiter. Danke.
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40
herzliche Grüße aus Deutschlands Norden
herzliche Grüße aus Deutschlands Norden