Bdd access : erreur 3265 élément non trouvé dans cette collection [Résolu]

Messages postés
211
Date d'inscription
mercredi 4 août 2004
Dernière intervention
18 octobre 2010
- - Dernière réponse : chaibat05
Messages postés
1884
Date d'inscription
samedi 1 avril 2006
Dernière intervention
20 novembre 2007
- 8 juil. 2006 à 12:59
Bonjour
cet fois je viens vers vous car j'ai un probleme avec ma base de donnée.
j'ai beaucoup galèré pour arrivé a faire quelque chose de simple avec les base de donnée access.
mais j'y arrive a peu prés mais j'ai un probleme.
en fait j'ai une listbox qui contient toutes les entré d'une table.
lorsque l'on clique dessus ca affiche le nom dans une textbox nom et le prenom dans le textbox prenom.
mon code marche impec lorsque je clique pour la premier fois sur une ligne de la listbox.
mais lorsque je clique sur une autre ligne de ma listbox pour changer de nom j'ai une erreur 3265 élément non trouvé dans cette collection.
voila le code de ma listbox_clic qui s'appel choix:
<hr />
Private Sub choix_Click()
choix1 = choix.Text

sql = "select * from nom where nom='" & choix1 & "' "
Set rs = db.OpenRecordset(sql, dbOpenSnapshot)

nom.Text = rs.Fields(nom)
prenom.Text = rs.Fields(prenom)
rs.Close

End Sub

<hr />si ca peu vous aidez voila le code lors du chargement du form:

<hr />Private Sub Form_Load()
Set db = OpenDatabase(App.Path & "\test.mdb")

sql = "select * from nom"
Set rs = db.OpenRecordset(sql, dbOpenSnapshot)

While Not rs.EOF

choix.AddItem rs.Fields("nom")
'choix.AddItem rs.Fields("nom") & " " & rs.Fields("prenom") '''Il ya un espace entre les 2 champs
rs.MoveNext
Wend

End Sub

<hr />
Quelqu'un vois de ou ca peu venir?
merci d'avance pour votre aide.
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Dernière intervention
18 octobre 2010
3
Merci
le probleme vient de la :

nom.Text = rs.Fields(nom)

il ne faut pas oublier les "":
nom.Text = rs.Fields("nom")

Dire « Merci » 3

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

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de lolpop
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
Salut :

après ton rs.Close
met Set rs = Nothing

Sinon, n'oublie pas de déclarer tes variables :

Dim choix1 As String, sql As String

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
Commenter la réponse de mortalino
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Dernière intervention
18 octobre 2010
0
Merci
d'accord merci beaucoup,
mais je n'ai jamais compris a quoi servait le fait de mettre =nothing.
ca ve dire qu'on vide la variable?
Commenter la réponse de lolpop
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Dernière intervention
18 octobre 2010
0
Merci
je viens de tester et le code me donne cela, mais j'ai toujours la même erreur:





<hr />
Private Sub choix_Click()
choix1 = choix.Text


sql = "select * from nom where nom='" & choix1 & "' " '''Remarqué la présence de ' obligatoire pour le bon fonctionnemnt
Set rs = db.OpenRecordset(sql, dbOpenSnapshot)


nom.Text = rs.Fields(nom)
prenom.Text = rs.Fields(prenom)
rs.Close
Set rs = Nothing


End Sub





<hr />lors du déboguage l'erreur se trouve la :

<hr />
nom.Text = rs.Fields(nom)
<hr />
Commenter la réponse de lolpop
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
Alors c'est peut-etre les [] au lieu des '.
Ca vaut le coup d'essayer.

Le nothing, c'est pour vider la mémoire de ton objet instancié.

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
Commenter la réponse de mortalino
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Dernière intervention
18 octobre 2010
0
Merci
j'ai essayé sans résultat non plus.
j'ai le chique pour trouvé des problemes c'est pas croyable lol.
Commenter la réponse de lolpop
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
0
Merci
Salut

Apparament cela est normal comme erreur si on regarde la faq access

Ton enregistrement n'existe pas dans ta table.
--> Aucune données n'est renvoyées

Moi je te conseillerais d'attaquer ta base par ADO à la place de DAO.
Plus d'articles sur ce moteur
et moteur plus objet que DAO et plus rapide

http://access.developpez.com/faq/?page=user
Commenter la réponse de nhervagault
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Dernière intervention
18 octobre 2010
0
Merci
et pourtant l'enregistrement existe car en fait lorsque je clique sur nimporte quel ligen la premier fois ca marche , et si je reclique sur la meme ligne une seconde fois j'ai le message d'érreur.

pour le ADO ou DAO je ne sais pas coment ca marche, j'ai galéré pour comprendre poues les base de donnée et je suis tombé sur un site qui expliqué cette methode et cela marché chez moi donc je suis resté comme ca.
mais personellement je n'ai rien trouvé sur le net qui m'explique "compréhensiblementé comment on travail avec une bdd.
je suis long a la détente je sais je sais :)
Commenter la réponse de lolpop
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
0
Merci
Salut

Regardes en faisant un rs.movefirst
avant la lecture pour position le curseur
sur le premier enregistrement

(non testé vb6 absent du pc)
Commenter la réponse de nhervagault
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Dernière intervention
18 octobre 2010
0
Merci
toujours pareil la meme erreur, j'ai teste avec une valeur qui n'est pas dans ma base et je n'ai pas la meme ereur.
Commenter la réponse de lolpop
Messages postés
1884
Date d'inscription
samedi 1 avril 2006
Dernière intervention
20 novembre 2007
0
Merci
Salut.
L' erreur: "Elément non trouvé dans cette collection" signifie que le nom du champ n' éxiste pas dans la liste des champs de ta table, et non sa valeur.Si c' étatit une question d' enregistrement tu auras plutot "Pas d' enregistrement courant.
Verifie l' orthographe du nom donné à ton champ.Si ça marche toujours pas essaye plutot:

nom.Text = rs.Fields("nom")
prenom.Text = rs.Fields("prenom")

ou bien (//et c'est la meilleure façon de procéder à mon avis)

nom.Text = rs.Fields![nom]
prenom.Text = rs.Fields![prenom]
A+
Commenter la réponse de chaibat05

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.