Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Kontrollkästchen - Felder einblenden

1,423 views
Skip to first unread message

rw

unread,
Jul 29, 2010, 3:10:19 AM7/29/10
to
Hallo,
ich möchte eine Gruppe von Feldern einblenden oder ausblenden je nachdem ob
das Kontrollkästchen angehakt ist oder nicht.
Das ganze sollte nicht nur beim Klicken sondern auch beim durchscrollen
durch die Daten funktionieren.

Wer hat eine Idee?


Peter Doering

unread,
Jul 29, 2010, 3:25:58 AM7/29/10
to
Hallo,

rw wrote:

> ich möchte eine Gruppe von Feldern einblenden oder ausblenden je nachdem ob
> das Kontrollkästchen angehakt ist oder nicht.

Schau dir in der Hilfe die Eigenschaft .Visible an. Du musst das fuer jedes
Feld tun. Beispiel:

Dim blnVisible As Boolean
Dim I As Long

If Me!MeinKontrollkaestchen.Value = True Then
blnVisible = True
Else
blnVisible = False
End If

For I = 1 To 10
Me.Controls("MeinFeld" & Format(I, "0")).Visible = blnVisible
Next I

(Luftcode)



> Das ganze sollte nicht nur beim Klicken sondern auch beim durchscrollen
> durch die Daten funktionieren.

Was meinst du damit?

Gruss - Peter

--
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Karl Donaubauer

unread,
Jul 29, 2010, 3:34:52 AM7/29/10
to

Ich nehme an, du meinst ein Endlosformular.
Ein- und Ausblenden wird da schwierig bis unmöglich.
Was hingegen einfach funktioniert, ist das Aktivieren/Deaktivieren.
Das Vorgehen hängt etwas von deiner unbekannten Access-Version
ab. Ich gehe von A00-A03 aus:

- markiere in Entwurfsansicht die Textfelder (?)
- stelle ihre Eigenschaft "Aktiviert" auf Nein
- wähle den Menüpunkt (oder Ribbon) Format - Bedingte Formatierung
- im Dialog der BF wählst/schreibst du als Bedingung
Ausdruck ist [DeinKontrollkästchen]=True

- in der Formatierungszeile des Dialoges befindet sich ganz rechts
das Zeichen für "Aktiviert", das standardmäßig eh auf Ja steht

--> Du hast fertig!

Wenn es unbedingt - vom visuellen Anschein her - das
Ein/Ausblenden sein muss, kannst du dich mit der BF
und dem Einfärben der Textfelder in Hintergrundfarbe
beschäftigen. Das funktioniert aber nur so lala.

--
Servus
Karl
****************
http://www.donkarl.com Access-FAQ
http://www.donkarl.com/?aek 13. Access-Entwickler-Konferenz
25./26.09.2010 in Nürnberg, 16./17.10.2010 in Hannover


rw

unread,
Jul 29, 2010, 3:44:42 AM7/29/10
to
Ich präzisiere etwas.
Das Kontrollkästchen sowie die ein-/auszublendenden Felder befinden sich in
einem Eingabeformular.
Wenn ich nun das Kontrollkästchen anhake sollen weitere Eingabefelder
angezeigt werden, wenn ich aber einfach nur durch die Datensätze
durchscrolle sollen je nachdem ob der Haken im jeweiligen Datensatz gesetzt
ist oder nicht, die Felder ein oder ausgeblendet werden.
Wenn es nur um die Eingabe ginge, könnte ich ja sonst Beim Klicken den Code:
Me!Feld.Visible = Not Me!Feld.Visible verwenden.

"Peter Doering" <nos...@doering.org> schrieb im Newsbeitrag
news:8bcooj...@mid.individual.net...

> > Das ganze sollte nicht nur beim Klicken sondern auch beim durchscrollen
> > durch die Daten funktionieren.
>
> Was meinst du damit?
>

Karl Donaubauer

unread,
Jul 29, 2010, 3:51:49 AM7/29/10
to
rw wrote:
>
> "Peter Doering" <nos...@doering.org> schrieb im Newsbeitrag
> news:8bcooj...@mid.individual.net...
>
>>> Das ganze sollte nicht nur beim Klicken sondern auch beim
>>> durchscrollen durch die Daten funktionieren.
>>
>> Was meinst du damit?
> ...

