Hallo surferchen,
ich weiß zwar nicht, wozu Du so etwas fehlerfrei realisieren willst (jedes Mal, wenn das Feld auf "ja" gestellt wird, werden anderswo Vorzeichen umgedreht), aber hier ein paar Grundzugriffe:
Code: Alles auswählen
SUB Vorzeichenwechsel
REM Zuerst die Variablen deklarieren
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM oFeld1 AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("MainForm") ' geht davon aus, dass Dein Formular über den Namen im Formularnavigator angezeigt wird
oFeld = oForm.getByName("bool") ' Das Feld liegt in dem oben genannten Formular und hat den entsprechenden Namen im Formularnavigator
IF oFeld.getCurrentValue = "true" THEN
oFeld1 = oForm.getByName("ErsteszuaenderndesFeld") ' Feldbezeichnung: siehe oben
oFeld1.BoundField.updateDouble(oFeld1.getCurrentValue * -1)
END IF
END SUB
Das Ganze kannst Du noch verfeinern, wenn z.B. das Makro sowieso durch eine Änderung am boolschen Feld direkt ausgelöst werden soll. Dann geht der Zugriff auf das Feld entsprechend einfacher.
Auch kannst Du entsprechend betroffene Felder für eine Änderung als "Tag" (Zusatzinformation) in die Feldeigenschaften schreiben und durch ein Makro auslesen.
Details zu Makros in Base kannst Du auch aus dem Handbuch entnehmen.
Gruß
Robert