{Access} .EOF

Résolu/Fermé
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 - 7 nov. 2009 à 18:28
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 - 8 nov. 2009 à 11:39
Bonjour,

j aimerais ds un formulaire creer un bouton pour pouvoir naviguer ds mes enregistrement

je comprend pas tte la synthax du .EOF j'ai testé un code mais en vain:
mon code :

Dim dbs As Database
Dim nom As DAO.Recordset
Set nomm = dbs.OpenRecordset("perso", dbOpenTable)

nom.MoveFirst
With nomm

Do Until .EOF
If Me.nom = "dupond" Then
Me.age = 25
Else: Me.age = 1000

End If
.MoveNext
Loop

End With
End sub

si quelqu un pe m expliquer ou est le probleme et surtt m'expliquer pr que je puisse le refaire moi meme


Merci a tous

14 réponses

blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
7 nov. 2009 à 22:11
Ta base n'est pas décrite :

set dbs = currentdb
Set nomm = dbs.OpenRecordset("perso", dbOpenTable)

ou

Set nomm = currentdb.OpenRecordset("perso", dbOpenTable)
1
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
7 nov. 2009 à 20:17
Salut,

déjà, tu ne dis pas où est l'erreur, donc ça va pas être facile.

Mais bon, deux ou trois petites choses :

ton recordset est nommé nomm, ensuite tu le manipules avec nom ou nomm, ça va pas le faire !

je te propose un truc comme ça :
nomm.MoveFirst
while not nomm.EOF
if nomm!champ1 = ....
...
end if
nomm.MoveNext
wend
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
7 nov. 2009 à 21:30
non c moi qui est voulu simplifier en ne mettant que nom mais j en ai oublié désolé je vais essayé ta proposition
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
7 nov. 2009 à 21:35
g testé mais en vain:

erreur sur : nomm.MoveFirst

Membre de methode ou de donné introuvable

merci
0

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

Posez votre question
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
8 nov. 2009 à 10:02
bonjour

merci de ton aide

j'obtien une erreur sur :

Set nomm = dbs.OpenRecordset("perso", dbOpenTable)

utilisation incorrect de le propriete

G un formulaire en mode continue basé sur une table appelé perso et je voudrais que qd mon champ nomm est = ... .. then .......
else
......

je sais que c possible par une requete mais je veux utiliser la fonction .eof merci bcp
0
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
8 nov. 2009 à 10:17
Le fait que ce soit un formulaire ne change rien, le recordset manipule des données de type table/requête.

Essaye avec un dim nomm as recordset...
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
8 nov. 2009 à 10:25
ha ca passe mieux!!!!!!!!!!!! mais ya une ereeur plus loin je remet le code:

Dim dbs As Database
Dim nomm As Recordset
Set dbs = CurrentDb
Set nomm = dbs.OpenRecordset("perso", dbOpenTable)


nomm.MoveFirst
While Not nomm.EOF
If nomm = "dupond" Then l'erreur se situe ici : INCOMPATIBILITE de type sur le nomm
Me.age = 25
Else: Me.age = 1000

End If
nomm.MoveNext
Wend


merci a toi
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
8 nov. 2009 à 10:42
re

g remplacé le code par nomm = '"dupon"d" par me.nomm

le code fonctionne mais le nomm.movenext ne va pas car il ne fais que l enregistrement sur lequel je suis
0
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
8 nov. 2009 à 10:57
c'est normal, le me.nom fait réference à un champ d'un formulaire, pas à un champ du recordset.

le champ du recordset, c'est nomm!champ...

J'ai quand même l'impression que tu confonds formulaire et recordset : un formulaire ne se parcours pas comme un recordset.

Tu veux faire quoi, au juste ?
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
8 nov. 2009 à 11:01
bah si tu veux g un formulaire en mode continue

j'ai des champ nom prenom age ........
g creer un bouton qui dis que si le nom est intel alors l'age est .... sinon l'age devien intel

je sais qu une requete ferais l affair mais je veux travailler sur les recordset et .eof

merci de m'aider
0
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
8 nov. 2009 à 11:16
ben voui, mais il va falloir faire un refresh du formulaire, après la mise à jour.

en mode continu, tu ne pourras pas parcourir ton formulaire avec un recordset, tu n'agiras que sur l'enregistrement courant.

un recordset va agir sur les données source du formulaire, pour autant qu'elles sont affichées dans le formulaire.
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
8 nov. 2009 à 11:20
re


alors g ecouté ce que tu ma dis g dc remplacé mon nomm.movenext par recordset.movenext et la tout fonctionne sauf que qd j arrive au dernier enregistrement g un message d erreur qui dis qu il ne trouve pas l enregistrement normal !!!!
d dc remplacé tt mes nomm.move ...
par des recordset.move... et voila tout fonctionne merci!!!!!!!!!!!!!!!!
0
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
8 nov. 2009 à 11:32
pas tout compris... tu peux poster le code ?
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
8 nov. 2009 à 11:39
voici le code

Dim dbs As Database
Dim nomm As Recordset
Set dbs = CurrentDb
Set nomm = dbs.OpenRecordset("perso", dbOpenTable)


Recordset.MoveFirst
While Not Recordset.EOF
Recordset.MoveNext
If Me.nomm = "dupond" Then
Me.age = 25

Else: Me.age = 1000


End If

Wend
0