Textfeld durch Makro gesetzt - nun speichern?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Petra
**
Beiträge: 24
Registriert: So, 26.06.2011 19:32

Textfeld durch Makro gesetzt - nun speichern?

Beitrag von Petra »

Hallo zusammen,

ich habe ein kleines Problem, das für Euch Experten bestimmt lächerlich ist. Brauche mal wieder einen Tipp.

Folgende Situation:

Habe eine Tabelle in einer ODB. Dazu ein Formular mit einzelnen Textfeldern, alle bis auf eines sind bearbeitbar. Das letzte Feld wird über einen Button mit Makro gefüllt, und zwar so:

Code: Alles auswählen

oForm = ThisComponent.Drawpage.Forms(0)
oField = oForm.getByName("FeldX")
oField.Text = sInhalt 'in sInhalt steht ein vorher berechneter String
Die Navigation des Formulars "merkt" danach nicht, dass etwas geändert wurde, d.h. der "Speichern"-Button ist nicht aktiv.
Ich hatte zunächst vermutet, dass es daran liegen könnte, dass das FeldX nicht bearbeitbar ist. Habe es also mit einem bearbeitbaren Feld getestet. Wurde nur richtig gespeichert, wenn ich mit dem Curser hineingegangen und selbt etwas hineingeschireben habe.

Wie kann ich dafür sorgen, dass der Inhalt eines nur über einen Button mit Makro gefüllten Feldes korrekt in der Datenbank-Tabelle ankommt?

Ich hoffe, ich habe mich verständlich ausgedrückt und danke schon im Voraus für Hilfe.
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Textfeld durch Makro gesetzt - nun speichern?

Beitrag von turtle47 »

Hallo Petra,

versuche mal folgendes:

Code: Alles auswählen

oForm = ThisComponent.Drawpage.Forms(0)
oField = oForm.getByName("FeldX")
oField.Text = sInhalt 'in sInhalt steht ein vorher berechneter String
oField.Commit(true)
Gruß
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Petra
**
Beiträge: 24
Registriert: So, 26.06.2011 19:32

Re: Textfeld durch Makro gesetzt - nun speichern?

Beitrag von Petra »

Vielen Dank - das funktioniert.
Antworten