Frage

Ich habe eine Access-Datenbank mit mehreren Feldern, bei denen es sich um Kontrollkästchen handelt, die anderen Feldern wie einer ID-Nummer und einem Datum entsprechen.Ich möchte, dass diese Felder ausgegraut sind, wenn das entsprechende Kontrollkästchen nicht aktiviert ist, und dass sie sich öffnen, wenn sie aktiviert sind.

Check box: Study

Field 1: StudyID

Fields 2: StudyDate

Die beiden Felder sind standardmäßig deaktiviert.Ich verwende den folgenden Code für AfterUpdate auf dem Kontrollkästchen:

If Me.Study Then
    StudyID.Enabled = True
    StudyDate.Enabled = True
Else
    StudyID.Enabled = False
    StudyDate.Enabled = False
End If

Dadurch funktioniert es irgendwie.Es funktioniert bei der Aktion, wenn Sie darauf klicken, aber die Änderung wird nicht gespeichert, wenn Sie Datensätze wechseln oder das Formular schließen/erneut öffnen.Ist das der richtige Code oder gibt es etwas Besseres oder muss jeder Datensatz einzeln verknüpft werden?

War es hilfreich?

Lösung

Was Sie vermissen, ist, dass der Code erneut „On Current“ ausgeführt werden muss.Auf diese Weise wird jedes Mal, wenn Sie zum Formular zurückkehren, geprüft, ob das Kontrollkästchen aktiviert ist, und die Felder werden korrekt aktiviert/deaktiviert.

Wählen Sie das Formular aus (klicken Sie auf das kleine Quadrat oben links, wo sich die Lineale schneiden), und klicken Sie dann auf der Registerkarte „Ereigniseigenschaften“ auf „Aktuell“.Laden Sie diesen Code:

If Me.Study = -1 Then
    StudyID.Enabled = True
    studydate.Enabled = True
Else
    StudyID.Enabled = False
    studydate.Enabled = False
End If
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top