Rechercher : dans
Par :

Access: rechercher 1 valeur dans 1 collection

Dernière réponse le 28 nov 2008 à 20:19:19 GauthierS, le 28 nov 2008 à 12:04:41 
 Signaler ce message aux modérateurs

Bonjour,

J'ai essayé l'exemple qui est dans l'aide d'access 2003:

1. création d'un formulaire avec listbox "MyCollection"
2. ajout d'évenement lors du chargement:
---------------------------------------------------------------------------------
Private Sub Form_Load()
Dim Found, MyObject, MyCollection

' Initialise une variable.
Found = False

' Se répète à chaque élément.
For Each MyObject In MyCollection

' Si Text est égal à "Bonjour".
If MyObject.Text = "Bonjour" Then

' Attribue la valeur True à Found.
Found = True

Exit For ' Quitte la boucle.
End If

Next
End Sub
---------------------------------------------------------------------------------
Mais je reçois l'erreur suivante:
---------------------------------------------------------------------------------
Erreur d'exécution '13'
Incompatibilité de type
---------------------------------------------------------------------------------
Merci d'avance

Configuration: Windows XP
Firefox 3.0.4

Meilleures réponses pour « Access: rechercher 1 valeur dans 1 collection » dans :
Télécharger Zotero VoirZotero est un puissant moteur de recherche de collecte de données sur le web (citations, texte complet, pages web, images et autres). Par la suite vous pouvez partager les données de différentes manières. Une extension du navigateur Firefox, Zotero...

1

toto, le 28 nov 2008 à 13:27:40

Bonjour

Si MyCollection est une listbox, elle ne devrait pas être une variable locale de ton sub.
De plus tu devrais boucler sur MyCollection.List, pas simplement MyCollection

Répondre à toto

2

 GauthierS, le 28 nov 2008 à 20:19:19

J'ai supprimé la déclaration de variable et nommé correctement le contôle:
------------------------------------------------------------­---------------------
Private Sub Form_Load()
Dim Found, MyObject

' Initialise une variable.
Found = False

' Se répète à chaque élément.
For Each MyObject In Me.MyCollection

' Si Text est égal à "Bonjour".
If MyObject.Text = "Bonjour" Then

' Attribue la valeur True à Found.
Found = True
Exit For ' Quitte la boucle.
End If
Next
End Sub
---------------------------------------------------------------------------------
Je reçois maintenant le message d'erreur suivant:
---------------------------------------------------------------------------------
Erreur d'exécution 438
Propriété ou méthode non gérée par cet objet
---------------------------------------------------------------------------------
J'ai essayé en ajoutant la propriété .list à Me.MyCollection, mais ça renvoie une erreur de compilation "Membre de méthode ou de données introuvable".

Répondre à GauthierS