Der Zugriff entscheidet - die obige Codezeile greift explizit auf das aktuelle *.odb-Dokument zu, daher kann das Makro nur dann laufen, wenn es aus dieser DB heraus gestartet wird.
Ein bestimmtes Formular bei Datenbankstart öffnen:
ein Makro wie dieses erstellen:
Code: Alles auswählen
Sub StartUpDatabase
' stellt die Verbindung zu den Daten her
ThisComponent.DataSource.ConnectWithCompletion(createUnoService("com.sun.star.sdb.InteractionHandler"))
If isNull(ThisDatabaseDocument.CurrentController.ActiveConnection) Then
ThisDatabaseDocument.CurrentController.Connect
End If
' öffnet das Forular
ThisDatabaseDocument.FormDocuments.getByName( "Zentralformular" ).open ' oder wie auch immer Dein zu öffnendes Formular heisst
end sub
dann:
Datenbankfenster: Menü: Extras/Anpassen, und da im Index:Ereignisse dem Ereignis 'Dokument öffnen' das Makro zuweisen.
Unter der Liste ist ein Listenfeld 'Speichern in', dort vorzugsweise die aktuelle Datenbank auswählen, sonst startet das Makro bei jedem Base-Start...
g