Hallo Marko,
Du musst ja irgendwo die Information abspeichern, mit der aktuelle Datensatz des Formulars "Personal_Data" gefunden werden kann. Also entweder im Formular "Personal_Data" über ein Makro oder in einem darunterliegenden Formular mittels Weitergabe der Information von einem Formular zum nächsten.
Da Du den Bericht direkt aus dem Formular aufrufen willst bietet sich das Makro an. Denn für den Aufruf des Berichtes brauchst Du sowieso ein Makro.
Ich nehme einfach einmal an, dass die Datenquelle für "Filter_PersonalData" bereits die Filtertabelle ist. Dann benötigst Du natürlich keine weiteren Filterinformationen - außer eben denen des aktuellen Schlüsselfeldes im Unterformular.
Hier könntest Du also das Makro einbauen, das auch im Handbuch zum Ausdruck von Berichten zum aktuellen Datensatz steht. Allerdings musst Du das etwas abwandeln, weil Dein Formular im Unterformular liegt:
Code: Alles auswählen
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("Filter_PersonalData").getByName("PersonalData")
Damit Du nicht lange über "grd_PersonalData" nach dem Schlüsselfeld suchst kannst Du auch ein Feld in das Formular "Personal_Data" legen, das wie im Makro "fmtID" heißt. Das Feld wird mit dem Primärschlüsselfeld der Datenquelle von "Personal_Data" verbunden und kann ruhig auf "unsichtbar" gesetzt werden. Daraus liest das Makro den aktuellen Schlüsselwert und speichert ihn in dem Feld "Integer" aus der Filtertabelle "Filter" ab.
Anschließend wird über das Makro der Bericht gestartet, der eben über eine Abfrage, gefiltert durch die Tabelle "Filter", mit Daten versorgt wird.
Gruß
Robert