radsie
Messages postés37Date d'inscriptionmardi 24 août 2004StatutMembreDernière intervention 2 décembre 2010
-
5 août 2010 à 13:07
NSUADI
Messages postés540Date d'inscriptionmardi 4 août 2009StatutMembreDernière intervention 1 février 2013
-
6 août 2010 à 03:22
Bonjour
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
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 5 août 2010 à 15:35
Salut,
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.
radsie
Messages postés37Date d'inscriptionmardi 24 août 2004StatutMembreDernière intervention 2 décembre 2010 5 août 2010 à 13:53
Infos supplementaire
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 !
NSUADI
Messages postés540Date d'inscriptionmardi 4 août 2009StatutMembreDernière intervention 1 février 20132 6 août 2010 à 03:22
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