Guten Morgen.
Ich mach momentan eine Ausbildung und wir beschäftigen uns momentan mit Datenbanken und in diesem Zusammenhang mit Access. Momentan arbeite ich an einer Datenbank in welcher Investitionen erfast werden sollen, welche noch getätigt werden sollen, laufen, bewilligt worden sind und erledigt wurden.
Die Datenbank ist auch soweit erstellt nun möchte mein Ausbilder gerne das bestimmte Bereiche(Felder) des Formulars gesperrt sind bis man in einem Kontrollkästchen ein Häckchen setzt.
Das Kontrollkästchen habe ich schon erstellt und mir ist auch klar das ich das wohl nur über Visual Basic realisert bekommen werde, blos habe ich nicht wirklich eine Vorstellung davon wie der Befehl dafür auszusehen hat?
Könnte mir da jemand helfen, somal ich mit Visual Basic leider noch nicht soviel Erfahrung habe?
Mit freundlichen Grüßen
Nighstlaver
Hallo,
naja, einfach Code hier posten ist vielleicht nicht so richtig zielführend (--> Access-VBA zu lernen)
Deshalb nur prinzipiell:
-- Das Formular-Kontrollkästchen muss auch als Tabellenfeld (Datentyp Ja/Nein) vorhanden und daran gebunden sein.
-- In den Ereignissen "Beim Anzeigen" ("Form_Current") und "Beim Klicken" des Form-Kontrollkästchens erfolgt der Aufruf einer Funktion im Formular-Modul, die die entspr. Felder sichbar/unsichtbar setzt:
Sub Form_Current
ToggleFields
End Sub
.
.
.
Private Sub ToggleFields ()
Me!Feld1.Locked = not Me!Kontrol1
Me!Feld2.Locked = not Me!Kontrol1
.
.
End Sub
Das Steuern/Setzen der einzelnen Felder könnte auch eleganter geschehen, wenn man z. B. die "Tag"-Eigenschaft der betroffenen Felder benutzt und auswertet...
Hallo,
hier eine Beispiel mit den von Franz angesprochenen Tag´s
Public Sub LockControls(ByRef frm As Form, ByVal bolLocked As Boolean)
Dim ctl As Control
On Error Resume Next
For Each ctl In frm.Controls
If ctl.Tag = "s" Then
ctl.Locked = bolLocked
End If
Next ctl
Set ctl = Nothing
End Sub
Als Tag habe ich hier s genommen. Die Tag´s kannst du bei Eigenschaften - Marke eingeben.
Gruß
Johann