Voila, j'ai besoin d'un coup de main sur un petit problème.
********************
Enoncé du problème *
********************
Je dispose de 7 checkbox nommé Check_B_Lundi à Check_B_Dimanche
J'ai un bouton [Enregistrer] qui va me permettre d'enregistrer plusieurs champs dans un table
Si l'utilisateur clic sur plusieurs CheckBox Ex : Lundi,Mardi,Mercredi , le bouton Enregistrer devra creer 3 enregistrements ou mettre à jour 3 enregistrements.
Comment procederiez-vous pour eviter de faire 7 fois le même code ?
Sachant que le seul paramettre qui va bougé est en faite le 'Jour'
J'avais pensé faire une boucle 7 fois et passer les 7 checkbox en revu
à l'aide d'un index de 1 à 7
For IndexA= 1 to 7
select Case IndexA
Case 1
JourSemaine=1
if Check_B_Lundi.checked=False
Exit Sub
end if
Case 2
JourSemaine=2
Je pense qu'une simple boucle avec la collection 'Controls' de l'objet conteneur suffit.
For Each C As CheckBox In Me.Controls
If C.Checked Then
Select Case C.Name
Case "Check_B_Lundi"
'Requête SQL Lundi...
Case "Check_B_Mardi"
'Requête SQL Mardi...
Case ...
End Select
End If
Next
Bien entendu l'exemple ci-dessus n'est valable que si le formulaire ne comporte que des CheckBox, pour le reste il suffit de placer ceux-ci dans un contrôle conteneur ou bien de filtrer avec TypeOf.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
J'ai essayé le controle CheckListBox mais j'ai 2 objections à utiliser ce contrôle :
- Le premier est que les CheckBox à l'interieur sont à la suite les un des autres
et on ne peut que changer la police.
Si je veux espacer les checkBox dans le sens vertical => Impossible
- La deuxieme chose c'est qu'il n'accepte pas la multiselection !
Comme l'a dit Mayzz,si il y a d'autres contrôles dans le formulaire tu devras les filtrer avec TypeOf en faisant comme suit:
For Each C As CheckBox In Me.Controls.OfType(Of CheckBox)()
If C.Checked Then
Select Case C.Name
Case "Check_B_Lundi"
'Requête SQL Lundi...
Case "Check_B_Mardi"
'Requête SQL Mardi...
Case ...
End Select
End If
Next
ça t'évitera certaines erreurs(Exceptions) lors de l'exécution
Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0