Schaltfläche ein Makro zuweisen es wird jedoch nicht ausgeführt (.uno:FormFilterExecute)

Hallo zusammen,

ich arbeite gerade an einer Datenbank mit mehreren Formularen. In diese Formulare möchte ich Schaltflächen integrieren, die folgende Funktionen ausführen:

  1. Formularbasierte Suche starten.
  2. Suchanfrage ausführen.
  3. Suche beenden bzw. schließen.

Die ersten, so wie dir dritte Schaltflächen funktionieren einwandfrei, aber die Schaltfläche für die Durchführung der Suche führt das zugehörige Makro nicht aus, wenn ich sie betätige.

Hier ist das Makro, das eigentlich ausgeführt werden soll:

Sub SucheAusfuehren(sfSuchZurueck As String, SuchForm As String)

' Variablen definieren
Dim document   As Object
Dim dispatcher As Object

' Zugriff auf das aktuelle Dokument
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

' Filter ausführen
dispatcher.executeDispatch(document, ".uno:FormFilterExecute", "", 0, Array())

' Schaltfläche aktivieren
ButtonAktivieren(sfSuchZurueck, SuchForm, True)

End Sub


Ich habe das Makro bisher auf folgende Arten zu starten versucht:

1. **Direkte Zuweisung zur Schaltfläche:** Das Makro wird 
    nicht ausgeführt, wenn ich die Schaltfläche anklicke.
2. **Manuelles Starten über Extras → Makros → Makro ausführen:** 
    Das Makro läuft problemlos und macht genau das, was es soll.
3. **Starten über ein anderes Makro:** Ich habe versucht, 
     das Makro in ein übergeordnetes Start-Makro zu integrieren, in dem auch 
     die Schaltfläche zum Beenden der Suche aktiviert wird. Leider wird 
      das Start-Makro hierbei ebenfalls nicht ausgeführt.

Ich arbeite mit **Windows 11 Pro** und **LibreOffice 24.8.3**.

Hat jemand eine Idee, woran das liegen könnte oder wie ich das Problem lösen kann?

Vielen Dank im Voraus für eure Unterstützung!

Viele Grüße
Peter

Da brauchst Du kein Makro für:
Button → Eigenschaften → Allgemein → Aktion → Dokument/Webseite öffnen
und dann URL → .uno:FormFilter

Das Ausführen geht doch erst nachdem Du alle Elemente ausgesucht hast. Also Execute raus lassen.
.
Ich arbeite viel mit Datenbanken, aber die Suchfunktionen und Filterfunktionen der GUI nutze ich überhaupt nicht. Da baue ich das Ganze mit Filtertabelle und Listboxen sowie einem allgemeinen Suchfeld auf. Die eingebaute Suche ist viel zu langsam und endet darüber hinaus auch immer in dem Formular, in dem gerade der Cursor steckt. Bei Konstruktionen mit Parallelformularen und Unterformularen ist das nicht nutzbar.

Hallo Robert danke für deine Antwort,
ich habe auch schon einiges mit Filtertabellen und Listboxen verwirklicht, mir kam die Formularbasierende suche als einfache Methode vor Tabellen durch Benutzer zu filtern. Danke für den Tipp mit URL ich werde es mal ausprobieren und wenn es nur für mich ist um mir Gedanken über die Filter-Struktur zu machen.