Sehr geehrte Damen u Herren,

 

es ist einfach zum Verzweifeln: Schon seit mehreren Tagen versuche ich (das
triviale Problem) für meine OpenOffice-Datenbank via Makro ein vorhandenes
Formular aufzurufen. Dazu habe ich auch beide Krumbein-Schinken rauf und
runter gelesen, im Internet gestöbert und diverse Forumsbeiträge studiert
und ausprobiert. Zuletzt bin ich über Ihre Dokumentation gestolpert und war
guter Dinge, dass mich das Handbuch-Base von LibreOffice mit dem Kapitel
Makros oder den anderen Kapiteln weiterbringt. Ich habe im Makro-kapitel auf
Seite 9 den oben aufgeführten Basic-Schnipsel aufgegriffen: 

 

oDoc = thisComponent

oDrawpage = oDoc.drawpage

oForm = oDrawpage.forms.getByName(„Filter“)

 

Immer wenn ich mit dem Objekt „Drawpage“ arbeite und in der Routine
erfolgreich eine Datenbank-Connection hergestellt habe, kommt die
Fehlermeldung: 

 

„Objekt-Variable nicht belegt“ oder „Eigenschaft oder Methode nicht
gefunden: Drawpage“

 

In den englischen Formular-Eigenschaften kommt der Begriff Drawpage nicht
vor. Im Oxford-Englisch-Lexikon und Internet Leo-Lexikon auch nicht. Was hat
das zu bedeuten?

 

Mein Makro lautet übrigens:

 

Sub Formular_aufrufen_3

   DIM oDoc AS OBJECT 

   DIM oDrawpage AS OBJECT

   DIM oForm AS OBJECT

   DIM sName AS STRING

   Verbindung_DB

   oDoc = thisComponent

   oDrawpage = oDoc.drawpage

   oForm = oDrawpage.forms.getByName("Komponisten_Input")            ‚hier
kommt die Fehlermeldung „Eigenschaft oder Methode nicht gefunden“

 

End Sub

 

Sub CreateDBForm()

DIM oDrawpage AS OBJECT

DIM oDBForm AS OBJECT

Verbindung_DB

            If oDrawPage.Forms.Count = 0 Then
‘hier kommt die Fehlermeldung: Objektvariable nicht definiert

                        oDBForm =
oDocument.CreateInstance("com.sun.star.form.component.Form")

                        oDrawpage.Forms.InsertByIndex (0, oDBForm)

            Else

                        oDBForm = oDrawPage.Forms.GetByIndex(0)

            End If

            oDBForm.Name = "Standard"

            oDBForm.DataSourceName = sDBName

            oDBForm.Command = TableName

            oDBForm.CommandType = CurCommandType

End Sub

 

 

Sub Verbindung_DB

            DatabaseContext =
createUnoService("com.sun.star.sdb.DatabaseContext")

            oDatenquelle = DatabaseContext.getByName("MusikDatenbank_work")
‘MusikDatenbank_work ist meine Base-DB

            If not oDatenquelle.IsPasswordRequired Then

                        oDatVerb = oDatenquelle.getConnection("","")

            else

                        oHandler =
oDatenquelle.createUnoService("com.sun.star.sdb.InteractionHandler")

                        oDatVerb =
oDatenquelle.ConnectWithCompletion(oHandler)

            end if

End Sub


-- 
Informationen zum Abmelden: E-Mail an discuss+h...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/discuss/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Antwort per Email an