Frage:
Können Sie mir einen Tipp geben, wie man ein Registersteuerelement abhängig von einem Feldinhalt ein oder ausblenden kann? Ich habe ein Adressformular sowohl für private wie auch für geschäftliche Kunden. Ich möchte das Register „Mitarbeiter“ aber nur einblenden, wenn die Anrede „Firma“ ist.
Antwort:
Das Registersteuerelement verfügt über eine Eigenschaft „Visible“, mit der es sichtbar oder unsichtbar geschaltet werden kann. In Ihrem Fall wären die da – zu notwendigen Anweisungen zunächst in der Ereignisprozedur „Beim Anzeigen“ des Formulars unterzubringen, damit der Status bei jedem Datensatzwechsel geprüft werden kann:
Sub Form_Current()
If Me.Anrede & „“ = „Firma“ Then
Me.Mitarbeiter.Visible = True
Else
Me.Mitarbeiter.Visible = False
End If
End Sub
„Anrede“ ersetzen Sie ggf. durch den Namen des Feldes oder Kombinationsfeldes, das die Anrede enthält. Die Anweisungen prüfen, ob die aktuelle Einstellung für Anrede „Firma“ ist. Ist das der Fall, wird das Registersteuerelement per „Visible = True“ sichtbar, ansonsten per „Visible = False“ unsichtbar geschaltet. Die Verknüpfung ‘Me.Anrede & „“‘ sorgt dafür, dass bei Feldern ohne Inhalt kein Laufzeitfehler „Ungültige Verwendung von null“ ausgelöst wird. Weiterhin muss sichergestellt sein, dass nach einer Änderung der Anrede das Registersteuerelement ebenfalls aus- oder eingeblendet wird. Dazu wird die Ereignisprozedur „NachAktualisierung“ des Feldes oder Kombinationsfeldes „Anrede“ genutzt. Dort geben Sie folgende Anweisung ein:
Form_Current
Dadurch wird obige Ereignisprozedur aufgerufen, die dann wie erläutert das Registersteuerelement ein- oder ausblendet.