Hallo,
ich habe ein Formular mit zwei Unterformularen (drei Ebenen). Im letzten Unterformular benutze ich ein Listenfeld, welches per SQL gefüllt. Das funktioniert auch, jedoch werden zu viele Daten angeboten. Ich möchte eine zusätzliche Bedingung einfügen, die mit einem Wert aus dem Hauptformular vergleicht, um die Auswahlmöglichkeiten in dem Listenfeld zu beschränken.
Gehts das? Wenn ja, wie?
Vielen Dank,
Manfred
Listenfeld SQL mit Wert aus Hauptformular filtern
Moderator: Moderatoren
Re: Listenfeld SQL mit Wert aus Hauptformular filtern
Habe eine Lösung gefunden. Folgendes Makro habe ich im Hauptformular bei 'Nach dem Datensatzwechsel' aktiviert:
Code: Alles auswählen
REM ***** BASIC *****
Sub sql_where_in_listbox
dim oForm, oList
Dim new_sql(0) As string
oForm=thiscomponent.drawpage.forms
' <cond> ist der Wert vom Hauptformular, der als Bedingung in der WHERE clause des Listenfeld-SQLs benutzt wird:
cond=oForm.getByName("MainForm").getByName("fmtVeranstaltungsID").getCurrentValue
if isEmpty( cond ) then cond = "null"
oList=oForm.getByName("MainForm").getByName("SubForm").getByName("SubForm2").getByName("SubForm2_Grid").getByName("KontaktID")
' SQL statement für das Listenfeld
new_sql(0) = "SELECT CONCAT( CONCAT( Nachname, ', ' ), Vorname ) AS NAME, Anmeldungen.KontaktID FROM Kontakte, Anmeldungen WHERE Kontakte.KontaktID = Anmeldungen.KontaktID and Anmeldungen.VeranstaltungsID = " & cond & " ORDER BY Kontakte.Vorname ASC"
oList.ListSource = new_sql
'MsgBox oList.ListSource(0)
end Sub