HAllo,
schon schwierig zu verstehen… 
die DS sind nach Verteildatum und einer ID (Tempfeld)
gefiltert, welche man vor dem öffnen des Formulars auf der
Startseite auswählt.
Warum VOR dem Öffnen? Mach das doch IM Formular, nachdem das Form geöffnet wurde.
[Formulare]![Startseite]![Verteildatum]
[Formulare]![Startseite]![Tempfeld]
auf solche unglückseligen Verweise kann man dann verzichten.
Im Formular sind die Datenfelder die ich für die Berechnung
benötige alle gebunden. (Honorar, Menge, Gesamtpreis…)
d. h. es handelt sich hier um eine Rechnungserstellung (bzw. Rechungsformular) ?
Ändert man da einen Wert (z.B. Menge) und schließt das
Formular wird die Berechnung ausgeführt damit der Gesamtpreis
hier sollte „Beim Verlassen“, bzw. besser „Nach Aktualisierung“ des Mengenfeldes der Geaamtpreis (für die Position) neu berechnet werden.
wieder stimmt. (Menge*Honorar=Gesamtpreis) soweit klappt das
problemlos.
halt nur „soweit“…
Da man z.B. das Honorar global auch ändern kann (auf der
Startseite),
Von was ist das Honorar abhängig?
suche ich nun die Möglichkeit das er dann die
Berechnung für alle gefilterten DS macht…
Die „gefilterten“ DS sind doch die zu einer Rechnung zugehörenden Positionen… Wenn diese Positionen mit einem UFO dargestellt werden, wie heißt denn dann das (Haupt-)Form für die „Rechnung“ ( d. h. das Form, in dem alle restlichen Rechnungsdaten (RechNr, Rechdatum, Anschrift, Gesamtpreis , Zahlungskonditionen, etc. stehen)?
Er müßte in die
gefilterten Daten gehen, jede Zeile berechnen und den
Gesamtpreis in der Tabelle hinterlegen!
Das ist bei einem geeigneterem Datenaufbau nicht notwendig. Wenn grundsätzlich keine Berechnungsergebnisse in den Tabellen gespeichert, sondern die Berechnung immer aktuell in den „Objekten“ (Formulare, Berichte) gemacht werden, hat man dieses Problem nicht.
Es gibt aber Situationen, an denen man aus Archivierungsgründen (z. B. darf eine (gültige) Rechnung im Nachhinein sich nicht mehr ändern, wenn ein Vorgabewert (z. B. die MwSt) sich mal ändern sollte.
Dann kann man eine Tabelle erstellen, die auch die (vorher) berechneten Werte speichert.
Die Neuberechung in einer akt. Rechnung würde ich in eine Funktion auslagern, die die gesamten Rechnungsangaben umfasst und beim „Nach Aktualisierung“-Ereignis eines jeden Feldes aufrufen, dessen Inhalt geändert werden kann und das Einfluss auf Rechenrgebnisse hat.
Für das Ganze braucht man zwei Formulare
frm_Rechkopf (Beinhaltet alle Daten der Rechnung ausser den Positionsdaten)
frm_RechPos (beinhaltet nur die Daten der Position(en) und wird als UFO im o. g. Hauptform „frm_Rechkopf“ angezeigt )
Selbstredend basieren die Beiden Forms auf zwei Tabellen
tbl_Rechkopf und
tbl_RechPos
die in 1:n-Beziehung zueinander stehen.
Werden Werte gebraucht, die „quasi-konstant“ sind, z. B. die MwSt, so könnten die in einer „Parametertabelle“ hinterlegt werden, die ab und an aktulisiert werden kann. Diese Werte können dann mit Dlookup bei Bedarf ausgelesen werden.
Viele Grüße vom Bodensee
Franz, DF6GL