> Ich präzisiere etwas.
> Das Kontrollkästchen sowie die ein-/auszublendenden Felder befinden
> sich in einem Eingabeformular.
> Wenn ich nun das Kontrollkästchen anhake sollen weitere Eingabefelder
> angezeigt werden, wenn ich aber einfach nur durch die Datensätze
> durchscrolle sollen je nachdem ob der Haken im jeweiligen Datensatz
> gesetzt ist oder nicht, die Felder ein oder ausgeblendet werden.
> Wenn es nur um die Eingabe ginge, könnte ich ja sonst Beim Klicken
> den Code: Me!Feld.Visible = Not Me!Feld.Visible verwenden.

Entscheidend ist, ob es sich um ein Einzel- oder Endlosformular handelt,
d.h. was in der Eigenschaft "Standardansicht" eingestellt ist bzw. ob
du nur einen oder mehrere Datensätze gleichzeitig im Formular siehst.

rw

unread,
Jul 29, 2010, 3:57:51 AM7/29/10
to

"Karl Donaubauer" <NoS...@donkarl.com> schrieb im Newsbeitrag
news:8bcp8q...@mid.individual.net...

> Ich nehme an, du meinst ein Endlosformular.
> Ein- und Ausblenden wird da schwierig bis unmöglich.

Nein ist ein normales Eingabe- aber kein Endlosformular.

> Was hingegen einfach funktioniert, ist das Aktivieren/Deaktivieren.
> Das Vorgehen hängt etwas von deiner unbekannten Access-Version
> ab. Ich gehe von A00-A03 aus:

Ich verwende Access 2010

> - markiere in Entwurfsansicht die Textfelder (?)
> - stelle ihre Eigenschaft "Aktiviert" auf Nein
> - wähle den Menüpunkt (oder Ribbon) Format - Bedingte Formatierung
> - im Dialog der BF wählst/schreibst du als Bedingung
> Ausdruck ist [DeinKontrollkästchen]=True
>
> - in der Formatierungszeile des Dialoges befindet sich ganz rechts
> das Zeichen für "Aktiviert", das standardmäßig eh auf Ja steht

Danke, werde das gleich mal ausprobieren.


rw

unread,
Jul 29, 2010, 4:03:21 AM7/29/10
to

"Karl Donaubauer" <NoS...@donkarl.com> schrieb im Newsbeitrag
news:8bcq8k...@mid.individual.net...

> Entscheidend ist, ob es sich um ein Einzel- oder Endlosformular handelt,
> d.h. was in der Eigenschaft "Standardansicht" eingestellt ist bzw. ob
> du nur einen oder mehrere Datensätze gleichzeitig im Formular siehst.

Einzelformular
sehe jeweils 1- Datensatz wird aber später noch mit einer Tabelle ergänzt wo
ich dann mehrere Datensätze sehen kann


Karl Donaubauer

unread,
Jul 29, 2010, 4:08:24 AM7/29/10
to
rw wrote:
> "Karl Donaubauer" <NoS...@donkarl.com> schrieb im Newsbeitrag
>
>> Entscheidend ist, ob es sich um ein Einzel- oder Endlosformular
>> handelt, d.h. was in der Eigenschaft "Standardansicht" eingestellt
>> ist bzw. ob
>> du nur einen oder mehrere Datensätze gleichzeitig im Formular siehst.
>
> Einzelformular
> sehe jeweils 1- Datensatz wird aber später noch mit einer Tabelle
> ergänzt wo ich dann mehrere Datensätze sehen kann

Wenn die Eigenschaft "Standardansicht" des Formulares auf
"Einzelformular" eingestellt ist, dann kannst du den Code mit

.Visible = False
etc.

im Ereigniscode "Beim Anzeigen" des Formulares verwenden.

Peter Doering

unread,
Jul 29, 2010, 6:00:18 AM7/29/10
to
Hallo,

rw wrote:
> "Peter Doering" ...


>
>>> Das ganze sollte nicht nur beim Klicken sondern auch beim durchscrollen
>>> durch die Daten funktionieren.
>>
>> Was meinst du damit?
>

