Wer hat eine Idee?
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
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
"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?
>
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.
> 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.
> 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.
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
--
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
...und kurze Varianten findest du hier: www.donkarl.com?FAQ6.5
Ich hab auch nur *eine* Zeile mehr als Du. ;)