window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Datenblatt per VBA: Spalten ein- und ausblenden

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Für die Datenblattansicht unter Access gibt es eine Menge Einstellungsmöglichkeiten. Diese haben wir ausführlich im Artikel “Datenblattansicht im Griff” in Ausgabe 10/2011 beschrieben. Nun werfen wir einen Blick darauf, wie Sie diese Einstellungen per VBA einlesen und einstellen und welche Nutzungsmöglichkeiten sich daraus ergeben – zum Beispiel das einfache Ein- und Ausblenden der Spalten des Datenblatts.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1806_DatenblattPerVBA.accdb.

Vorbereitung

Wir verwenden eine Beispieldatenbank mit den Tabellen der Suedsturm-Datenbank und dort speziell mit den Tabellen tblArtikel, tblKategorien und tblLieferanten.

Wir stellen ein Unterformular namens sfmArtikel, das wir über die Eigenschaft Datensatzquelle an die Tabelle tblArtikel binden. Danach ziehen wir alle Felder dieser Tabelle in den Detailbereich des Entwurfs des neuen Formulars. Nach dem Einstellen der Eigenschaft Standardansicht auf Datenblatt speichern und schließen wir das Formular.

Nun erstellen wir das Hauptformular für dieses Formular und speichern es unter dem Namen frmArtikel. Das Formular sfmArtikel ziehen wir aus dem Navigationsbereich in den Entwurf des Hauptformulars, sodass dieses im Entwurf nun wie in Bild 1 aussieht.

Entwurf der Datenblattansicht

Bild 1: Entwurf der Datenblattansicht

Außerdem stellen wir für das Hauptformular die Eigenschaften Datensatzmarkierer, Navigationsschaltflächen und Bildlaufleisten jeweils auf Nein ein und Automatisch zentrieren auf Ja. Schließlich soll das Unterformular sich mit dem Hauptformular vergrößern lassen, daher legen wir für die Eigenschaften Horizontalter Anker und Vertikaler Anker jeweils den Wert Beide fest.

Nach dem Wechsel in die Formularansicht des Hauptformulars erwartet uns dann die Ansicht aus Bild 2.

Datenblatt in der Formularansicht

Bild 2: Datenblatt in der Formularansicht

Spalten ein- und ausblenden per Benutzeroberfläche

Wie können wir nun per VBA eine Spalte ein- oder ausblenden über die Benutzeroberfläche geht das ganz einfach: Dort klicken wir mit der rechten Maustaste auf die entsprechende Spaltenüberschrift und wählen den Eintrag Felder ausblenden aus dem Kontextmenü aus (siehe Bild 3).

Feld ausblenden per Kontextmenü

Bild 3: Feld ausblenden per Kontextmenü

Spalten ein- und ausblenden per VBA

Und wie bekommen wir das per VBA hin Wir können es ja einfach mal über das Direktfenster probieren, indem wir dort entsprechende Eigenschaften ändern. Um zu prüfen, ob wir etwa die Spalte Artikelname korrekt referenzieren, wollen wir einmal den Inhalt des aktuellen Feldes ausgeben, was auch gelingt:

Debug.Print Forms!frmArtikel!sfmArtikel.Form!Artikelname
  Chai

Können wir so auch etwa die Breite des Feldes einstellen Die Breite können wir zumindest ausgeben:

Debug.Print Forms!frmArtikel!sfmArtikel.                                  Form!Artikelname.width
 1701 

Lässt sie sich so auch ändern Der folgende Befehl, der die Spaltenbreite verdoppel sollte, zeigt jedenfalls keine Wirkung:

Forms!frmArtikel!sfmArtikel.Form!Artikelname.Width                                                   = 3400

Damit gehen wir dann zum Ein- und Ausblenden über – funktioniert das wenigstens Dazu nutzen wir die Visible-Eigenschaft, erst einmal zum Auslesen des aktuellen Wertes:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar