Contrôler l'existance d'un contrôle dans un formulaire

Résolu
loots007 Messages postés 10 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 18 mars 2005 - 29 juil. 2004 à 11:53
loots007 Messages postés 10 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 18 mars 2005 - 5 août 2004 à 10:17
Bonjour,

Voici ma question. J'ai crée un boucle qui me permet de cocher toutes les cases à cocher dans un formulaire via une requête (strlisteMP). Mais il arrive que le résultat renvoyé par ma requête à savoir un nombre ne corresponde pas à une seule case à cocher de mon formulaire (mes cases à cocher étant dénommées de la manière suivante : MC1 , MC2, ...).
Bref, je voudrais pouvoir tester l'existance de la case à cocher puis appliquer mon résultat si elle existe.

Exemple :

Set ListeMotCléFiche = db.OpenRecordset(strListeMP)
If ListeMotCléFiche.RecordCount <> 0 Then
Do Until ListeMotCléFiche.EOF
If Me.Controls("MC" & ListeMotCléFiche("IDModProd")).exist Then 'J'ai mis .exist pour montrer que je veux tester l'existance du contrôle sur le formulaire'
Me.Controls("MC" & ListeMotCléFiche("IDModProd")) = True
End if
ListeMotCléFiche.MoveNext
Loop
ListeMotCléFiche.Close
End If

Merci d'avance

3 réponses

loots007 Messages postés 10 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 18 mars 2005
5 août 2004 à 10:17
Voilà, j'ai trouvé. La méthode :

If Not Me.Controls("MC" & ListeMotCléFiche("IDModProd")) Is Nothing Then

Ne fonctionne pas, alors j'ai ajouté un code pour gérer l'erreur :

on error resume next

Merci
3
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
29 juil. 2004 à 14:03
Ceci devrait marcher
Set ListeMotCléFiche =  db.OpenRecordset(strListeMP)
If ListeMotCléFiche.RecordCount <> 0 Then
Do Until ListeMotCléFiche.EOF
If  Not  Me.Controls("MC" & ListeMotCléFiche("IDModProd")) Is Nothing Then
Me.Controls("MC" & ListeMotCléFiche("IDModProd"))  = True
End if
ListeMotCléFiche.MoveNext
Loop
ListeMotCléFiche.Close
End If


Au pire tu places une gestion d'erreur spécifique pour ta boucle.
0
stabe Messages postés 144 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 17 juin 2006
29 juil. 2004 à 14:13
Bonjour,

Tu peux indexer tes cases à cocher.

Mettons que tu en aies 3 sur ton formulaire. La 1ère s'appelle donc MC(0), la 2ème s'appelle MC(1) et la 3ème MC(2).

Ton code devient alors :

Set ListeMotCléFiche = db.OpenRecordset(strListeMP)
While Not ListeMotCléFiche.EOF
If ListeMotCléFiche("IDModProd")) <= MC.count Then
MC(ListeMotCléFiche("IDModProd")-1).value =1
End if
ListeMotCléFiche.MoveNext
Wend
ListeMotCléFiche.Close

-- stabe --
0
Rejoignez-nous