Libre Office

Basic Laufzeitfehler zu Drawpage

Alles zur Programmierung im LibreOffice.
Antworten
wega
Beiträge: 136
Registriert: Mi 16. Jul 2014, 19:15

Basic Laufzeitfehler zu Drawpage

Beitrag von wega » Mi 7. Okt 2026, 14:43

Hallo zusammen,
ich bekomme die Fehlermeldung:
"Eigenschaft oder Methode nicht gefunden: Drawpage."
bei der Subroutine "datenfelder_leeren",
obwohl ich diese Codezeilen schon bei älteren Programmen verwendet habe.
In der jetzigen Version mit Libreoffice

Version: 26.8.0.3 (X86_64)
Build ID: 680(Build:3)
CPU threads: 2; OS: Linux 7.2; UI render: default; VCL: gtk3
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Calc: threaded

unter Opensuse Tumbleweed binich ratlos.
Den Quellcode lege ich einmal bei.

Code: Alles auswählen

Dim DatabaseContext As Object
Dim DataSource As Object
Dim Connection As Object
Dim Statement As Object
Dim DbName As String
Dim DatenbankArray() As String

Dim oDoc as Object
Dim odrawpage as Object
Dim oForm as Object

Dim i As Integer    

Sub Datenbankkontakt(Sql As String, ByRef ResultSet As Object)
    DbName = "Heimbibliothek"
    DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")

    'Liste aller verfügbaren Datenbanken (optional)
    DatenbankArray = DatabaseContext.getElementNames()  ' Nur wenn du alle Namen sehen willst
     For i = 0 To UBound(DatenbankArray)
         MsgBox DatenbankArray(i)
     Next i 

    DataSource = DatabaseContext.getByName(DbName)
    Connection = DataSource.getConnection("", "")
    Statement = Connection.createStatement()
    ResultSet = Statement.executeQuery(Sql)
    
    MsgBox "SQL ausgeführt erfolgreich!", 64, "Erfolg"
End Sub

Sub datenfelder_leeren
	oDoc = thisComponent	'das Dokument
	odrawpage = oDoc.Drawpage	'Zeichenfläche des Formulars der Datenbank
	oForm = odrawpage.Forms.getByName("Heimbibliothek") 'das Formular selbst
	
	oForm.getByName("txtHB-titel").Text = ""
	oForm.getByName("txtHB-thema").Text = ""
	oForm.getByName("txtHB-autor").Text = ""
	oForm.getByName("txtHB-medium").Text = ""
	oForm.getByName("txtHB-lagerort").Text = ""
End Sub
Kann mir bitte einer einen Tip geben?
Mit Gruß Werner

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2759
Registriert: Fr 10. Dez 2010, 10:01

Re: Basic Laufzeitfehler zu Drawpage

Beitrag von karolus » Mi 7. Okt 2026, 17:00

Für BASIC wurde vor nicht allzu langer Zeit, im Kontext Datenbanken, eine neue globale Variable eingeführt;
ThisDatabaseDocument siehe https://help.libreoffice.org/26.8/en-US ... bPAR=BASIC
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

wega
Beiträge: 136
Registriert: Mi 16. Jul 2014, 19:15

Re: Basic Laufzeitfehler zu Drawpage

Beitrag von wega » Mi 7. Okt 2026, 18:09

Danke, das ist eine Information, die mir nicht bekannt war.
Jetzt kann ich den Namen der "oForm" auslesen und damit
Überprüfen, dass ich die richtige Form anspreche.

Jedoch gelingt es mir mit "oForm.getName("...")" nicht die
Textfelder der Form anzusprechen.
Mit der beschriebenen Syntax ging das vormals. Übersehe ich
da etwas oder besser: Habe ich daetwas nicht verstanden?

Gruß Werner

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2759
Registriert: Fr 10. Dez 2010, 10:01

Re: Basic Laufzeitfehler zu Drawpage

Beitrag von karolus » Mi 7. Okt 2026, 18:29

wega hat geschrieben: ↑
Mi 7. Okt 2026, 18:09
Jedoch gelingt es mir mit "oForm.getName("...")" nicht die
Textfelder der Form anzusprechen.
Mit der beschriebenen Syntax ging das vormals. Übersehe ich
da etwas oder besser: Habe ich daetwas nicht verstanden?
Ich habe keine bis sehr wenig Ahnung von Datenbanken, daher würde ich einfach schauen was

Code: Alles auswählen

mri oForm
so hergibt.
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

wega
Beiträge: 136
Registriert: Mi 16. Jul 2014, 19:15

Re: Basic Laufzeitfehler zu Drawpage

Beitrag von wega » Mi 7. Okt 2026, 21:51

Danke für deine Hinweise.
Ich wünsche einen schönen Abend
und lieben Gruß
Werner

Open Office
Antworten