Spalte in Datenblattansicht per VBA steuern

Spalte in Datenblattsicht ein- bzw. ausblenden –  So geht es leider nicht:

Der erste Gedanke ist es wohl, die Steuerelement-Eigenschaft visible JA Nein zu nutzen und diese per VBA zu steuern, aber  – richtig  –  da passiert nichts. Was in der Formularansicht prima funktioniert, geht leider nicht mit einer Spalte in Datenblattansicht.

Zuständig für die Spaltensicht bzw. das Ausblenden einer Spalte ist die Eigenschaft ColumnHidden des Steuerelements.

Ausgangssituation:

In einer Liste von Mandanten zur Steuerung der MS SQL-Verbindungen soll die Spalte, die das Passwort enthält, beim Öffnen ausgeblendet sein. Durch den Klick auf einen Button PW und der nachfolgenden Eingabe eines Passworts soll dann die Spalte bzw. das Steuerelement PWD sichtbar werden.

Umsetzung Spalte in Datenblatt beim Start ausblenden:

Zunächst muss beim Öffnen des Formulars die Spalte ausgeblendet werden, dazu folgenden Code beim Öffnen des Formulars festmachen:

Private Sub Form_Open(Cancel As Integer)
Me.sfrmMandant.Form!PWD.ColumnHidden = True
End Sub

In diesem Beispiel ist die Spalte in Datenblattansicht im Unterformular, deswegen die zusätzliche Adressierung auf das Unterformular sfrmMandant.

Und nun noch der Button:

Der Button PW cmdPWOpen wird in diesem Fall wie folgt programmiert:

 

Private Sub cmdPWOpen_Click()
Dim wert as Variant
wert = InputBox(“ZugangsPW?”, “Passwort Mandanten anzeigen”)
If wert <> “PW” Then Exit Sub    ‘Hier ein einfaches im Code festgelegtes Passwort für den Zugang
Me.sfrmMandant.Form!PWD.ColumnHidden = False

End Sub

Nach dem Klicken erscheint dann die gewünschte Spalte in Datenblattansicht

Weitere Anmerkungen:

Die ColumnHidden-Eigenschaft blendet mit dem Wert -1 in der Datenblattansicht die Spalte aus, aber in der Formularansicht nicht das Steuerelement, hier braucht es dann wieder die Eigenschaft visible.

Eine ‘versteckte’ Spalte kann trotzdem für Filter im Formular genutzt werden oder als Bestandteil von where-Klauseln.

Haben Sie Interesse an einer eigenen Lösung oder an der Erweiterung Ihrer bestehenden Lösung? Erfahren Sie hier mehr!