[SQL] Trop peu de paramètre. 17 attendu

Bonjour,

J'ai généré une requête via VBA et lorsque je veux l'exécuter j'obtient l'erreur indiquée dans le titre....

Ayant déja fait face à ce genre d'erreur, j'ai directement vérifier toute les en-tête des colonnes de ma base de données. Hélas toutes les références au colonne dans ma requête sont justes, je ne sais donc pas d'ou provient cette erreur.

Si quelqu'un a le courage de m'aider à trouver ces 17 erreurs ....

La requête :

UPDATE [cde en cours]
SET [DATE] = "07/01/2019" ,
 [secteur] = "WS" ,
 [numero de cde] = "1" ,
 [CLIENT] = "WS" ,
 [REF] = "BOLLIN" ,
 [Teinte Profil] = "0" ,
 [Nb Chassis Total] = "4" ,
 [Ch  Avec Accessoires] = "2" ,
 [Ch VR] = "0" ,
 [Ch ST] = "2" ,
 [PE] = "0" ,
 [PSK] = "0" ,
 [S-74] = "0" ,
 [S150] = "0" ,
 [HS-70] = "0" ,
 [Trapèze] = "0" ,
 [cintre] = "0" ,
 [Dont Seuil Alu] = "0" ,
 [CVR cde] = "0" ,
 [Nb de Cadres] = "9" ,
 [Nb UP PS] = "0" ,
 [Num CHACAL] = "ECC1811007" ,
 [Délai demandé (semaine)] = "5" ,
 [Délai confirmé (semaine)] = "5" ,
 [Lot] = "1" ,
 [de Fab] = "3" ,
 [Lancement] = "09/01/2019" ,
 [Relance VI] = "0" ,
 [Relance Cadre] = "0" ,
 [Délai Prév PRF, QUINC, ACC] = "0" ,
 [Info CVR] = "0" ,
 [Délai Prév panneau] = "0" ,
 [Attente PS] = "0" ,
 [Délai à suivre] = "00:00:00" ,
 [Pb sur cde] = "0" ,
 [Semaine] = "0" , 
 [Date de fin de Fabrication] = "17/01/2019" ,
 [Equ] = "1" ,
 [LIVRAISON PREVISIONNELLE] = "04/02/2019" ,
 [Livraison CHANTIER, Spéciale ou Enlèvement client] = "00:00:00" ,
 [Date de Liv] = "00:00:00" ,
 [Nb Chassis] = "0" ,
 [Date de Liv 2] = "00:00:00" ,
 [Nb Chassis 2] = "0" ,
 [Date de Liv du pann Definitif] = "00:00:00" ,
 [Retour pann Prov] = "0" ,
 [Chassis restant à livrer] = "0" ,
 [En facturation] = "X" ,
 [Date de Facturation] = "30/01/2019" ,
 [REMARQUE] = "0"
WHERE [numero de cde] = "1"

Cordialement,

Arthur

Petit up,

je me rend compte aussi que j'ai posté ce message dans le mauvais fil .... si un admin passe par la pour le bouger dans le bon

Bonjours,

serais t-il possible d'avoirs un shemas relationnelle ?

De façons a savoirs quelle sont les type et les nom de colonne de ta bd.

Bonjour,

Déjà les crochets [ ] doivent être utilisés pour entourer le nom des tables (et non des champs),

et les noms des champs doivent être entourés par des `` (ALT Gr + touche7 2 fois)

Ensuite :

* pour les valeurs numériques, pas de guillemets, soit `Nb Chassis Total` = 4

* les dates (pour Access)=> format US mm/dd/yyyy entouré de dièze, soit `DATE`= #01/07/2019# pour le 7 janvier 2019

Pierre

PS : pour Louis, il me semble que cette requête ne concerne qu'une seule table, donc pas de relation.

Bonjour pierrep56

merci pour ta réponse mais avec les changement fait j'obtient l'erreur "Erreur de syntaxe dans l'instruction UPDATE"

Je crois que c'est due au `` car sans cela j'ai toujours ma même erreur de paramètres manquants :/

As-tu une solution ?

EDIT :

je créé ma requête et l’exécute via ce code

