Mai 17, 2021, 14:27:37

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


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
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.