Pb à l'ouverture d'un recordset

ron - 27 nov. 2001 à 16:21
 lguerrault - 28 nov. 2001 à 13:22
Comment ouvrir un recordset sur une requete avec access2000?

Dim db As Database
Dim RstFichier As Recordset
Set db = CurrentDb
Set RstFichier = db.OpenRecordset("ReqFichier", dbOpenDynaset)
'ReqFichier est un requete généré dans access

ia pas d''erreur à la compilation
mais il m'indique

erreur d'execution '3061'
Trop peu de paramêtre. 1 attendu

et me ramene à cette ligne:
Set RstFichier = db.OpenRecordset("ReqFichier", dbOpenDynaset)

Que passa?

5 réponses

Bonjour,

En fait tu continues a developper en utilisant la DAO donc il faut que tu le selectionnes dans la liste des references de ton projet VBA. Comme par defaut, access utilise l'ADO il y a confusion entre les deux librairies, pour eviter le cafouillage entre la classe recordset qui existe dans les deux librairies, il faut que tu precises que tu utilises les classes DAO comme suit :
Et ca marche. J'ai essaye.

Dim db As DAO.Database
Dim RstFichier As DAO.Recordset
Set db = CurrentDb
Set RstFichier = db.OpenRecordset("TABLE1", dbOpenDynaset)
0
Meme avec cette modification le prog continue à bugger
Et ce avec la meme erreur.
0
Salut,

alors dans ce cas ca veut dire que ReqFichier est une requete avec un parametre. Dans ce cas la, utilise les querydef pour acceder au parametre et executer la requete en recuperant le recordset.

Ta requete doit ressembler a celle-ci :

PARAMETERS machaine Text ( 255 );
SELECT Table1.*
FROM Table1
WHERE (((Table1.champ1)=[machaine]));

Le parametre machaine est de type text et necessite l'envoi d'une valeur.

utilises alors le code suivant :

Dim db As DAO.Database
Dim RstFichier As DAO.Recordset
Dim rqMaQuery As QueryDef

Set db = CurrentDb

Set rqMaQuery = db.QueryDefs("QUERY1")
rqMaQuery.Parameters(0) = MaValeur
Set rsfichier = rqMaQuery.OpenRecordset
........

A+
0
bien vu merci !

mais il subsiste un pb

j'aimerai comptais le nombre de ligne du recordset obtenu
recordcount ne fonctionne pas avec un recordset portant sur une requete?
Alors comment faire ?
0

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

Posez votre question
Salut,

si le recordcount=0 c'est que la requete n'a rien trouve. Si des enregistrements sont trouves alors recordcount=1 quelque soit le nombre reel. Pour determiner le nombre reel faire :
recordset.movelast
recordset.movefirst

la le recordset te donnera le nombre reel d'enregistrements dans ton recordset.

A+
0
Rejoignez-nous