Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
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 17/11/2010, 12h23   #1
Membre éclairé
 
Homme Pierre-Jean
Développeur informatique
Inscription : février 2010
Messages : 306
Détails du profil
Informations personnelles :
Nom : Homme Pierre-Jean
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 306
Points : 330
Points : 330
Envoyer un message via MSN à paidge
Par défaut Problème Requête paramétrée DAO

Bonjour,
J'ai déjà eu ce genre de message et jusqu'alors j'ai toujours réussi à trouver d'où venait le problème...Mais là je sèche. Pourtant j'ai lu à fond le tuto sur la manipulation de données avec DAO.

Citation:
Erreur d'exécution '3061' :
Trop peu de paramètres. 2 attendu.
J'ai un formulaire modal qui demande à l'utilisateur de saisir une année. Lorque l'on clique sur le bouton VALIDER, voilà une partie du code que j'ai placé :

Code :
1
2
3
4
5
6
7
8
9
 
Dim qdf As QueryDef
 
Set qdf = CurrentDb.QueryDefs("R1")
With qdf
    .Parameters("[Pour quelle année ?]").Value = Me.txt_annee
    .Execute
End With
Set qdf = Nothing
Voici une simplification de ma requête R1 (pour faciliter la lecture):
Code :
1
2
3
4
5
PARAMETERS [Pour quelle année ?] Short;
SELECT matricule, telephone, email, IDservice, dateArrivee INTO T1 FROM R2 LEFT JOIN T2 ON (R2.matricule = T2.saisie_matricule) AND (R2.[N° semaine] = T2.saisie_semaine) AND (R2.annee = T2.saisie_annee)
WHERE dateArrivee<PremierJourSemaine([N° semaine]+1,[Pour quelle année ?]) GROUP BY matricule, telephone, email, IDservice, dateArrivee, saisie_matricule
HAVING (saisie_matricule Is Null);
Et voici R2 :
Code :
1
2
3
4
5
6
PARAMETERS [Formulaires]![F_modal]![txt_annee] Short;
SELECT matricule, telephone, email, First(aff_IDservice) AS IDservice, [N° semaine], dateArrivee, [Formulaires]![F_modal]![txt_annee] AS annee
FROM R3, T3 INNER JOIN T4 ON T3.matricule = T4.aff_employe
WHERE ((saisie=Yes) AND (fonction='employé') AND (IDmois<>0))
GROUP BY matricule, telephone, email, [N° semaine], dateArrivee, [Formulaires]![F_modal]![txt_annee];
R3 n'a pas de paramètres (elle sert juste à récupérer les N° de semaine et les IDmois).

Auriez-vous une piste ?

NB : lorsque mon formulaire est ouvert avec le champ txt_annee rempli, je double-clique sur ma requête R1. Là j'ai l'invite qui me demande "Pour quelle année ?" (normal me direz-vous puisqu'il s'agit du paramètre de R1) et tout se passe bien.....Mon code n'est pas bon ?
paidge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 14h56   #2
Membre éclairé
 
Homme Pierre-Jean
Développeur informatique
Inscription : février 2010
Messages : 306
Détails du profil
Informations personnelles :
Nom : Homme Pierre-Jean
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 306
Points : 330
Points : 330
Envoyer un message via MSN à paidge
Après de multiples essais et recherches, j'ai enfin réussi à résoudre le problème !
Dans un premier temps, j'ai retiré la clause PARAMETERS de R1 et R2 mais à mon avis ça n'a pas influé.
La cause la plus probable est une ligne de code qui manquait pour indiquer explicitement la valeur du paramètre [Formulaires]![F_modal]![txt_annee]. En résumé, voilà la modif :

Code :
1
2
3
4
5
6
 
With qdf
    .Parameters("Formulaires!F_modal!txt_annee") = Me.txt_annee
    .Parameters("Quelle année ?") = Me.txt_annee
    .Execute
End With
Je n'aurais vraiment pas pensé qu'il faille absolument indiquer la valeur de ce paramètre puisqu'il fait référence au champ. Mais ça ne paraît pas illogique non plus. Désormais je saurai qu'il est nécessaire d'indiquer la valuer de TOUS les paramètres même si ceux-ci font référence à des champs de formulaires !
paidge est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h07.


 
 
 
 
Partenaires

Hébergement Web