{Access} .EOF

Résolu
moiced59 Messages postés 1161 Statut Membre -  
moiced59 Messages postés 1161 Statut Membre -
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
Configuration: Windows XP
Firefox 3.0.15

14 réponses

  1. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Ta base n'est pas décrite :

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

    ou

    Set nomm = currentdb.OpenRecordset("perso", dbOpenTable)
    1
  2. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  3. moiced59 Messages postés 1161 Statut Membre 60
     
    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
  4. moiced59 Messages postés 1161 Statut Membre 60
     
    g testé mais en vain:

    erreur sur : nomm.MoveFirst

    Membre de methode ou de donné introuvable

    merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. moiced59 Messages postés 1161 Statut Membre 60
     
    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
  7. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  8. moiced59 Messages postés 1161 Statut Membre 60
     
    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
  9. moiced59 Messages postés 1161 Statut Membre 60
     
    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
  10. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  11. moiced59 Messages postés 1161 Statut Membre 60
     
    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
  12. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  13. moiced59 Messages postés 1161 Statut Membre 60
     
    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
  14. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    pas tout compris... tu peux poster le code ?
    0
  15. moiced59 Messages postés 1161 Statut Membre 60
     
    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