For i = 14 To der_ligne_final
        Req = "UPDATE [cde en cours] SET " & vbCrLf
        For j = 5 To (der_colonne2 - 4)
            'conversion en chaine de caractère
            str = ThisWorkbook.Sheets(feuil).Cells(i, j).Value

            'ajout de la valeur à modifier
            Req = Req & "``" & ThisWorkbook.Sheets(feuil).Cells(13, j).Value & "`` = " & Chr(34) & str & Chr(34)

            'détection de fin de requête, si non ajouter un comparateur
            If j <> (der_colonne2 - 4) Then Req = Req & ", " & vbCrLf & "   "
        Next

        'ajout de la condition d'update
        Req = Req & " WHERE ``numero de cde`` = " & Chr(34) & Split(ThisWorkbook.Sheets(feuil).Cells(i, 4).Value, ";")(3) & Chr(34)

        'MsgBox Req

        Connect_Access ThisWorkbook.Path & "\Suivi cde " & annee & ".accdb" 'Fonction

        Cnx.Execute Req

        Close_Cnx 'Fonction

je pense que quelqu'un ici reconnaîtra

pour simplifier le truc, toute ma base est en "texte court" d'ou le passage par une variable String avant de le mettre dans la chaîne (pour être sur)

j'aurai pu faire une base bien relier, avec des tables propres relier avec des relation mais je ne suis pas le concepteur du tableau et celui-ci ne connais pas vraiment les relation entre chaque colonne. De plus des colonnes sont rajouter au fils des années ....

Triste de voir une table difforme mais plus simple pour les autres qui ne s'y connaisse pas (je suis en alternance donc je serai pas la tout le temps pour le support )

Aparté faite, toutes les valeurs qui compléteront les colonnes sont formater en chaîne de caractère. Chaque colonne ne prend que des textes courts. Chaque ajout d'update est donc ajouté comme ceci (avec le changement de pierrep56) :

``NomColonne`` = "MaValeur",

la virgule ne se rajoutant que s'il n'y a encore des paramètre à ajouter.

j'ai aussie essayé comme ceci :

`NomColonne`= "MaValeur"

mais j'obtient encore l'erreur de paramètre

Voila

Ola, tout doux!

Regarde mieux les exemples que je donne!

Et essaye d'y aller progressivement. Premier test avec la requête suivante :

Req ="UPDATE [cde en cours] SET `secteur` = 'WS' WHERE `numero de cde` = 1"

(le nom du champs est au milieu des ``)

Je viens de voir ton message, entre temps j'ai essayer la requête :

UPDATE [cde en cours] SET 
`DATE` = "07/01/2019", 
   `secteur` = "WS", 
   `numero de cde` = "1", 
   `CLIENT` = "WS", 
   `REF` = "BOUILLIN", 
   `Teinte Profil` = "0", 
   `Nb Chassis Total` = "5", 
   `Ch  Avec Accessoires` = "2", 
   `Ch VR` = "0", 
   `Ch ST` = "2", 
   `PE` = "0", 
   `PSK` = "0", 
   `S-74` = "0", 
   `S150` = "0", 
   `HS-70` = "0", 
   `Trapèze` = "0", 
   `cintre` = "0", 
   `Dont Seuil Alu` = "0", 
   `CVR cde` = "0", 
   `Nb de Cadres` = "9", 
   `Nb UP PS` = "0", 
   `Num CHACAL` = "ECC1811007", 
   `Délai demandé (semaine)` = "5", 
   `Délai confirmé (semaine)` = "5", 
   `Lot` = "1", 
   `de Fab` = "3", 
   `Lancement` = "09/01/2019", 
   `Relance VI` = "0", 
   `Relance Cadre` = "0", 
   `Délai Prév PRF, QUINC, ACC` = "0", 
   `Info CVR` = "0", 
   `Délai Prév panneau` = "0", 
   `Attente PS` = "0", 
   `Délai à suivre` = "00:00:00", 
   `Pb sur cde` = "0", 
   `Semaine` = "0", 
   `Date de fin de Fabrication` = "17/01/2019", 
   `Equ` = "1", 
   `LIVRAISON PREVISIONNELLE` = "04/02/2019", 
   `Livraison CHANTIER, Spéciale ou Enlèvement client` = "00:00:00", 
   `Date de Liv` = "00:00:00", 
   `Nb Chassis` = "0", 
   `Date de Liv 2` = "00:00:00", 
   `Nb Chassis 2` = "0", 
   `Date de Liv du pann Definitif` = "00:00:00", 
   `Retour pann Prov` = "0", 
   `Chassis restant à livrer` = "0", 
   `En facturation` = "X", 
   `Date de Facturation` = "30/01/2019", 
   `REMARQUE` = "0" 
