Problème de requete openrecordset

Résolu
rbidocho
Messages postés
41
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2008
- 24 juin 2008 à 09:52
rbidocho
Messages postés
41
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2008
- 24 juin 2008 à 10:17
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

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

24 juin 2008 à 10:13
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+
3
rbidocho
Messages postés
41
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2008

24 juin 2008 à 10:17
Merci timon23,

il suffisait d'un movelast avant le recordcount

Comme quoi des fois ... !!!

Encore merci et bonne journée à tous

RB
0