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

Résolu
Signaler
Messages postés
10
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
18 mars 2005
-
Messages postés
10
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
18 mars 2005
-
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

Messages postés
10
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
18 mars 2005

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
437
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
10 août 2010
2
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.
Messages postés
144
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
17 juin 2006

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 --