Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

HFO Datenblattansicht Spalten ausblenden

Begonnen von Frank70, Januar 29, 2021, 15:19:35

⏪ vorheriges - nächstes ⏩

Frank70

Hallo,

ich habe ein Hauptformular mit 2 Unterformularen. Funktioniert auch ganz gut.
Das Hauptformular wird als Datenblatt angezeigt, die Unterformulare als Endlosformulare.

Jetzt möchte ich per VBA auslesen welche Spalten im Hauptformular ein- bzw. ausgeblendet sind um dies für jeden User separat abzuspeichern.

Ich habe bei meiner Google Recherche die .Columnhidden Eigenschaft gefunden.
Aber ALLE Artikel, die ich gefunden habe, beschreiben das nur für das Unterformular.
Geht das im Hauptformular nicht? "Per Hand" kann ich die Spalten ja ein- und ausblenden wie ich möchte.

Hoffe ich habe mich verständlich ausgedrückt.

Wünsche Euch allen ein schönes Wochenende....

Viele Grüße
Frank

Frank70

Hallo,

noch eine kleine Ergänzung.
Das Hauptformular ist ein geteiltes Formular.
In der Datenblattansicht würde ich gerne die Spalten ein- und ausblenden.

VG Frank

Frank70

Hallo,

ich habe die ganze Zeit versucht die Spalten mit

me.spalte.columnhidden = True

auszublenden, aber nichts geschah.

Die Änderung tritt erst beim nächsten Öffnen des Formulars in Kraft.
Das reicht mir, also Problem bis dahin gelöst.

Ich würde allerdings gerne für ALLE Spalten den Wert abspeichern.
Um nicht für jede Spalte den Code wiederholen zu müssen, würde ich das gerne in einer Schleife für alle Spalten machen.
Komme da allerdings nicht weiter.

Vielleicht jemand eine Idee??

Gruß Frank

Frank70

Hallo,

kann mir da keiner helfen??

Gruß Frank

Frank70

Hallo,

ist der Post hier überhaupt sichtbar?

Gruß Frank

Beaker s.a.

Hallo Frank,
Doch, ist sichtbar. Mit geteilten Formularen kennt sich aber IMO
kaum jemand aus. Ich i.Ü. auch nicht. Aber mit einer Schleife
durch die Controls eines Forms kann ich dir wohl weiterhelfen.
Zuerst schreibst du bei den Feldern, die du ansprechen willst,
einen Wert in die Eigenschaft "Marke" (in VBA = Tag). Die Schleife
dann so
    Dim ctl As Control
    For Each ctl in Me.Controls
        If ctl.Tag = 0 Or ctl.Tag = -1    '0 = False, -1 = True
            ctl.ColumnHidden = Val(ctl.Tag)    '.Tag ist immer vom Typ String
        End If
'Controls bei denen die Eigenschaft leer ist werden nicht beachtet
    Next
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)