Hallo Community
ich erfasse über ein Endlosformular Materialnutzungszeiten für unterschiedliche Fahrräder. Es gibt hierfür für den eindeutigen Materialstamm jeweils die Checkboxen "Material stillgelegt" und "Material ausgemustert". Wenn keine der Optionsboxen den Wert Wahr hat, dann ist es aktuell im Gebrauch.
Ein Materialstamm kann also mehrere Nutzungszeiträume haben, die auch zu unterscheidlichen Fahrrädern gebucht wurden. Nun sollte es so funktionieren, dass wenn ich ein aktuelles Material stilllege und entsprechend im Formular die Cb "Material stillgelegt" markiere, per VBA bei alle vorhergehenden Nutzungszeiträumen für dieses Material ebenfalls diese Cb auf wahr gesetzt wird (gilt natürlich auch für die Option Material ausgemustert). Das möglichst auch für diejenigen Nutzungszeiträume, die auf andere Fahrräder anfallen.
Wie lautet da der Code und an welchem Ereignis hänge ich den auf? Wäre toll, wenn ich zumindest mal gute Ansätze hätte.
Danke
Michael
Hallo,
der beste Ansatz wäre, die Tabelle (DB) zu normalisieren. Siehe u. st. Links 1 und 1a.
Die Checkboxen(-Werte) gehören in eine separate Tabelle ("tblMatStatus" "aktiv", "stillgelegt", "ausgemustert"). Diese Tabelle wird dann mit tblMaterial in Beziehung gesetzt. (Denkbar wäre auch anstelle eine Tabelle "tblNutzungsarten" ("Nutzungsstart", "Nutzungsende","stillgelegt", "ausgemustert") , die dann mit "tblRadNutzungen" in Beziehung gesetzt würde.)
Eine Anpassung der Felder in der gezeigten Tabelle ist in beiden Fällen erforderlich.
Hier sollte allgemein das Konzept überdacht werden.
Hallo,
Davon ausgehend, dass es sich um drei Termine handelt, die
nacheinander erreicht werden (Stillegung und Ausmusterung
können natürlich auch gleichzeitig stattfinden), halte ich eine zusätzl.
Tabelle hier für überflüssig. Ich würde auf die beiden Booleanfelder
verzichten und dafür ein weiteres Datumsfeld einrichten
(AusgemustertAm) und das Feld Nutzungsende umbenennen in
StillgelegtAm.
Dann gilt
aktiv = StillgelegtAm und AusgemustertAm sind NULL
stillgelegt = StillgelegtAm ist belegt und AusgemustertAm ist NULL
ausgemustert = alle drei Felder sind belegt
gruss ekkehard
Hallo
danke erstmal für die Tipps. Muss mir den Aufwand anschauen. EIne weitere Normalisierung ist wohl die sauberste und akademische Variante.
Grüße