Das "Me!"-Objekt von VBA ist in Base einigermaßen 1:1 vorhanden:
Die VBA-Eigenschaft "RecordSource" heisst hier "Command"
Du solltest als "Art des Inhaltes" "SQL-Befehl" eingestellt haben, dann sollte z.B. folgender Code funktionieren:
Code: Alles auswählen
sub NurLibreOffice
ThisComponent.DrawPage.Forms.getbyindex(0).Command= "Select * from Projekte where Projekte.Firma = 'LibreOffice';"
ThisComponent.DrawPage.Forms.getbyindex(0).reload
end sub
Die 2. Möglichkeit das "Me!"-Objekt zu bekommen ist das Event-Objekt, das Dein Makro auslöst.
Wenn Du einen Button klickst, dann wird dabei immer ein Event-Objekt kreiert, das immer mitübergeben wird. Wenn also die "sub NurLibreOffice" mit dem "Aktion ausführen"-Ereignis des Buttons verbunden ist, und der Code der Sub so beginnt:
dann kann in dieser Sub das Objekt "oEvent" verwendet werden.
Dieses Objekt hat bei einem Button nur 2 Eigenschaften, und keine Methoden:
die "Source"-Eigenschaft weist auf den Button hin, um's kurz zu machen:
Code: Alles auswählen
oEvent.Source.Model.Parent.Command
entspricht
ThisComponent.DrawPage.Forms.getbyindex(0).Command
Das Makro kann daher auch so aussehen:
Code: Alles auswählen
sub NurLibreOffice(oEvent)
oEvent.Source.Model.Parent.Command.Command= "Select * from Projekte where Projekte.Firma = 'LibreOffice';"
oEvent.Source.Model.Parent.reload
end sub
Dies gilt für die oberste Formularebene - sollten Subformualre im Spiel sein, dann müsste dieses noch extra gesucht werden:
Code: Alles auswählen
ThisComponent.DrawPage.Forms.getbyindex(0).getByName("Name des Subformulars")
bzw
oEvent.Source.Model.Parent.Parent
man muss also beim Event-Objekt für jedes übergeordnete Formular nur ein weiteresc ".Parent" anhängen, während man per ThisComponent.DrawPage genau wissen muss welches Element des übergeordneten Formaulars das Sub-Formular ist.
Für Makros (und auslösende Buttons) die man in verscheidenen Formularen verwendet eignet sich daher der Verweis über das Event-Objekt besser.