Seite 1 von 1
Drawpape
Verfasst: Do 5. Jul 2012, 19:45
von elfenkrieger
Hallo zusammen,
ich weiß ist vielleicht eine total bescheuerte Frage aber ich komme einfach nicht weiter. Ich soll für meine Firma eine Datenbank erstellen (diese hat als Schreibprogramm Libreoffice), Grundkonzept steht auch schon aber ich komme einfach mit den Makro´s nicht mehr weiter. Egal welche Funktion ich setzen will es bringt mir immer einen Fehler
Basic-Laufzeitfehler
Eigenschaft oder Methode nicht gefunden: Drawpape
Ich hoffe ihr könnt mir helfen ich hab nämlich echt keine Ideen mehr.
Re: Drawpape
Verfasst: Do 5. Jul 2012, 20:13
von F3K Total
elfenkrieger hat geschrieben:Eigenschaft oder Methode nicht gefunden: Drawpape
Hallo,
ohne genauere Angaben, besser ein Beispieldokument geht nix.
Der Fehler weißt darauf hin, dass ein Makro die Drawpage sucht aber nicht findet, also von einem Ort gestartet wird, von wo aus die Drawpage nicht auf dem beschriebenen Weg gefunden wird.
Beispiel:
Du hast ein Makro für ein Formular, da findest du die Drawpage z.B. unter "ThisComponent.drawpage" bei einem Calc Dokument z.B. unter "ThisComponent.sheets(0).drawpage" usw.
Gruß R
Edit: Es kann auch sein dass Du ein Makro für ein Formular aus der BASIC-IDE starten willst, die hat unter ThisComponent auch keine Drawpage.
Re: Drawpape
Verfasst: Do 5. Jul 2012, 20:35
von elfenkrieger
Also da ich gerade mal zuhause bin und die Datenbank nicht mitgenommen habe, hab ich mir jetzt eine odb-Datei Schüler gezogen und dort ganz normal diesen SQL-Befehl eingefügt:
REM ***** BASIC *****
SUB Filter
DIM oDrawpage AS OBJECT
DIM oForm1 AS OBJECT
DIM oFeldList1 AS OBJECT
oDoc=thisComponent
oDrawpage=oDoc.drawpage
oForm1=oDrawpage.forms.getByName("Adressliste")
oFeldList1=oForm1.getByName("Liste_1")
oFeldList1.commit()
oForm1.updateRow()
oFeldList1.refresh()
oForm2.reload()
END SUB
Re: Drawpape
Verfasst: Do 5. Jul 2012, 20:43
von F3K Total
Ja und, gehts, wenn Du das Makro aus dem Formulardokument startest? (Extras/Makros/...Ausführen)
Re: Drawpape
Verfasst: Do 5. Jul 2012, 20:51
von elfenkrieger
Nein jetzt bringt er mir
Basic-Laufzeitfehler
Es ist eine Exception aufgetreten
Type:com.stun.star.container.NoSuchElementExeption
bei dieser Zeile
oForm1=oDrawpage.forms.getByName("Adressliste")
Re: Drawpape
Verfasst: Do 5. Jul 2012, 21:10
von F3K Total
Nun, vielleicht gibt es kein Form "Adressenliste"?
Re: Drawpape
Verfasst: Fr 6. Jul 2012, 08:48
von elfenkrieger
Ich habe nur den Namen genommen wie er in meiner Datenbank geschrieben steht
Re: Drawpape
Verfasst: Fr 6. Jul 2012, 12:14
von harald235
Hallo elfenkrieger,
mir ist immer noch nicht klar, wo das Makro gepeichert ist, ob es an eine Ereignis-Eigenschaft des Formulars gebunden ist und ob Du ein Stand-alone-Formular oder eine Base-Datenbank mit Formularen benutzt.
Du hast Dir eine fremde *.odb Schüler "gezogen" (runtergeladen??) und da das Makro mit dem Formularnamen aus Deiner Datenbank eingefügt? Das kann kaum funktionieren.
Lade doch Deine DB mal mit verfremdeten Daten hier hoch, dann hat man ein genaueres Bild.
Gruß harald
Re: Drawpape
Verfasst: Fr 6. Jul 2012, 17:07
von F3K Total
Hallo Elfenkrieger,
nun hast Du schon zweimal den Hinweis bekommen möglichst ein Beispieldokument hochzuladen.
Mit deinen kryptischen Angaben kann man dir schwerlich helfen.
Tip: Der Name, der hier
drinstehen muß, ist nicht der den Du siehst, wenn Du die Formulardokumente anschaust, sondern der, den du im Formularnavigator siehst wenn Du dein Formular im Entwurfsmodus bearbeitest.
Meistens per Default "MainForm".
Gruß R
Re: Drawpape
Verfasst: Fr 6. Jul 2012, 17:14
von RobertG
Hallo elfenkrieger,
elfenkrieger hat geschrieben:
Type:com.stun.star.container.NoSuchElementExeption:
oForm1=oDrawpage.forms.getByName("Adressliste")
Wenn Du Dein Formular zum Bearbeiten öffnest und Dir über den Formularnavigator schön alles anzeigen lässt: es existiert nicht direkt auf der ersten Formularebene das Formular "Adressliste". Das sagt die Fehlermeldung "NoSuchElementExeption". Vermutlich hast Du eine Konstruktion mit Unterformularen. Das Formular "Adressliste" liegt vielleicht als Unterformular in dem Formular "Name". Dann musst Du Dich zu diesem Unterformular durchhangeln. Dies geht entweder so:
Code: Alles auswählen
oForm1=oDrawpage.forms.getByName("Name")
oForm2=oForm1.getByName("Adressliste")
...dann sprichst Du das Unterformular mit oForm2 an ... oder so:
Code: Alles auswählen
oForm1=oDrawpage.forms.getByName("Name").getByName("Adressliste")
...dann hast Du Dich direkt durchgehangelt und sprichst es als oForm1 an.
Gruß
Robert