Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Unterformular Datenblatt Spalten per VBA ausblenden
Gehe zu Seite 1, 2  Weiter
zurück: Fehlermeldung unterdrücken weiter: UFo aktualisieren nach Änderung im HFo Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Fedor81
Gast


Verfasst am:
14. Dez 2007, 11:20
Rufname:

Unterformular Datenblatt Spalten per VBA ausblenden - Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Unterformular Datenblatt Spalten per VBA ausblenden

Hallo Leute,

ich brauche Tipp, wie kann ich in einem Unterformular in Datenblattansicht bestimmte Spalten per VBA ein/ausblenden. mit Unterformular!Spaltename.Visible = true (false) klappt es nicht.

habe bereits in einigen Foren gesucht aber noch nicht gefunden.

Danke in Voraus.

Fedor
JörgG
Access-Team


Verfasst am:
14. Dez 2007, 14:47
Rufname:
Wohnort: b. Dresden


AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Hallo,

Du könntest alle sichtbaren Spalten mit der Marke "x" und die Unsichtbaren mit "y" markieren, zB im Formularereignis "beim Öffnen":
Code:
Private Sub Form_Open(Cancel As Integer)
    Dim Ctl As Control, i As Integer
   
    On Error Resume Next
   'mit Me.RecordsetClone.Fields(i).Name fehlen berechnete Formfelder
    For i = 0 To Me.Controls.Count - 1
        Set Ctl = Me(Me.Controls(i).Name)
        If InStr(1, Ctl.Tag, "x") Then      'Spaltenauswahl mit Marke
            Ctl.ColumnHidden = False        'einblenden
            Ctl.ColumnWidth = -2            'optimale Breite
           'Ctl.ColumnWidth = 1000          'fixe Breite, 567Twips = 1cm
          ElseIf InStr(1, Ctl.Tag, "y") Then
            Ctl.ColumnHidden = True         'ausblenden
        End If
    Next i
End Sub
Idea Die x-Marke dient zum Wiederherstellen, wenn mal jemand die Spalten zusammengeschoben hat!
_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
blicki
Es wird langsam besser...


Verfasst am:
14. Dez 2007, 14:56
Rufname: Martin
Wohnort: Meerbusch

AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Hab mal ein bischen rumprobiert.
So gehts.
Code:
Private Sub btnUS2_Click()
    Select Case Me!UFO_Rahmen!CurrentView 'Formularansichtseigenschaft abfragen
        '2 = Datenblattansicht, 1=Formularansicht, 0 = Entwurfansicht
      Case 2
        If Me!btnUS2 = -1 Then
            Me!UFO_Rahmen!T2_F1.ColumnHidden = -1
          Else
            Me!UFO_Rahmen!T2_F1.ColumnHidden = 0
        End If
      Case 1
        If Me!btnUS2 = -1 Then
            Me!UFO_Rahmen!T2_F1.Visible = False
          Else
            Me.UFO_Rahmen!T2_F1.Visible = True
        End If
    End Select
End Sub

_________________
Gruß Martin
Ein paar gesammelte Werke habe ich in der Beispiele.mdb,die ihr auf meiner HP findet, zusammengefasst.
Gast



Verfasst am:
17. Dez 2007, 10:24
Rufname:

AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Hallo Jorg, Hallo Martin !

ColumnHidden war genau das was ich suchte, funkzioniert super danke euch

beiden !!! ich hatte bis jetzt immer zwei unterschiedliche Formulare gebaut

und dann dynamich Unterformular gewechselt, aber mit diesem Eigenschaft ist es

viel eleganter Smile

mg Fedor
Zhaldur
Workaholic


Verfasst am:
23. Apr 2008, 20:10
Rufname:


AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2007

Ich habe den zweiten Lösungsweg versucht, habe einen Button auf dem Hauptformular angelegt und habe ein Unterformular.

Das Hauptformular kennt die Eigenschaft "CurrentView", jedoch das Unterformular nicht, woran könnte dies liegen?

_________________
[If you think the universe is big, you should see the source code!]
JörgG
Access-Team


Verfasst am:
23. Apr 2008, 20:53
Rufname:
Wohnort: b. Dresden

AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Hallo,

werden Ufo-Eigenschaften abgefragt, dann besser so:
Code:
    Me!UfoSteuerelementname.Form.CurrentView
Oder poste mal Deinen Code.
_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Zhaldur
Workaholic


Verfasst am:
23. Apr 2008, 21:00
Rufname:

AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Danke du bist ein Schatz, so funzt das erste Very Happy

Viel. kannst du mir auch bei folgendem helfen, denn schön langsam scheine ich einen ersten Überblick über die Syntax hier zu erhalten
Code:
Private Sub Befehl86_Click()
    'Formularansichtseigenschaft abfragen
    Select Case Me!tab_Temp_Unterformular1.Form.CurrentView
        '2 = Datenblattansicht, 1=Formularansicht, 0 = Entwurfansicht
      Case 2
        If Me!Befehl86.Enabled = 1 Then
            Me!tab_Temp_Unterformular1!ID_KPI.ColumnHidden = -1
          Else
            Me!tab_Temp_Unterformular1!ID_KPI.ColumnHidden = 0
        End If
      Case 1
        If Me!Befehl86 = -1 Then
            Me!tab_Temp_Unterformular1!ID_KPI.Visible = False
          Else
            Me!tab_Temp_Unterformular1!ID_KPI.Visible = True
        End If
    End Select
End Sub
- Die Spalte des Unterformulars (hier: ID_KPI), die ausgeblendet werden soll steht nicht einfach am Uform dran oder? Steht die viel. in "Controls/Item1/" z.B.? Da ich nur hier die Eigenschaft "ColumnHidden" vorfinde.

- Wenn ich (wie in der Lösung von oben) den Button mit "-1" abfrage dann kennt er das Objekt nicht, muss ich da viel. mit "Enabled = -1" abfragen?

Danke dir bereits vorab recht herzlich.

_________________
[If you think the universe is big, you should see the source code!]
JörgG
Access-Team


Verfasst am:
23. Apr 2008, 21:22
Rufname:
Wohnort: b. Dresden

AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Hallo,

Du willst im Hfo per Button-Klick die Ufo-Spalte D_KPI ein-/ausblenden, oder was genau willst Du machen?
Vielleicht reicht Dir der schon:
Code:
Private Sub Befehl86_Click()
    With Me!tab_Temp_Unterformular1.Form
        !ID_KPI.ColumnHidden = IIf(!ID_KPI.ColumnHidden, False, True)
    End With
End Sub

_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.


Zuletzt bearbeitet von JörgG am 23. Apr 2008, 21:30, insgesamt einmal bearbeitet
Zhaldur
Workaholic


Verfasst am:
23. Apr 2008, 21:26
Rufname:

Re: AW: Unterformular Datenblatt Spalten per VBA ausblenden - Re: AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Das mit dem Button ist nur ein Test, ob ich die Funktionalität und die Logik von VBA verstanden habe.

Letztendlich sollen abhängig von einem Textfeld im Hauptformular im Unterformular nur bestimmte Spalten angezeigt werden.
Der Hintergrund ist der, dass ich im Hfo z.B. ein Feld habe, zu dem ich mir im Ufo Detaildaten anzeigen lasse. Daher wollte ich beim Formularaufruf den Wert des Textfeldes im Hfo abfragen lassen und gemäß dieses Wertes eine bestimmte Anzahl an Spalten ausblenden lassen, da diese keine Werte enthalten würden.

Wäre klasse, wenn du mir dabei helfen könntest. Darum auch die Fragen bzgl. der Logik oben, denn dann weiß ich, ob ich es verstanden habe.

_________________
[If you think the universe is big, you should see the source code!]
JörgG
Access-Team


Verfasst am:
23. Apr 2008, 22:06
Rufname:
Wohnort: b. Dresden

AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Hallo,

für mehrere Spalten nimm den Code von oben und markiere wie beschrieben die betreffenden Ufo-Textfelder, ist weniger Schreiberei, Hfo "beim Anzeigen":
Code:
Private Sub Form_Current()
    Dim Ctl As Control, i As Integer

    With Me!tab_Temp_Unterformular1
        For i = 0 To .Form.Controls.count - 1
            Set Ctl = .Form(.Form.Controls(i).Name)
            If InStr(1, Ctl.Tag, "x") Then
                Ctl.ColumnHidden = Not (Me!Textfeld = "abc")  'evtl Not entfernen
            End If
        Next i
    End With
End Sub
Idea Das könnte interessant sein DBWiki: Access Bedienungsanleitung: Bezug auf Formular/Unterformular
_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Zhaldur
Workaholic


Verfasst am:
23. Apr 2008, 22:32
Rufname:

AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Danke Jörg, d.h. ich kann erst eine Abfrage machen (welchen Inhalt hat mein Feld im Hfo), dann die entsprechenden Felder markieren und dann ausblenden lassen, richtig?

