Seite 1 von 1

Basic Laufzeitfehler zu Drawpage

Verfasst: Mi 7. Okt 2026, 14:43
von wega
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

Re: Basic Laufzeitfehler zu Drawpage

Verfasst: Mi 7. Okt 2026, 17:00
von karolus
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

Re: Basic Laufzeitfehler zu Drawpage

Verfasst: Mi 7. Okt 2026, 18:09
von wega
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

Re: Basic Laufzeitfehler zu Drawpage

Verfasst: Mi 7. Okt 2026, 18:29
von karolus
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.

Re: Basic Laufzeitfehler zu Drawpage

Verfasst: Mi 7. Okt 2026, 21:51
von wega
Danke für deine Hinweise.
Ich wünsche einen schönen Abend
und lieben Gruß
Werner