Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: PaulB1970 am Juni 26, 2019, 10:19:32

Titel: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: PaulB1970 am Juni 26, 2019, 10:19:32
Hallo liebe Community,

es gibt ein folgendes Problem:

Ich habe ein Navigationsformular mit einem Unterformular, in diesem Unterformular sind 3 weitere Unterformulare sowie Kombiboxen die ich als Filter benutze für die 3 Unterformulare.

Dies funktioniert auch alles super, jetzt ist das einzige Problem das ich durch das Filtern in den 1. beiden Tabellen bis auf eine Spalte, alles leere Spalten habe, welche ich gerne ausblenden lassen würde. Im Internet habe ich schon Codes gefunden, die ich nicht auf meine Access anwenden konnte. Dazu muss ich sagen das ich mittlerweile über sehr gute Kenntnisse mit Access und Sql verfüge jedoch nicht VBA erfahren bin.

Ich würde mich über Hilfe freuen

Mit freundlichen Grüßen
Paul
Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: DF6GL am Juni 26, 2019, 10:58:45
Hallo,

Zitatdurch das Filtern in den 1. beiden Tabellen bis auf eine Spalte, alles leere Spalten habe, welche ich gerne ausblenden lassen würde.

"in den 1. beiden Tabellen "  bezieht sich auf die Unterformulare, die leere Felder anzeigen?

Wenn so, dann evtl. so:

ZitatSub Form_Current()
Me!Feld1.Visible=not  Isnull(Me!Feld1)
Me!Feld2.Visible=not  Isnull(Me!Feld2)
.
.
End Sub

Dies funktioniert allerdings nicht erwartungsgemäß  in einem Endlosform.
Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: PaulB1970 am Juni 26, 2019, 12:22:01
Zitat"in den 1. beiden Tabellen "  bezieht sich auf die Unterformulare, die leere Felder anzeigen?

Ja genau, die Unterformulare sind Querys als Endlostabellen.

ZitatSub Form_Current()
Me!Feld1.Visible=not  Isnull(Me!Feld1)
Me!Feld2.Visible=not  Isnull(Me!Feld2)
.
.
End Sub

Müsste ich das dann als Button einfügen? oder als nach Aktualisierungsereignis direkt im jeweiligen Unterformular?

******edit****
Ich habe es jetzt einmal eingefügt.
Me!P0.Visible = Not IsNull(Me!P0)
Me!T1D1.Visible = Not IsNull(Me!T1D1)
Me!T1D2.Visible = Not IsNull(Me!T1D2)
Me!T1D3.Visible = Not IsNull(Me!T1D3)
Me!T1D4.Visible = Not IsNull(Me!T1D4)
Me!T1D5.Visible = Not IsNull(Me!T1D5)
Me!T1D6.Visible = Not IsNull(Me!T1D6)
End Sub


Jedoch kommt die Meldung, dass er das Feld P0 nicht kennt. Muss ich für Feld1 nicht die Spaltennamen  eintragen?

L.G. und vielen Dank für die schnelle Hilfe
Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: DF6GL am Juni 26, 2019, 12:50:45
Hallo,

recht unklar, was Du sagst:

Zitatdie Unterformulare sind Querys als Endlostabellen

Heißt, das, dass die Abfragen direkt mit Drag&Drop in ein Hauptform eingefügt wurden und es gar keine "(Endlos-)Formulare" sind?

Dann ist das ganze Unterfangen so nicht lösbar.

ZitatMüsste ich das dann als Button einfügen

Nein, der Code ist die Ereignisprozedur für das Form-Ereignis "Beim Anzeigen" (Form_Current).


ZitatJedoch kommt die Meldung, dass er das Feld P0 nicht kennt. Muss ich für Feld1 nicht die Spaltennamen  eintragen?

Du verwechselt vermutlich Abfragen, Tabellen/Abfrage-Felder, Formulare und Steuerlelemente.

Es müssen die Steuerelementnamen aus dem betroffenen (Unter-)Formular verwendet werden. Nur solche Steuerelemente (hier Textfelder) können auf diese Weise manipuliert werden.
Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: PaulB1970 am Juni 26, 2019, 12:57:19
So sieht ungefähr meine Access aus.

---------------------------------------------------------------------
Navigationskopf mit Unterpunkte
---------------------------------------------------------------------
Formular

Kombifeldfilter auf Abteilung


Qry 1(UFo 1)    Qry 3(UFo 2)   Qry 3(UFo 3)