Ich verstehe allerdings nicht genau, was du mit dem Textfeld"abc" zu erreichen suchst, wenn ich stattdessen "True" eingebe dann verschwindet auch die gewünschte(n) Spalte(n).

Danke dir, hast ma echt geholfen Smile

_________________
[If you think the universe is big, you should see the source code!]
JörgG
Access-Team


Verfasst am:
23. Apr 2008, 23:27
Rufname:
Wohnort: b. Dresden

AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Hallo,

das ist schon richtig was Du sagst und nun schau Dir diesen Ausdruck mal an: Ctl.ColumnHidden = Not (Me!Textfeld = "abc"). Das: (Me!Textfeld = "abc") soll der Vergleich sein von dem Du oben gesprochen hast (bei Dir sind es vielleicht Zahlen). Dieser Vergleich liefert True/False Wink

Idea Beachte: Vergleiche mit NULL sind immer False, uU muss NULL in einen gültigen vergleichbaren Wert umwandeln:
Code:
'für Text
                Ctl.ColumnHidden = Not (Nz(Me!Textfeld, "") = "abc")
'für Zahlen
                Ctl.ColumnHidden = Not (Nz(Me!Textfeld, 0) = "abc")

_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Zhaldur
Workaholic


Verfasst am:
24. Apr 2008, 11:41
Rufname:

AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Hey es klappt super, danke nochmal.

Ich musste allerdings für jede Spalte eine eigene Marke verwenden, um mein Ziel zu erreichen.
Zur Vervollständigung poste ich mal meinen Abschlusscode, der nun so läuft wie ich es mir vorgestellt habe:
Code:
Private Sub Form_Current()
'Fehler abfangen
On Error GoTo fehler
    Dim Ctl As Control, i As Integer

'Spalten ausblenden (abh. von Feld)
    With Me!tab_Temp_Unterformular1
        For i = 0 To .Form.Controls.Count - 1
            Set Ctl = .Form(.Form.Controls(i).Name)
            If InStr(1, Ctl.Tag, "1") Then
                Ctl.ColumnHidden = True
            End If
            If InStr(1, Ctl.Tag, "2") Then
                Ctl.ColumnHidden = True
            End If
            If InStr(1, Ctl.Tag, "7") Then
                Ctl.ColumnHidden = (Me!Feld = "Wert1") 'evtl Not ergänzen
            End If
            If InStr(1, Ctl.Tag, "8") Then
                Ctl.ColumnHidden = (Me!Feld = "Wert1")
            End If
            If InStr(1, Ctl.Tag, "9") Then
                Ctl.ColumnHidden = Not (Me!Feld = "Wert2")
            End If
            If InStr(1, Ctl.Tag, "12") Then
                Ctl.ColumnHidden = False
            End If
        Next i
    End With
'Endprozedur (Sub verlassen)
ende:
    Exit Sub
'Fehler-Handling (Ausgabe Fehlerbeschreibung)
fehler:
    MsgBox Err.Description, 16, "Fehlerbox"
    Resume ende
End Sub

Nachtrag: Zhaldur am 24. Apr 2008 um 14:35 hat folgendes geschrieben:
Hätte ich nun das Unterformular auf einer Seite (page1) eines Registers (reg1), wie würde sich der Pfad ändern, um es anzusprechen?

EDIT: Hat sich erledigt, ich kann es einfach so ansprechen
Code:
    With Me.Form.Form.tab_Temp_Unterformular1

_________________
[If you think the universe is big, you should see the source code!]
JörgG
Access-Team


Verfasst am:
24. Apr 2008, 16:01
Rufname:
Wohnort: b. Dresden

AW: Unterformular Datenblatt Spalten per VBA ausblenden - AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Hallo,

1) Instr() prüft das Vorhandensein eines Zeichens innerhalb einer Zeichenkette (!), somit dürfte Deine Marke = 1, ebenso bei Marke = 12 gefunden werden. Du solltest also bei Buchstaben als Marken bleiben Wink

2) das Register ist nur eine Umrahmung, es wird in der Syntax völlig ignoriert, das:
Code:
    With Me.Form.Form.tab_Temp_Unterformular1

bleibt also unverändert stehen Wink, als:
Code:
    With Me!tab_Temp_Unterformular1

_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Zhaldur
Workaholic


Verfasst am:
24. Apr 2008, 18:34
Rufname:


