Hallo Pietral,
ich arbeite zur Zeit noch an einer Verbesserung des Makros, die dazu führt, dass in dem Listenfeld nichts zusätzlich mehr angegeben werden muss. Es reicht der Code im Listenfeld. Die Begrenzung dort sollte dann über ein Limit erfolgen.
Du musst für die Ausführung von Makros erst einmal die Sicherheitsstufe Deines OpenOffice oder LibreOffice herabsetzen (Extras → Optionen → Sicherheit → Makrosicherheit). Wenn Die Sicherheitsstufe auf "2" gesetzt ist, dann wirst Du vor dem Öffnen eines Dokumentes danach gefragt, ob der Makrocode ausgeführt werden darf. Du kannst auch einen Pfad angeben, in dem die Dateien liegen, bei denen Du auf diese Nachfrage verzichten willst und ohne Nachfrage Code ausführen lassen willst.
Solange das Makro nur in der Base-Datei liegt ist es auch nur für diese verfügbar. Prinzipiell funktioniert dort das Makro aber für alle Listenfelder.
Die Base-Datei muss dafür nicht als Datenbank angemeldet sein.
In dem Listenfeld siehst Du erst einmal nichts, weil ich ursprünglich den SQL-Befehl so gesetzt habe, dass der Inhalt gar nicht geladen wird. In dem unten angehängten Beispiel siehst Du jetzt beim Start die ersten 5 Werte der Liste. Je mehr Werte geladen werden, desto größer dürfte auch der Speicherbedarf sein.
Hauptproblem speziell Deiner Liste ist aus meiner Sicht aber nicht die Filterung nach a, b usw. sondern der Fehler, dass alle Werte der Liste mit einer Leertaste beginnen. Deshalb kann Base keine Navigationshilfe anbieten. Führe einmal
Code: Alles auswählen
UPDATE "tbl_Branchen" SET "Branche" = LTRIM("Branche")
in Base unter Extras → SQL aus, damit die Leerzeichen vor den Buchstaben verschwinden. Dann kannst Du auch ohne jegliches Makro in dem Listenfeld klar kommen.
Ich hänge noch einmal das Beispiel an - jetzt mit Makro, aber einfacherer Handhabung des Listenfeldes dazu und mit einem Formular, wo das Listenfeld auch ohne jegliches Makro funktioniert, weil eben die Leerzeichen beseitigt worden sind.
Gruß
Robert