Hallo werte Kommilitonen
Bitte als LO(Version 25.2.1.2)-Anfänger in BASE um Unterstützung:
Habe eine DB erstellt und habe in einem Formular, das eine Tabelle A referenziert, ein Listenfeld
(
Eigenschaften:
Datenfeld ist Key der Tabelle A,
Art des Listeninhalts ist SQL und
Listeninhalt ist ein Standard-SQL-Abfrage einer Tabelle B
)
platziert, dessen initiale SQL-Abfrage ich jedoch Beim Laden-Ereignis des Formulars mit einer anderen, komplexeren SQL-Abfrage über mehrere Tabellen ersetzen will.
Mein Basic-Makro führt zum "BASIC-Laufzeitfehler. Objektvariable nicht belegt."
Wie muss ich mein Listenfeld-Objekt 'belegen'/'initialisieren'/'vorbereiten'?
Mein Makro sieht zurzeit wie folgt aus:
REM ***** BASIC *****
SUB Main (oEvent AS OBJECT)
DIM oForm AS OBJECT
DIM oLF AS OBJECT
DIM sSql AS STRING
oForm = oEvent.Source
oLF = oForm.getByName("LF1")
sSql = "SELECT […] FROM […] WHERE […]" = " & CStr([…])
oLF.listSourceType = 3
oLF.ListSource = sSql 'wirft Fehlermeldung
oLF.refresh()
END SUB
Vorab vielen Dank.
fcfarkas
🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst] Voraussetzungen um ListSource mit Makro zu setzen/überschreiben
[gelöst] Voraussetzungen um ListSource mit Makro zu setzen/überschreiben
Zuletzt geändert von fcfarkas am Di 22. Apr 2025, 12:04, insgesamt 1-mal geändert.
Re: Voraussetzungen um ListSource mit Makro zu setzen/überschreiben
Aus dem Base-Handbuch:
Der Eintrag für die Daten ist ein Array. Deswegen stSql(0) als erster (und in diesem Fall einziger) Eintrag in das Array.Code: Alles auswählen
SUB Listenfeldfilter DIM stSql(0) AS STRING DIM oDoc AS OBJECT DIM oDrawpage AS OBJECT DIM oForm AS OBJECT DIM oFeld AS OBJECT oDoc = thisComponent oDrawpage = oDoc.drawpage oForm = oDrawpage.forms.getByName("MainForm") oFeld = oForm.getByname("Listenfeld") stSql(0) = "SELECT ""Name"", ""ID"" FROM ""Filter_Name"" ORDER BY ""Name""" oFeld.ListSource = stSql oFeld.refresh END SUB
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Voraussetzungen um ListSource mit Makro zu setzen/überschreiben
Hallo RobertG
Vielen Dank für die Lösung.
Hätte ich im Debugger die Listenfeld-Eigenschaft ListSource gründlicher angeschaut, wäre ich selbst darauf gekommen. Sorry für den unnötigen Nervenverschleiss.
Darf ich wohl noch um die Seitenzahl im Base-Handbuch bitten? Habe diese vor und zurück geblättert aber nichts derartiges gefunden.
Beste Grüsse, fcfarkas
Vielen Dank für die Lösung.
Hätte ich im Debugger die Listenfeld-Eigenschaft ListSource gründlicher angeschaut, wäre ich selbst darauf gekommen. Sorry für den unnötigen Nervenverschleiss.
Darf ich wohl noch um die Seitenzahl im Base-Handbuch bitten? Habe diese vor und zurück geblättert aber nichts derartiges gefunden.

Beste Grüsse, fcfarkas
Re: Voraussetzungen um ListSource mit Makro zu setzen/überschreiben
Das ist im Base-Handbuch 2408 auf Seite 511.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.