Re: AW: Unterformular Datenblatt Spalten per VBA ausblenden - Re: AW: Unterformular Datenblatt Spalten per VBA ausblenden

Nach oben
       Version: Office 2k (2000)

Zitat:
1) Instr() prüft das Vorhandensein eines Zeichens innerhalb einer Zeichenkette (!), somit dürfte Deine Marke = 1, ebenso bei Marke = 12 gefunden werden. Du solltest also bei Buchstaben als Marken bleiben Wink
Du hast recht, das habe ich vollkommen übersehen, danke dann nehme ich eindeutige Nummern oder eben Buchstaben, so viele Zeilen habe ich nicht und werden auch nicht in Zukunft ergänzt werden.

Zitat:
2) das Register ist nur eine Umrahmung, es wird in der Syntax völlig ignoriert, das:
Code:
    With Me.Form.Form.tab_Temp_Unterformular1
bleibt also unverändert stehen Wink, als:
Code:
    With Me!tab_Temp_Unterformular1
Hm, stimmt, dann hatte ich vorher wohl einen anderen Fehler damit, weil es anfangs nicht ging als ich das Register eingefügt habe.

Achja wenn es dich interessiert (und für alle anderen) ich habe zum Schluss noch eine Abfrage eingefügt, mit der ich die optimale Spaltenbreite festlege. Da ja nicht jedes Element in dem Ufrm über die Eigenschaft "ColumnWidth" verfügt habe ich es so verfasst. Es klappt einwandfrei:
Code:
            If Ctl.Tag <> "" And Ctl.Tag <> "z" Then
                If Ctl.ColumnHidden = False Or Ctl.ColumnHidden = "" Then
                    Ctl.ColumnWidth = -2
                End If
            End If
Besten Dank nochmal für alles und schönen Feierabend ;)
_________________
[If you think the universe is big, you should see the source code!]
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: mehrere Spalten in eine transformieren 2 spollwing 1767 01. Aug 2005, 09:22
Gast mehrere Spalten in eine transformieren
Keine neuen Beiträge Access Tabellen & Abfragen: Feldwert ergänzen per SQL 16 grub 2243 27. Jul 2005, 16:50
Willi Wipp Feldwert ergänzen per SQL
Keine neuen Beiträge Access Tabellen & Abfragen: Gleiche Daten in mehreren Spalten zählen 1 majeca 1218 19. Jul 2005, 07:26
Sub-Z3r0 Gleiche Daten in mehreren Spalten zählen
Keine neuen Beiträge Access Tabellen & Abfragen: Access Abfrage per Stichtag 3 Teresa 1711 16. Mai 2005, 13:26
jens05 Access Abfrage per Stichtag
Keine neuen Beiträge Access Tabellen & Abfragen: Index über 3 Spalten ohne Primary Key 7 Gast 1139 13. Apr 2005, 10:32
stpimi Index über 3 Spalten ohne Primary Key
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage von mehreren Spalten 4 onkelfossy 988 05. Apr 2005, 09:01
onkelfossy Abfrage von mehreren Spalten
Keine neuen Beiträge Access Tabellen & Abfragen: Parameterabfrage in Unterformular 2 kassandra 1210 09. März 2005, 11:15
kassandra Parameterabfrage in Unterformular
Keine neuen Beiträge Access Tabellen & Abfragen: Unterformular über Kombinationsfeld aussuchen... 1 DJ1337 923 14. Feb 2005, 13:53
lothi Unterformular über Kombinationsfeld aussuchen...
Keine neuen Beiträge Access Tabellen & Abfragen: Unterformular öffnen 1 mike1967 1022 10. Feb 2005, 08:53
MirkoK Unterformular öffnen
Keine neuen Beiträge Access Tabellen & Abfragen: Spalteninhalte trennen oder Spalten einzeln importieren 1 bjen 1211 28. Jan 2005, 13:54
lothi Spalteninhalte trennen oder Spalten einzeln importieren
Keine neuen Beiträge Access Tabellen & Abfragen: Wie mache ich per Abfrage 305 -> K3.05? 2 Maik_25 792 21. Jan 2005, 10:38
Maik_25 Wie mache ich per Abfrage 305 -> K3.05?
Keine neuen Beiträge Access Tabellen & Abfragen: Einen Wert per Abfrage in mehreren Tabellenspalten suchen 2 Danny G. 606 10. Sep 2004, 18:22
Danny G. Einen Wert per Abfrage in mehreren Tabellenspalten suchen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML CSS