Moin,
ein Nachtrag zum besseren Verständnis:
Der Aufbau deines Formulares
Material_buchen, in das du das Filterformular eingebaut hast, war unlogisch, darum habe ich das
Listenfeld eingebaut, siehe Bild:
- Formularaufbau.png (46.25 KiB) 2726 mal betrachtet
Du hast zwei Hauptformulare:
- frmSuche
- Filter
- Filter hat als erstes Unterformular das Formular MainForm (würde ich z.B. zu SubForm umbenennen) und ist über F_ID_V mit VeranstaltungsID, Tabelle Veranstaltungen verknüpft, oder anders: Wenn du mit dem Listenfeld eine Veranstaltung, F_ID_V, auswählst, springt der Datensatzzeiger im Mainform auf den Datensatz, der die VeranstaltungsID mit der gleichen Nummer wie momentan F_ID_V hat, darum wird auf dem Tabellenkontrollfeld im Formular jetzt nur noch die eine, im Listenfeld eingetragene, Veranstaltung angezeigt. Eigentlich ist MainForm und das Tabellenkontrollfeld unnötig.
- MainForm hat als Unterformular SubForm (würde ich z.b. SubSubForm) nennen und übergibt die VeranstaltungsID an FK_ID_V, der Spalte in der Tabelle Veranstaltungen_Produkte
Wichtig im Zusammenhang mit dem Öffnen des Berichtes ist: der mit dem Listenfeld in die einzeilige Tabelle
Filter, Spalte
F_ID_V eingetragene Wert ist die
VeranstaltungsID der aktuell gewählten Veranstaltung und wird in der Abfrage
qBericht verwendet, um eben nur die gewählte Veranstaltung auszugeben!
Wenn du nicht mit Listenfeld, sondern wieder mit dem Tabellenkontrollfeld arbeiten möchtest, löscht du die Verknüpfung Filter<>MainForm und kannst ein ähnliches Makro, wie das zum Buchen des Materials schreiben. Du holst dir mit
.getint() die VeranstaltungsID des aktuell auf dem Formular MainForm im Tabellenkontrollfeld gewählten Datensatzes, und schreibst ihn per Makro in die Tabelle Filter. Würde ich allerdings abraten, wenn die Zeile im Tabellenkontrollfeld nicht stimmt, druckst du den falschen Bericht.
Gruß R