hi leute
ich stehe vor einem problem, und zwar wollte ich wissen, ob es möglich ist in einem click ereigniss auf ein anderes click ereigniss zu zugreifen???
ich habe 40 check boxen (chk_1 bis chk_40) die je zu 4er blöcken gezeigt werden. bei diesen blöcken kann man: ja, eher ja, eher nein oder nein anklicken.
jedes mal wenn man auf den "weiter" button klickt, kommt der nächste 4er block, doch sobald ein kästchen angeklickt wird sollen die anderen 3 auf "enabled = false" gesetzt werden.
ich habe das bis jetzt über die einzelnen click ereignisse der chekc boxen gelöst. doch ist das sehr viel schreibarbeit.
Private Sub chk_1_Click()
chk_auswahl chk_1, chk_2, chk_3, chk_4
End Sub
Private Sub chk_2_Click()
chk_auswahl chk_2, chk_1, chk_3, chk_4
End Sub
Private Sub chk_3_Click()
chk_auswahl chk_3, chk_1, chk_2, chk_4
End Sub
Private Sub chk_4_Click()
chk_auswahl chk_4, chk_1, chk_2, chk_3
End Sub und so weiter bis zum 40sten
chk_auswahl ist:
Sub chk_auswahl(name1 As Object, name2 As Object, name3 As Object, _
name4 As Object)
If name1.Value = cAktiviert Then
name2.Enabled = False
name3.Enabled = False
name4.Enabled = False
Else
name2.Enabled = True
name3.Enabled = True
name4.Enabled = True
End If
End Sub aber jetzt habe ich mir gedacht ob das nicht anderst funktionieren könnte. und zwar so, dass ich im click ereigniss des weiter button auf die click ereignisse der check boxen zugreifen. aber so wie ich das gemacht habe funktioniert das ganze nicht!!!!
aber seht selbst
Private Sub cmd_weiter_Click()
For s = 1 To 40
If Me.Controls("chk_" & CStr(s) & "_Click()") Then
For t = 1 To 40 Step 4
If Me.Controls("chk_" & CStr(t)).Value = cAktiviert Then
chk_auswahl Me.Controls("chk_" & CStr(t)), Me.Controls _
("chk_" & CStr(t + 1)), Me.Controls("chk_" & CStr(t + 2)) _
, Me.Controls("chk_" & CStr(t + 3))
Exit For
End If
Next t
For u = 2 To 40 Step 4
If Me.Controls("chk_" & CStr(u)).Value = cAktiviert Then
chk_auswahl Me.Controls("chk_" & CStr(t + 1)), Me.Controls _
("chk_" & CStr(t)), Me.Controls("chk_" & CStr(t + 2)) _
, Me.Controls("chk_" & CStr(t + 3))
Exit For
End If
Next u
For v = 1 To 40 Step 4
If Me.Controls("chk_" & CStr(v)).Value = cAktiviert Then
chk_auswahl Me.Controls("chk_" & CStr(v + 2)), Me.Controls _
("chk_" & CStr(v)), Me.Controls("chk_" & CStr(v + 1)) _
, Me.Controls("chk_" & CStr(v + 3))
Exit For
End If
Next v
For w = 2 To 40 Step 4
If Me.Controls("chk_" & CStr(w)).Value = cAktiviert Then
chk_auswahl Me.Controls("chk_" & CStr(w + 3)), Me.Controls _
("chk_" & CStr(w)), Me.Controls("chk_" & CStr(w + 1)) _
, Me.Controls("chk_" & CStr(w + 2))
Exit For
End If
Next w
End If
Next s
End Sub geht das nur so wie oben, oder habt ihr eine bessere lösung????
schon mal danke im voraus
mfg bart |