Problème de requete openrecordset [Résolu]

Signaler
Messages postés
41
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2008
-
Messages postés
41
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2008
-
Bonjour,

depuis 2 jours j'ai un problème sur une requête sous access avec un DAO.openrecordset.

Voici le problème :

    1. d'abord la table TABLE1

      
champ1 | champ2 | champ 3
       ----------------------------
        1          | y           |z
       ----------------------------
        1          | y           |x
       ----------------------------

        1          | y           |w

       ----------------------------

        1          | y           |v

       ----------------------------

        1          | y           |u

       ----------------------------

        2          | a           |b

       ----------------------------

        2          | a           |c

       ----------------------------

        2          | a           |d

   
    2.  puis le code

je cherche a afficher tous les résultats avec la contrainte sur le champ1

Private Sub CmdFirst_Click()
    Dim rsAjout As DAO.Recordset
        Set rsAjout = CurrentDb.OpenRecordset("SELECT * FROM TABLE1 WHERE champ2='y' ;")
    If rsAjout.RecordCount = 0 Then Exit Sub
    rsAjout.MoveFirst
    Me.EEnr1.Caption = 1
    Me.EEnr2.Caption = rsAjout.RecordCount
    Me.Liste1.Value = rsAjout(1)
    Me.Liste2.Value = rsAjout(2)
    rsAjout.Close
    Set rsAjout = Nothing
End Sub

le problème que je comprend pas c'est qu'il m'indique qu'il n'y a seulement 1 seul enregistrement alors qu'il devrait en trouver 5 !!!

Je ne vois pas d'où peut provenir le problème.

Si vous avez une solution je suis preneur.

D'avance un grand merci,

RB

2 réponses

Messages postés
23
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
24 juin 2008

Voila comment je ferais moi
Mais je te promet pas que ca marche car pas essayer

Private Sub CmdFirst_Click()
    Dim rsAjout As DAO.Recordset
        Set rsAjout = CurrentDb.OpenRecordset("SELECT * FROM TABLE1 WHERE champ2='y' ;") 

rsAjout.MoveFirst
while rsAjout.EOF = false     'boucle tant qu'on est pas arriver au dernier enregistrement

    If rsAjout.RecordCount = 0 Then Exit Sub
       "ton code    "   

       rsAjout.Movenext

wend

rsAjout.Close
Set rsAjout = Nothing

End Sub

ou sinn tu peut utiliser rsAjout.Movelast avant ton recordcount ce qui t'inquera le nombre d'enregistrement à selectionné
Je te promet rien que ca marche
a+
Messages postés
41
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2008

Merci timon23,

il suffisait d'un movelast avant le recordcount

Comme quoi des fois ... !!!

Encore merci et bonne journée à tous

RB