Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2010, 17h58   #1
Membre habitué
 
Inscription : octobre 2003
Messages : 483
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : octobre 2003
Messages : 483
Points : 136
Points : 136
Par défaut Erreur ouverture recorset "Trop peu de paramètres"

Bonjour,

J'ai un problème dans l'exécution d'une requête. Voici le code :
Code :
1
2
       Set maBase = CurrentDb()
        Set monRcsPk = maBase.OpenRecordset("R_RDC_MAX_PKRDC")
Le message d'erreur suivant apparait :

Citation:
Erreur 3601 : Trop peu de paramètres. 1 Attendu
R_RDC_MAX_PKRDC est le nom de ma requête qui recherche la valeur max d'une colonne et sur l'autre une condition "OU" avec comme critère la valeur d'une liste déroulante d'un formulaire.
Si à la place du critère je mets une valeur fixe, c'est OK, sinon j'ai cette erreur systématiquement.

Merci d'avance pour vos idées.
lio33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 19h28   #2
Membre confirmé
 
Homme Ahmad Hamam
développeur amateur
Inscription : octobre 2006
Messages : 108
Détails du profil
Informations personnelles :
Nom : Homme Ahmad Hamam
Âge : 55
Localisation : France

Informations professionnelles :
Activité : développeur amateur
Secteur : Santé

Informations forums :
Inscription : octobre 2006
Messages : 108
Points : 205
Points : 205
salut
un open recordset ca se fait avec un 2°parametre
Code :
Set rs = Db.OpenRecordset(SQL, DB_OPEN_DYNASET)
par exemple
opendynaset ou snapshot ...etc
cordialement
hajeahmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 19h37   #3
Membre à l'essai
 
Inscription : avril 2009
Messages : 38
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 38
Points : 20
Points : 20
Bonsoir,

Est-ce que dans
Code :
1
2
   Set maBase = CurrentDb()
        Set monRcsPk = maBase.OpenRecordset("R_RDC_MAX_PKRDC")
R_RDC_MAX_PKRDC est une variable ?
Si c'est le cas pourquoi la mets-tu entre des guillemets ?

Cordialement
JesusHansHuberVorme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 10h05   #4
Membre habitué
 
Inscription : octobre 2003
Messages : 483
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : octobre 2003
Messages : 483
Points : 136
Points : 136
J'ai essayé avec le deuxième paramètre [optionnel] de la commande OpenRecordSet(), mais le problème n'est pas lié à ça.

R_RDC_MAX_PKRDC est le nom d'une requête d'où les Guillemets. le problème n'est pas un problème de syntaxe de la commande OpenRecordSet(), mais plutôt de contenu de la requête elle-même !

Pour information la requête retourne un max sur une colonne et fait appel sur une autre colonne à un critère qui est la valeur d'une liste déroulante.
lio33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 10h14   #5
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Bonjour,
Effectivement, c'est ta requête elle-même qui n'est pas bonne.
C'est quoi le SQL de R_RDC_MAX_PKRDC ?
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 12h06   #6
Membre habitué
 
Inscription : octobre 2003
Messages : 483
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : octobre 2003
Messages : 483
Points : 136
Points : 136
Code :
1
2
3
SELECT Max(T_RDC.PK_RDC) AS MaxPkRdc
FROM T_RDC
WHERE (((T_RDC.RDC_CELLULE)=[Formulaires]![F_RDC_CREATION]![ListeCellule]));

[ListeCellule] représente une liste déroulante située sur le formulaire F_RDC_CREATION.

Note : Bon, j'ai contourné le problème en mettant ce code SQl dans une string et j'ai passé la string en paramètre du OpenrecordSet(string). Et là cela fonctionne, mais j'aurai bien aimé comprendre.
lio33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 12h10   #7
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
J'allai te proposer de faire ce que tu as fait.
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h52.


 
 
 
 
Partenaires

Hébergement Web