Trop peu de paramètre. 1 attendu

Signaler
Messages postés
58
Date d'inscription
jeudi 12 mars 2009
Statut
Membre
Dernière intervention
25 juin 2015
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour à toutes et à tous.

Je dois bosser sur une base ACCESS dans mon nouveau boulot et je vous avoue que je seche depuis un petit bout de temps sur ce message d'erreur "Trop peu de paramètre. 1 attendu". Alors voici mon code

Dim Test As DAO.Recordset
Dim rSQL As String
Dim Table_BRetour As String
Dim NUM_BL2 as string

Num_BL2 = "12345"
Table_BRetour = "t (auto) nouvelle tbon de retour"
rSQL "Select Path_Avissouf from [" & Table_BRetour & "] where NumBL'" & Num_BL2 & "' ;"
MsgBox rSQL
Set Test = CurrentDb.OpenRecordset(rSQL)

(Je n'est pas mis tous le code, juste la parti qui bug)
Je ne vois pas du tous ou est le problème. Pensant que c'etait un problème de cote, j'ai essayé de mettre mon Num_BL2 entre guillement ou entre simple cote (apostrophe) mais le problème persiste. Je ne sais plus ou chercher. J'affiche mon code dans une msgbox et tout semble bon.

Dites moi si vous souhaitez avoir d'autres info.

Merci d'avance les loulous

15 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut
De quel type est le champ NumBL dans ta table ?
Numérique : pas de ' ni de # ni de " : rien
Texte : encadrement '
Date : encadrement #

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
58
Date d'inscription
jeudi 12 mars 2009
Statut
Membre
Dernière intervention
25 juin 2015

Salut,

Le champ Num_BL2 dans la table est de type numerique.

Je vais donc tester sans aucune cote et je te tiens au courant.

Merci de ta reponse en tt cas.

a+
Messages postés
58
Date d'inscription
jeudi 12 mars 2009
Statut
Membre
Dernière intervention
25 juin 2015

Re,

Je viens de tester et toujours le meme problème "1 paramètre attendu" grrrrrr!

En gros j'ai testé sans cote, avec des cotes (apostophe) et avec des guillements mais j'ai toujours le meme soucis. Je ne vois vraiment pas ou est le problème.

Si quelqu'un a une piste, ca serai genial !
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Ca vient peut-être du moteur, DAO.
Comme dit dans l'aide, c'est un moteur obsolète : Utilises plutôt ADODB.
Le principe de programmation est le même à quelques détails près :
A la place de
Set Test = CurrentDb.OpenRecordset(rSQL)
il faut utiliser (de mémoire)
Test.Open rSQL, CurrentDb

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
PS : Il te suffit d'ajouter "Microsoft ActiveX Data Objects 2.8 Library" aux préférences du projet.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
salut,

as-tu testé directement sous access, manuellement dans l'éditeur sql?


ta table s'appelle vraiment "t (auto) nouvelle tbon de retour", drôle de nom pour une table....

si la table est dans une variable, pourquoi pas le nom du champ?
la table existe au moment de l'appel?

ton champ s'appelle vraiment (avec casse) "Path_Avissouf"

si c'est une variable, à mettre entre & bien sûr ;)

que donne
rSQL = "SELECT * FROM [" & Table_BRetour & "];"


(et oui en effet, pas d'apostrophe ici)

++
[hr]
Messages postés
58
Date d'inscription
jeudi 12 mars 2009
Statut
Membre
Dernière intervention
25 juin 2015

Hello,

Je n'ai pas la base access sous la main a l'heure ou je vous écrit, mais je peux repondre a certaine de vos questions

Deja, oui la table s'appelle "t (auto) nouvelle tbon de retour". Perso je ne l'aurai pas nommer comme cela mais je travaille sur une base créé par quelqu'un d'autre, donc je prefere laisser tel quel.

le nom de la table est dans une variable uniquement pour "alleger" la ligne de ma requete dans le code, rien de plus

Mon champ s'appelle bien Path_Avissouf (P Maj et A Maj)

Je testerai demain ou lundi vos idée et je vous tiens au courant.

Merci a vous en tt cas jack et PCPT.

Bonne nuit ;)
Messages postés
58
Date d'inscription
jeudi 12 mars 2009
Statut
Membre
Dernière intervention
25 juin 2015

Salut les gars,

J'ai reussi a contourner le problème en faisant un Select * au lieu d'un select Path_Avissouf.

Bizare quand meme le problème.

En plus, juste pour info j'ai remarqué que le message d'erreur n'apparaissait plus lorsque je mettais "Select NumBl from table where NumBL 12345"... Alors que le problème persiste si je met "Select Path_Avissouf from table where NumBL 12345".

Enfin bref,

Merci encore pour le coup de main les gars.

A très bientot (Vu que je suis un noob en VBA )
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Salut,
Rien d' extraordinaire !
Dans le premier exemple NumBL ne fait pas partie des champs
énumérés.Comment veux-tu qu'il soit reconnu dans la clause where ?!
La preuve avec tes deux exemples qui suivent.

Il fallait donc exprimer ta requete ainsi:
"Select Path_Avissouf, NumBL from [" & Table_BRetour & "] where NumBL ='" & Num_BL2 & "' ;"


[] Ce qui va sans dire. va mieux en le disant.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
LIBRE_MAX -> j'ai pas compris là....
le SELECT affiche, on peut très bien ne pas afficher un champ tout en y posant une condition (where)

en mode assistance de requête çà doit correspondre aux coches "afficher/masquer"
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
erreur de saisie du nom du champ, ou caractère tordu dans le nom de celui-ci
genre un espace ou quelque chose du genre

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Bonsoir,

Tout à fait PCPT , On peut..
A condition de précèder le nom du champ de la table source.
Comme ceci:
"Select Path_Avissouf from [" & Table_BRetour & "] where
[t (auto) nouvelle tbon de retour].NumBL ='" & Num_BL2 & "' ;"

dans la mesure ou le filtrage se fera au niveau de la table et non sur les lignes extraites-->affichées.

[] Ce qui va sans dire. va mieux en le disant.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
non,

SELECT champ1 FROM table1 WHERE champ2 = 'value'

Fonctionne nickel chrome


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
58
Date d'inscription
jeudi 12 mars 2009
Statut
Membre
Dernière intervention
25 juin 2015

Salut,

Pour tout te dire j'ai egalement tester en ajoutant NumBl dans le Select mais il me mettait toujours "1 paramètre manquant car maintenant le Path_Avissouf n'avait pas de critère défini.
Normalement, le select est juste une question "d'affichage", on est pas obliger, selon mes souvenir d'afficher les champ sur lesquel on a un critère particulier (Sous MySQL en tout cas, mais visiblement pas sous access).

Bref, affaire classé puisque après avoir fait mon select *, j'ai juste a travailler sur les "field" qui m'interesse.

++
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
si tu parviens a bien les orthographier, cela ira en effet tout seul ^^

Renfield - Admin CodeS-SourceS - MVP Visual Basic