Konto      -  Abt 1           Konto      -  Abt 1               Konto      -  Dif
--------------------         --------------------------       --------------------------   
Kosten     -  1                 Kosten     -   1                     Kosten -  0
Einahmen -   1                Einahmen    -    1                     Einahmen -  0
etc       - 1                 etc        -    1                     etc     -   0



Es gibt in UFo1+2 mehrere Abteilungen und durch den Kombifliter wird dann logischer weise nur eine Abteilung ausgewählt und die anderen werden leer. Diese will ich also ausblenden.
Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: PaulB1970 am Juni 26, 2019, 13:03:20
ZitatHeißt, das, dass die Abfragen direkt mit Drag&Drop in ein Hauptform eingefügt wurden und es gar keine "(Endlos-)Formulare" sind?

Dann ist das ganze Unterfangen so nicht lösbar.
Die Abfragen sind als eigene Formulare gespeichert(Endlosformulare) und dann als Unterformulare in einem nicht Endlosformular nebeneinander eingefügt. Dieses Formular habe ich dann per drag and drop im Navi gespeichert.
Zitat
Du verwechselt vermutlich Abfragen, Tabellen/Abfrage-Felder, Formulare und Steuerlelemente.

Es müssen die Steuerelementnamen aus dem betroffenen (Unter-)Formular verwendet werden. Nur solche Steuerelemente (hier Textfelder) können auf diese Weise manipuliert werden

Forms.F_00_01_Navigationsformular.Navigationsunterformular.Form.F_25_01_Finanz_Vergleich1!T1D1

Dann wäre das der Steuerelement Name oder?


Ist es besser verständlich jetzt?
Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: DF6GL am Juni 26, 2019, 13:54:14
Hallo,

nein,


der Steuerelementname wäre "T1D1"   in dem Formular ("Me") , in dem der Code abläuft.. 
Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: PaulB1970 am Juni 26, 2019, 14:29:56
Dann müsste es doch aber mit Sub Form_Current()
Me!T1.Visible = Not IsNull(Me!T1)
Me!T2.Visible = Not IsNull(Me!T2)
Me!T3.Visible = Not IsNull(Me!T3)
Me!T4.Visible = Not IsNull(Me!T4)
Me!T5.Visible = Not IsNull(Me!T5)
Me!T6.Visible = Not IsNull(Me!T6)
Me!P0.Visible = Not IsNull(Me!P0)
End Sub


funktionieren?
Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: DF6GL am Juni 26, 2019, 16:36:50
Hallo,

probier es aus!

Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: Beaker s.a. am Juni 26, 2019, 18:46:08
Hallo,
Wenn
Zitatein Navigationsformular mit einem Unterformular, in diesem Unterformular sind 3 weitere Unterformulare
fehlt hier IMO eine Ebene
Forms.F_00_01_Navigationsformular.Navigationsunterformular.Form.F_25_01_Finanz_Vergleich1!T1D1
"Forms.F_00_01_Navigationsformular" = Navi-Form
"Navigationsunterformular" = Navi-Ufo-Control
"Form" = (HFo-?)Formular im Navi-Ufo-Control
"F_25_01_Finanz_Vergleich1" müsste dann das UFo-Control im "Form" sein.
Um auf dessen Controls zugreifen zu können ist auch hier wieder das darge-
stellte Formular mit .Form zu referenzieren; - also
Forms.F_00_01_Navigationsformular.Navigationsunterformular.Form.F_25_01_Finanz_Vergleich1.Form!T1D1
Je nachdem in welchem Formular das dann abläuft kann die Referenz ab
diesem Formular mit "Me." abgekürzt werden.
Beispiel in "Form" (s.o.)
Me.F_25_01_Finanz_Vergleich1.Form!T1D1
läuft es im untersten UFo
Me!T1D1
auf dem Naviform
Me.Navigationsunterformular.Form.F_25_01_Finanz_Vergleich1.Form!T1D1

gruss ekkehard
Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: DF6GL am Juni 26, 2019, 20:17:46
Hallo,

der Code kann ja nur im entspr. Formular ablaufen, wenn es sein muss, halt in jedem der 3 (Unter-)Formulare eingebaut werden.

Vielleicht ist aber etwas ganz anderes gemeint:  Evtl. soll das Unterform(-Steuerelement)  ausgeblendet werden, wenn es gar keine DS (Abteilungen) bezgl. der Filterung zum Anzeigen gibt.
Titel: Re: Leere Spalten ausblenden Unterformular im Navigationf. Vba
Beitrag von: PaulB1970 am Juli 01, 2019, 12:53:08
Vielen Dank für eure Hilfe, ich probiere es mal aus und gebe dann Feedback.

VG Paul