Bdd access : erreur 3265 élément non trouvé dans cette collection

Résolu
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010 - 5 juil. 2006 à 21:00
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre 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.

11 réponses

lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010
6 juil. 2006 à 11:15
le probleme vient de la :

nom.Text = rs.Fields(nom)

il ne faut pas oublier les "":
nom.Text = rs.Fields("nom")
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
5 juil. 2006 à 21:52
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 !
0
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010
5 juil. 2006 à 22:10
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?
0
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010
5 juil. 2006 à 22:15
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 />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
5 juil. 2006 à 22:24
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 !
0
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010
5 juil. 2006 à 23:09
j'ai essayé sans résultat non plus.
j'ai le chique pour trouvé des problemes c'est pas croyable lol.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
5 juil. 2006 à 23:21
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
0
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010
5 juil. 2006 à 23:29
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 :)
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
5 juil. 2006 à 23:49
Salut

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

(non testé vb6 absent du pc)
0
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010
5 juil. 2006 à 23:57
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.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
8 juil. 2006 à 12:59
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+
0
Rejoignez-nous