Trop peu de parametre : 1 attendu

Résolu
icomicar Messages postés 76 Date d'inscription   Statut Membre Dernière intervention   -  
icomicar Messages postés 76 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tous le monde
je deviens chauve avec cette erreur !!!
Je cherche a selectionner le champs "reste" de la table recette qui correspond à la vielle de la date contenu dans la variable pdat.
voici le code

Dim pdat As Date
pdat = Trim(Text1(0))
pdat = Format(pdat, "dd/mm/yyyy")
Set tb = db.OpenRecordset("select reste from recette where date=DateAdd(""d"", -1, pdat)")
mais une erreur se produit au niveau du set :Trop peu de parametre : 1 attendu
Je demande votre assistance et merci
A voir également:

4 réponses

incaout Messages postés 347 Date d'inscription   Statut Membre Dernière intervention   74
 
Salut,

Essayes avec ceci :

Set tb = db.OpenRecordset("select reste from recette where date=" & DateAdd("d", -1, pdat))

ou éventuellement utiliser une variable intermédiaire

dim rq = "select reste from recette where date=" & DateAdd("d", -1, pdat)
Set tb = db.OpenRecordset(rq)

Cdlt

IC
1
icomicar Messages postés 76 Date d'inscription   Statut Membre Dernière intervention   2
 
merci beaucoup
resolu
Set tb = db.OpenRecordset("select reste from recette where date=" & DateAdd("d", -1, pdat))

J'aurai besoin d'un tutoriel a propos de ces guillemets !!
encors merci .
1
incaout Messages postés 347 Date d'inscription   Statut Membre Dernière intervention   74
 
Salut

les guillemets servent à indiquer à VBA une chaine de caractères. Dans ta requête la condition est fournie par le résultat d'une fonction. Si tu places la fonction DateAdd entre guillemet, VBA pensera qu'il s'agit du mot DateAdd et non plus de la fonction et n'essayera donc pas de l'exécuter. C'est pour cette raison que l'on fabrique dynamiquement la chaine de caractère correspondant à ta requête finale en additionnant à la chaine fixe, délimitée par les guillemets, une valeur calculée par la fonction DateAdd.

Le traitement est fait ainsi :

1) Calculer la valeur retournée par DateAdd("d", -1, pdat) : ex : 10/03/2010

2) Ajouter cette valeur à la chaine "select reste from recette where date=". Ceci donne la chaine suivante :
"select reste from recette where date=10/03/2010"

3) Exécuter la requête et affecter les résultats obtenus à un objet recordset nommé tb.

Cdlt

IC
0
icomicar Messages postés 76 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci
ca m'a beaucoup aidée
0