das, was Du präsentierst, ist kein reiner SQL-Code. Woher soll die Datenbank denn wissen, was in dem Formular an anderer Stelle ausgewählt wurde. Das bekommt die Datenbank schließlich erst mit dem Abspeichern des Datensatzes zu sehen.
In Base ist so etwas nur über Makros realisierbar. Du könntest das so machen, wie im Handbuch zu Listenfeldern beschrieben:
Code: Alles auswählen
SUB Combofilter
DIM stSql(0) AS STRING
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld1 AS OBJECT
DIM oFeld2 AS OBJECT
DIM stSachgebiet AS STRING
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("MainForm")
oFeld1 = oForm.getByname("Sachgebiet")
oFeld2 = oForm.getByname("Bereich")
stSachgebiet = oFeld1.getCurrentValue()
stSql(0) = "SELECT DISTINCT ""Bereich"" FROM ""Buchliste"" WHERE ""Sachgebiet"" = '"+stSachgebiet+"'"
oFeld2.ListSource = stSql
oFeld2.refresh
END SUB
Das Makro musst Du jetzt an das Kombinationsfeld "Sachgebiet" koppeln. Dann soll es dort ausgelöst werden, sobald der Inhalt geändert wird.
Gruß
Robert