> Ich präzisiere etwas.
> Das Kontrollkästchen sowie die ein-/auszublendenden Felder befinden sich in
> einem Eingabeformular.
> Wenn ich nun das Kontrollkästchen anhake sollen weitere Eingabefelder
> angezeigt werden, wenn ich aber einfach nur durch die Datensätze
> durchscrolle sollen je nachdem ob der Haken im jeweiligen Datensatz gesetzt
> ist oder nicht, die Felder ein oder ausgeblendet werden.

Ok, der einfachste Ansatz ist die bedingte Formatierung fuer aktiv/inaktiv,
wie von Karl beschrieben. Da es sich um ein Einzelformular handelt, waere
auch das Umschalten von .Visible per VBA moeglich. Das relevante Ereignis
fuer den DS-Wechsel ist Form_Current, in der dt. Version heisst das in den
Eigenschaften wohl "Bei Anzeige".

Gruss - Peter

--

Winfried Sonntag

unread,
Jul 29, 2010, 12:05:36 PM7/29/10
to
Am 29.07.2010 schrieb rw:

> ich möchte eine Gruppe von Feldern einblenden oder ausblenden je nachdem ob
> das Kontrollkästchen angehakt ist oder nicht.
> Das ganze sollte nicht nur beim Klicken sondern auch beim durchscrollen
> durch die Daten funktionieren.

Beim Form_Current wird die Funktion aufgerufen. Du mußt die
Eigenschaft MARKE in den Feldern setzen.

Call SteuerelementBearbeitungSichtbar("TB", False, Forms!Deinformular)

Public Function SteuerelementBearbeitungSichtbar(Markierung As String, Sichtbar As Boolean, frm As Form) As String
On Error GoTo err_SteuerelementBearbeitung:

Dim Feldname As String, Steuerelement As Control

For Each Steuerelement In frm.Controls
If Steuerelement.Tag = Markierung Then
Steuerelement.Visible = Sichtbar
End If
Next Steuerelement

exit_SteuerelementBearbeitung:
Exit Function
err_SteuerelementBearbeitung:
MsgBox Err.Number & " " & Err.Description & " " & mModName & ".SteuerelementBearbeitung(SteuerelementBearbeiten As String, Markierung As String, Sichtbar As Boolean) As String"
Resume exit_SteuerelementBearbeitung

End Function


Servus
Winfried
--
Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
Community Forums NNTP Bridge: http://communitybridge.codeplex.com/
Access-FAQ: http://www.donkarl.com/AccessFAQ.htm
Access-Stammtisch: http://www.access-muenchen.de

Karl Donaubauer

unread,
Jul 29, 2010, 3:27:30 PM7/29/10
to
Winfried Sonntag wrote:
> Am 29.07.2010 schrieb rw:
>
>> ich möchte eine Gruppe von Feldern einblenden oder ausblenden
>> je nachdem ob das Kontrollkästchen angehakt ist oder nicht.
>> Das ganze sollte nicht nur beim Klicken sondern auch beim
>> durchscrollen durch die Daten funktionieren.
>
> Beim Form_Current wird die Funktion aufgerufen. Du mußt die
> Eigenschaft MARKE in den Feldern setzen.
>
> Call SteuerelementBearbeitungSichtbar("TB", False, Forms!Deinformular)
> ...

...und kurze Varianten findest du hier: www.donkarl.com?FAQ6.5

Winfried Sonntag

unread,
Jul 29, 2010, 4:51:50 PM7/29/10
to
Am 29.07.2010 schrieb Karl Donaubauer:

> Winfried Sonntag wrote:
>> Am 29.07.2010 schrieb rw:
>>
>>> ich möchte eine Gruppe von Feldern einblenden oder ausblenden
>>> je nachdem ob das Kontrollkästchen angehakt ist oder nicht.
>>> Das ganze sollte nicht nur beim Klicken sondern auch beim
>>> durchscrollen durch die Daten funktionieren.
>>
>> Beim Form_Current wird die Funktion aufgerufen. Du mußt die
>> Eigenschaft MARKE in den Feldern setzen.
>>
>> Call SteuerelementBearbeitungSichtbar("TB", False, Forms!Deinformular)
>> ...
>
> ...und kurze Varianten findest du hier: www.donkarl.com?FAQ6.5

Ich hab auch nur *eine* Zeile mehr als Du. ;)

0 new messages