Guten Tag Zusammen,
ich hoffe sehr, mit kann geholfen werden und ich glaube, dass es auch gar nicht mal so schwer ist.
Ich habe zwei Tabellen in einer 1:n-Bezieheung, nennen wir sie tblHaupt (1-Seite) und tblUnter (n-Seite)
Beide Tabellen beinhaltenen ein Feld mit Datentyp "ja/nein" (für Checkboxen in den entsprechenden Formularen frmHaupt und sfmUnter)
Ich möchte zum einen, dass wenn in sfmUnter alle Checkboxen auf "JA" stehen, die Checkbox auf frmHaupt auch auf "JA" gesetzt wird.
Zum Anderen soll, wenn auf sfmUnter wieder ein Häkchen entfernt wird, auf frmHaupt das Häkchen ebenfalls wieder entfernt werden.
Zum Hintergrund:
Eine Aufgabe (1) ist unterteilt in mehrere Unteraufgaben (n). Wenn alle Unteraufgaben erledigt sind, soll automatisch die Gesamtaufgabe erledigt sein.
Vielen Dank für Eure Tipps!
Liebe Grüße,
Holger
Hallo,
Wenn's denn unbedingt ein Booleanfeld sein muss
(Luftcode, da DB nicht angeschaut)
Me.CheckboxImHFo = (Abs(DCount("*", "tblUnteraufgaben", "A_ID_F = " & Me.IDimHFo & " AND Booleanfeld = True")) = Me.Recordset.RecordCount)
(A_ID_F = Fremdschlüssel in tblUnteraufgaben, IDimHFo = ID der Hauptaufgabe)
gruss ekkehard
Hallo,
wobei man noch dazu sagen sollte, dass das Ja/Nein Feld in der Hauttabelle überflüssig ist. Das ist doppelt gemoppelt.
Es genügt das berechnete Feld im Hafo.
@Ekkehard: Vielen Dank für den Code, mal schauen ob ich's hinbekomme. Bin mir nämlich nicht sicher, zu welchem Ereignis ich es zuordnen soll. Oder ist es vielleicht die Gültigkeitsregel für die Checkbox?
@klaus. Du hast ja soooo Recht! ;D Vielleicht sollte ich die Strategie nochmal überdenken und gar nicht mit Checkboxen arbeiten.
Hallo Holger,
Im HFo "Beim Anzeigen" (VBA: Form_Current) wie gezeigt
Im UFo "Nach Aktualisierung" (VBA: Form_AfterUpdate)
Me.Parent.ChkboxImHFo = ...
Und, wie Klaus auch schreibt ist das ja ein reines Info-Feld,
kann im HFo also ungebunden sein (deshalb Current) und aus der
Tabelle entfernt werden.
Wenn du nun überlegst auf das Boolean-Feld auch im UFo zu
verzichten bzw. in der Tabelle, würde ich es durch ein Datums-
Feld ersetzten. Das liefert IMO auch eine "echte" Information.
Der Check ob alle Unteraufgaben erfüllt sind ist dann auch nicht
viel anders als mit Booleanfeld
Me.CheckboxImHFo = (Abs(DCount("*", "tblUnteraufgaben", "A_ID_F = " & Me.IDimHFo & " AND Datumsfeld IS NOT NULL")) = Me.Recordset.RecordCount)
gruss ekkehard
Hallo Ekkehard!
Erst noch mal herzlichen Dank für Deine Antwort und die Zeit, die Du Dir für mich genommen hast.
Die Idee mit dem Datumsfeld und der daraus resultierenden ,,echten" Information ist wirklich super!
Vielen Dank und schönes Wochenende!!