WHERE `numero de cde` = "1"

dans Access même, cela fonctionne.

La même (ajusté pour Excel) ne fonctionne pas (voir ci dessous)

Req = "UPDATE [cde en cours] SET `DATE` = " & Chr(34) & "07/01/2019" & Chr(34) & ", `secteur` = " & Chr(34) & "WS" & Chr(34) & ", " & _
           "`numero de cde` = " & Chr(34) & "1" & Chr(34) & ", `CLIENT` = " & Chr(34) & "WS" & Chr(34) & ", " & _
           "`REF` = " & Chr(34) & "BOUILLIN" & Chr(34) & ", `Teinte Profil` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`Nb Chassis Total` = " & Chr(34) & "5" & Chr(34) & ", `Ch  Avec Accessoires` = " & Chr(34) & "2" & Chr(34) & ", " & _
           "`Ch VR` = " & Chr(34) & "0" & Chr(34) & ", `Ch ST` = " & Chr(34) & "2" & Chr(34) & ", " & _
           "`PE` = " & Chr(34) & "0" & Chr(34) & ", `PSK` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`S-74` = " & Chr(34) & "0" & Chr(34) & ", `S150` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`HS-70` = " & Chr(34) & "0" & Chr(34) & ", `Trapèze` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`cintre` = " & Chr(34) & "0" & Chr(34) & ", `Dont Seuil Alu` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`CVR cde` = " & Chr(34) & "0" & Chr(34) & ", `Nb de Cadres` = " & Chr(34) & "9" & Chr(34) & ", " & _
           "`Nb UP PS` = " & Chr(34) & "0" & Chr(34) & ", `Num CHACAL` = " & Chr(34) & "ECC1811007" & Chr(34) & ", " & _
           "`Délai demandé (semaine)` = " & Chr(34) & "5" & Chr(34) & ", `Délai confirmé (semaine)` = " & Chr(34) & "5" & Chr(34) & ", " & _
           "`Lot` = " & Chr(34) & "1" & Chr(34) & ", `de Fab` = " & Chr(34) & "3" & Chr(34) & ", " & _
           "`Lancement` = " & Chr(34) & "09/01/2019" & Chr(34) & ", `Relance VI` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`Relance Cadre` = " & Chr(34) & "0" & Chr(34) & ", `Délai Prév PRF, QUINC, ACC` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`Info CVR` = " & Chr(34) & "0" & Chr(34) & ", `Délai Prév panneau` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`Attente PS` = " & Chr(34) & "0" & Chr(34) & ", `Délai à suivre` = " & Chr(34) & "00:00:00" & Chr(34) & ", " & _
           "`Pb sur cde` = " & Chr(34) & "0" & Chr(34) & ", `Semaine` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`Date de fin de Fabrication` = " & Chr(34) & "17/01/2019" & Chr(34) & ", `Equ` = " & Chr(34) & "1" & Chr(34) & ", " & _
           "`LIVRAISON PREVISIONNELLE` = " & Chr(34) & "04/02/2019" & Chr(34) & ", `Livraison CHANTIER, Spéciale ou Enlèvement client` = " & Chr(34) & "00:00:00" & Chr(34) & ", " & _
           "`Date de Liv` = " & Chr(34) & "00:00:00" & Chr(34) & ", `Nb Chassis` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`Date de Liv 2` = " & Chr(34) & "00:00:00" & Chr(34) & ", `Nb Chassis 2` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`Date de Liv du pann Definitif` = " & Chr(34) & "00:00:00" & Chr(34) & ", `Retour pann Prov` = " & Chr(34) & "0" & Chr(34) & ", " & _
           "`Chassis restant à livrer` = " & Chr(34) & "0" & Chr(34) & ", `En facturation` = " & Chr(34) & "X" & Chr(34) & ", " & _
           "`Date de Facturation` = " & Chr(34) & "30/01/2019" & Chr(34) & ", `REMARQUE` = " & Chr(34) & "0" & Chr(34) & " WHERE `numero de cde` = " & Chr(34) & "1" & Chr(34) & " "

me suis-je trompé quelque part ?

Entre temps je vais tester ce que tu m'as donné

Ce que tu m'as donné fonctionne. L'erreur était les " qui devaient être remplacés par un ' ...... j'ai honte

tant de recherches pour une si petite erreur ...

Merci en tout cas

Rechercher des sujets similaires à "sql trop peu parametre attendu"