helft mir mal bitte: ich m�chte in einer VBA-Prozedur alle Checkboxen des
Forms durchlaufen und deren Check-Status abfragen.
Habt ihr einen Ansaz f�r mich?
Viele Gr��e
Jan
Jan Lorenz:
> helft mir mal bitte: ich m�chte in einer VBA-Prozedur alle Checkboxen des
> Forms durchlaufen und deren Check-Status abfragen.
> Habt ihr einen Ansaz f�r mich?
For Each
Controls
ControlType
... reicht das als Ansatz?
Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm
Bitte keine eMails auf Newsgroup-Beitr�ge senden.
Jan Lorenz schrieb folgendes:
> helft mir mal bitte: ich m�chte in einer VBA-Prozedur alle
> Checkboxen des Forms durchlaufen und deren Check-Status abfragen.
> Habt ihr einen Ansaz f�r mich?
Dim ctl As control
For Each ctl In Me.Controls
If ctl.ControlType = acCheckBox Then
Debug.Print ctl.Value
End If
Next
Gru�
Gunter
--
__________________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com - http://www.AccessRibbon.de
http://www.ribboncreator.de
3. SQL Server-Entwickler-Konferenz - N�rnberg im Mai
http://www.donkarl.com/?SEK
"Gunter Avenius" <nos...@avenius.net> schrieb im Newsbeitrag
news:sbzylt2la7jq$.dlg@ID-300043.user.individual.de...
> Dim ctl As control
> For Each ctl In Me.Controls
> If ctl.ControlType = acCheckBox Then
> Debug.Print ctl.Value
> End If
> Next
Danke f�r den Ansatz. Genau so etwas suche ich. Aber leider funktioniert das
nicht: die Eigenschaft ctl.Value gibt es nicht.
Jan
"Jan Lorenz" <knar...@gmx.de> schrieb im Newsbeitrag
news:uHT1xoG1...@TK2MSFTNGP05.phx.gbl...
aber so gehts:
Dim ctl As Control
Dim ctl2 As CheckBox
For Each ctl In Me.Controls
If ctl.ControlType = acCheckBox Then
Set ctl2 = ctl
if ctl2.Value = -1 then ...
End If
Next
Viele Gr��e
Jan
Jan Lorenz schrieb folgendes:
Deine Access Version?
Zeige uns mal Deinen Code, welcher nicht funktioniert.
Jan Lorenz schrieb:
> "Jan Lorenz" <knar...@gmx.de> schrieb im Newsbeitrag
>> Danke f�r den Ansatz. Genau so etwas suche ich. Aber leider funktioniert das
>> nicht: die Eigenschaft ctl.Value gibt es nicht.
>> news:uHT1xoG1...@TK2MSFTNGP05.phx.gbl...
>
> aber so gehts:
> Dim ctl As Control
> Dim ctl2 As CheckBox
>
> For Each ctl In Me.Controls
> If ctl.ControlType = acCheckBox Then
> Set ctl2 = ctl
>
> if ctl2.Value = -1 then ...
> End If
> Next
Du h�ttest auch direkt ctl.Value verwenden k�nnen, da die
Objektreferenz von ctl auf das Checkbox-Element verweist.
"as Control" erfordert late binding. ctl.Value wird zwar �ber
IntelliSense nicht angeboten, sobald aber eine Checkbox-Instanz (oder
en anderes Steuerelement, das Value unterst�tzt) daran gebunden wird,
steht diese Eigenschaft zur Verf�gung.
Deine letzte Variante hat aber einen Vorteil: es ist nur ein einziger
Latebinding-Zugriff erforderlich. Ab /Set ctl2 = ctl/ l�uft alles �ber
Early binding ab. Damit vermeidest du Code-Fehler, da auf die korrekte
Verwendung der Methoden und Eigenschaften beim Kompilieren gepr�ft
werden kann.
mfg
Josef
--
EPT: (Access Error Prevention Table) http://access.joposol.com/
FAQ: (Access-FAQ von Karl Donaubauer) http://www.donkarl.com/
Zusᅵtzlich zu Josefs Erlᅵuterungen noch ein kleiner Warnhinweis:
Wenn das da oben bei dir funktioniert, hast du das Problem hier nicht,
aber grundsᅵtzlich sollte man bei solchen Durchlᅵufen berᅵcksichtigen,
dass Kontrollkᅵstchen auch in einer Optionsgruppe vorkommen kᅵnnen.
Dann haben sie wirklich keine Value-Eigenschaft.
Man kann dazu entweder den entsprechenden Fehler abfangen
oder z.B. prᅵfen, ob das Parent-Objekt eh das Formular ist:
If ctl.ControlType = acCheckBox And ctl.Parent.Name = Me.Name Then
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
3. SQL Server-Entwickler-Konferenz - Nᅵrnberg im Mai
"Gunter Avenius" <nos...@avenius.net> schrieb im Newsbeitrag
news:1izyyo8f...@ID-300043.user.individual.de...
> Deine Access Version?
> Zeige uns mal Deinen Code, welcher nicht funktioniert.
Vergesst es. Es funktioniert auch mit deiner Version. Was damit nicht geht,
ist das Intellisense, also ctl.Value zeigt er nicht an. Aber der Zugriff
funktioniert trotzdem. (Access 2003).
Jan