Formular über ein Makro öffnen

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

Moderator: Moderatoren

SteGau
Beiträge: 2
Registriert: Mi, 02.11.2011 15:36

Formular über ein Makro öffnen

Beitrag von SteGau »

Hallo,
ich habe vor einiger Zeit mit meiner ersten LibreOffice-HSQL-Datenbank (Version 3.4) angefangen.
Ich möchte beim Start der entsprechenden Datenbank automatisch (d.h. beim Ereignis: "Dokument öffnen") ein Formular "Hauptmenü" öffnen.

2 Möglichkeiten habe ich im Wesentlichen ausprobiert:
a) 1 DatabaseContext = createUnoService("com.sun.star.sdb.DatababaseContext")
2 oDatenquelle = DatabaseContext.getByName("Walker")
3 oDVerb = oDatenquelle.GetConnection("","")
4 ThisDatabaseDocument.FormDocuments.getByName( "Hauptmenü" ).open()

Bei Zeile 4 erscheint allerdings folgende Fehlermeldung:
"Basic-Laufzeitfehler:
Objektvariable nicht belegt."

b) Verwende ich nur den Befehl ...
"ThisDatabaseDocument.FormDocuments.getByName( "Hauptmenü" ).open()"
... dann erhalte ich den Fehler:
"com.sun.star.sdbc.SQLException
Message: [OOoBase] Es besteht keine Verbindung zur Datenbank."

Wenn ich allerdings vorher manuell ein Formular öffne und dann wieder schließe, dann funktioniert das Makro zum Öffnen des Formulars "Hauptmenü".

Da ich jetzt an dieser Hürde bereits wochenlang hänge, wäre ich um jeden Lösungsvorschlag dankbar. :(

Gruß
Stefan
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Formular über ein Makro öffnen

Beitrag von F3K Total »

Hallo,
versuche es mal hiermit:

Code: Alles auswählen

sub open_Hauptmenue

oCon = ThisDatabaseDocument.CurrentController
If NOT ( oCon.isConnected() ) Then oCon.connect()
ThisDatabaseDocument.formdocuments.getbyname("Hauptmenü").open

end sub
Gruß R
SteGau
Beiträge: 2
Registriert: Mi, 02.11.2011 15:36

Re: Formular über ein Makro öffnen

Beitrag von SteGau »

Hallo,

ich fasse es nicht. Da bin ich Stunde um Stunde an diesem Problem gesessen und dann ist es so schnell behoben.

Vielen, vielen Dank, ich war schon am verzweifeln!

Gruß
Stefan
Antworten