rbidocho
Messages postés41Date d'inscriptionjeudi 7 juin 2007StatutMembreDernière intervention15 septembre 2008
-
24 juin 2008 à 09:52
rbidocho
Messages postés41Date d'inscriptionjeudi 7 juin 2007StatutMembreDernière intervention15 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 !!!
timon23
Messages postés23Date d'inscriptionmercredi 14 mai 2008StatutMembreDernière intervention24 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+