Listenfeld SQL mit Wert aus Hauptformular filtern

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

ManfredU
Beiträge: 2
Registriert: Do, 10.09.2009 06:54

Listenfeld SQL mit Wert aus Hauptformular filtern

Beitrag von ManfredU »

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
ManfredU
Beiträge: 2
Registriert: Do, 10.09.2009 06:54

Re: Listenfeld SQL mit Wert aus Hauptformular filtern

Beitrag von ManfredU »

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 
Antworten