Kontrollfeld per Makro mehrmals auslen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

andreasb

Kontrollfeld per Makro mehrmals auslen

Beitrag von andreasb » Mo, 06.06.2016 09:38

Guten Tag,

ich habe in Calc ein Formular eingebunden, dass über eine odb-Datei an eine MySQL-Datenbank angeschlossen und versorgt wird.
Nun möchte ich ich ein Kontrollfeld per Makro auslesen und in eine Zelle innerhalb des Tabellenblattes schreiben. Dies funktioniert auch soweit:

Code: Alles auswählen

sub lesen
odoc=thisComponent
oSheet=odoc.sheets(1)
odraw1=oSheet.drawpage
oForm = odraw1.Forms.getByName("Filter") ' Hauptformular
oSubForm = oForm.getByName("Liste") ' SubForm in Hauptformular
oKontroll = oSubForm.getByName("txtBemerkung") 'Kontrollfeld

msgbox oKontroll.getString(1)
thisComponent.Sheets(2).getCellRangeByName("J2").string=oKontroll.getString
end sub
Beim mehrmaligem Ausführen es Makros verringert sich jedoch die String-Länge um die Zeichenanzahl der vorherigen Auswahl, so dass nur noch Bruchstücke des Strings ausgegben werden.

Beispiel:
Inhalt des Bermerkungfelds: Schriftverkehr
1. Makroausführung liefert: Schriftverkehr
neue Auswahl innerhalb des Formulars:
Inhalt des Bemerkugnsfeld: test
2. Makroausführung liefert: test
neue Auswahl innerhalb des Formulars:
Inhalt des Bemerkugnsfeld: Schriftverkehr
3. Makroausführung liefert: Schr

Dies geht soweit, dass wenn das Kontrollfeld "txtBemerkung" leer ist später nichts mehr ausgegeben wird. Kann man die Stringlänge fest defnieren, oder getString neuinitialisieren?