Erreur "trop peu de paramètres" en SQL/VBA

Résolu/Fermé
Pioup - 6 juil. 2010 à 15:52
lys44 Messages postés 57 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 21 mars 2011 - 7 juil. 2010 à 12:30
Bonjour,


J'ai actuellement un problème avec une requête sql que je souhaite effectuer afin de récupérer le nombre demande d'intervention qui sont terminées afin de l'afficher dans un formulaire Access que je code via VBA. Je suis débutant en SQL, donc je ne maitrise pas encore toutes ses subtilités.

J'ai une erreur 3061 " Trop peu de paramètres. 1 attendu" et je ne comprends pas l'erreur que j'ai fait sachant que j'ai auparavant lancé dans mon code deux requêtes exactement similaires avec soit pas de "Where" soit une condition en plus de le "Where" et elles fonctionnent.

J'ai essayé de stocker le statut "Terminée" dans une variable comme vous pouvez le voir, mais ça ne change rien.

statut = "Terminée"
requete = "Select Count(*) as Nb_inter FROM [Demande d'Intervention] WHERE Statut_Intervention = " & statut
Set ST = CurrentDb
Set inter = ST.OpenRecordset(requete, dbOpenDynaset)
inter.MoveFirst
nb2 = inter.Nb_inter
Me.ZT_Termine = nb2


Donc je sollicite vos connaissances afin de me sortir de ce problème...

Merci d'avance pour votre aide !

A+
Pioup

2 réponses

lys44 Messages postés 57 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 21 mars 2011 5
Modifié par lys44 le 7/07/2010 à 10:55
Hum...

Je pense qu'il faudrait tout d'abord mettre les bonnes quotes dans la requête!

Statut = "terminée" est, apparemment un string.

De ce fait dans la requête il faut mettre les quotes correspondantes. ' ------- '

requete = "Select Count(*) as Nb_inter FROM [Demande d'Intervention] WHERE Statut_Intervention = '" & statut "'""

A mon sens, cela peut démarrer le débugage...
1
Tout d'abord, merci pour ta réponse

J'ai fais un copier coller de ce que tu proposes, mais j'ai désormais une erreur de syntaxe dans l'expression "Statut_Intervention = ' Terminée ".

J'ai vraiment beaucoup de mal avec ces " et ' ! Mais bon, ça commence doucement à rentrer.
0
lys44 Messages postés 57 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 21 mars 2011 5
7 juil. 2010 à 10:54
En fait le truc à retenir c'est que si ton champ est de type string il te faut l'enquoter avec des ' '
Ex :

"................. WHERE num = " & num
Affichage : Where num = 028566631

" WHERE libellé = '" & libellé & "'""
Affichage : Where libellé = 'Ordinateur Portable'

Il faut que ' soit coller à "" car sinon ça indique un espace à la requête qui la fera planter.
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
Modifié par maka54 le 7/07/2010 à 10:55
requete = "Select Count(*) as Nb_inter FROM [Demande d'Intervention] WHERE Statut_Intervention = '" & statut  & "'"
0
Merci pour l'explication lys44

Et merci à maka54, ça marche parfaitement comme ça !
0
lys44 Messages postés 57 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 21 mars 2011 5
7 juil. 2010 à 11:20
J'ai modifié au même moment que maka54 postait, mon 1er post.
J'avais inversé ' " à la fin sans faire exprès.

Bref, ça marche tant mieux ;)

De rien, bon codage.
0
Je remonte ce sujet, si quelqu'un a une réponse aujourd'hui.

Merci d'avance.
0