Abfrage, basierend auf Formular-Daten

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Abfrage, basierend auf Formular-Daten

Beitrag von RobertG »

Hallo Nikolaus,

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
Bei dem Formular und den Feldern musst Du natürlich schauen, welche Bezeichnung die (im Formularnavigator) haben. Den Code mit oDoc, oDrawpage usw. kannst Du auch über das auslösende Ereignis umgehen, aber ohne Makro wirst Du da nicht weiter kommen.
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