IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Trop peu de paramètres attendus <1>


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut Trop peu de paramètres attendus <1>
    Bonjour,

    Je suis entrain de devenir completement fou! Après un message Nième message d'erreur => "Trop peu de paramètres attendus <3>", j'ai rédussi à passer à 1 en valorisant quelques variables mais là je ne sais plus quoi faire...
    Help please!

    Voici ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CurrentDb.Execute " UPDATE " & NomTable1 & "  Set [" & NomTable1 & "].[SAP] = Faux " & _
                "WHERE EXISTS(SELECT [" & NomTable1 & "].[Composant gestion]" & _
                "FROM " & NomTable1 & " LEFT JOIN MARA_WITH_PN_FORMAT ON [" & NomTable1 & "].[Composant gestion] = [MARA_WITH_PN_FORMAT].[PnFormat] " & _
                "WHERE ((([MARA_WITH_PN_FORMAT].[PnFormat]) Is Null)));"
                MsgBox "reSalut"
    Merci à ceux qui me liront

  2. #2
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonjour korialstraz.

    NomTable1 est de type string ,donc double quote. De plus ,je ne suis pas sur (à verifier) que l'on puisse utiliser une variable en tant que nom de table .
    Dans ton post précédent ,et ici aussi ,tu veux faire des choses compliquées d'un seul bloc ! Essaie de scinder cela en plusieurs instructions (ton énorme bloc if ,p.e) ,cela sera beaucoup plus clair à comprendre et à deboguer (absence du ; dans la ligne Where).
    Cdlt

  3. #3
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut
    Bonjoru Thierry et merci de ta réponse

    Pourquoi faire simple quand on peut faire compliqué, effectivement je suis plutot bon dans ce domaine...Alors pour mieux expliquer ce que je cherche à faire.

    J'ai une table NomTable1 contenant les champs "Composant Gestion" et "SAP" et une autre table que l'on appellera NomTable2 contenant un champs "PnFormat" qui même s'il possède un nom différent correspond au champs "Composant Gestion" de la premiere.

    Ce que je voudrais, c'est que pour chaque "Composant Gestion" que l'on ne retrouve pas dans "PnFormat", le champs "SAP" soit mis à "false".

    Et là je galère depuis hier matin^^

    Voici un exemple de requête peut-être plus simple mais qui me renvoie un message d'erreur=> ici "trop peu de paramètres attendus <2>"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CurrentDb.Execute " UPDATE " & NomTable1 & "  Set [" & NomTable1 & "].[SAP] = '-1' " & _
                "WHERE (SELECT [" & NomTable1 & "].[Composant gestion]" & _
                "FROM " & NomTable1 & " WHERE [MARA_WITH_PN_FORMAT].[PnFormat] <> [" & NomTable1 & "].[Composant gestion]);"
                MsgBox "reSalut"
    Si vs avez une idée...

  4. #4
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut
    PS=> Pour les double quote, tu voulais les mettre ou ??? j'ai pas tout compris

  5. #5
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Si ta table s'appelle bien NomTable1, essaie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CurrentDb.Execute "UPDATE NomTable1"& _
    " Set NomTable1.[SAP] = '-1' " & _
    " WHERE (SELECT NomTable1.[Composant gestion]" & _
    " FROM  NomTable1 "& _
    " WHERE [MARA_WITH_PN_FORMAT].[PnFormat] <> NomTable1.Composant gestion]);"
                MsgBox "reSalut"
    Si besoin, enlève les crochets :WHERE MARA_WITH_PN_FORMAT.[ etc...
    Assure toi aussi que la sous requete renvoie quelque chose.
    Cdlt

  6. #6
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut
    EN fait au final j'ai suivi ton conseil, en faisant de petites requêtes, la premiere étant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CurrentDb.Execute "INSERT INTO TF (champs1) " & _
                "SELECT [" & NomTable1 & "].[Composant gestion] " & _
                "FROM " & NomTable1 & " LEFT JOIN MARA_WITH_PN_FORMAT ON [" & NomTable1 & "].[Composant gestion] = [MARA_WITH_PN_FORMAT].[PnFormat] " & _
                "WHERE (([MARA_WITH_PN_FORMAT].[PnFormat])is Null) "
                MsgBox "cest fait"
    Ici je prends tous les enregistrements présents dans NomTable1 qui ne sont pas présent dans ma table MARA...Etc.. pour les mettre dans une TF qui ne sert que temporairement.
    Il ne me reste donc plus qu'à mettre les valeurs de TF à "false" dans la table NomTable1 (suis-je clair lol ).

    Pour cela, j'ai essayé plusieurs requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    'tentative 2
    ''=> erreur=>trop peu d'argument<1>
                CurrentDb.Execute " UPDATE " & NomTable1 & "  Set [" & NomTable1 & "].[SAP] = -1 " & _
                "WHERE EXISTS (SELECT [" & NomTable1 & "].[Composant gestion]" & _
                "FROM " & NomTable1 & " INNER JOIN TF ON [" & NomTable1 & "].[Composant gestion] =[TF].[champs1]" & _
                "WHERE [" & NomTable1 & "].[Composant gestion] <> [TF].[champs1])"
                MsgBox "cest refait"
     
    'tentative 3
    '=> erreur=>trop peu d'argument<1>
                Debug.Print
                CurrentDb.Execute " UPDATE " & NomTable1 & "  Set [" & NomTable1 & "].[SAP] = " & 0 & " " & _
                "WHERE EXISTS (SELECT [" & NomTable1 & "].[Composant gestion], [TF].[champs1] FROM " & NomTable1 & " , TF " & _
                "WHERE [" & NomTable1 & "].[Composant gestion] = [TF].[champs1])", dbFailOnError
     
    'tentative 4
    '=> erreur 3078=>le moteur de la base....
                CurrentDb.Execute "IIf([" & NomTable1 & "].[Composant gestion] = [TF].[champs1], " & _
                " UPDATE " & NomTable1 & " Set [" & NomTable1 & "].[SAP] = " & 0 & " , " & _
                " UPDATE " & NomTable1 & " Set [" & NomTable1 & "].[SAP] = " & -1 & ")"

    Je vais essayer ta requête de ce pas, qui sait ce sera peut-être salvateur^^
    Merci

  7. #7
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CurrentDb.Execute "UPDATE NomTable1"& _
    " Set NomTable1.[SAP] = '-1' " & _
    " WHERE (SELECT NomTable1.[Composant gestion]" & _
    " FROM  NomTable1 "& _
    " WHERE [MARA_WITH_PN_FORMAT].[PnFormat] <> NomTable1.Composant gestion]);"
                MsgBox "reSalut"
    Ca y'est je viens d'essayer, code erreur=>trop peu d'argt<3>

    Du coup en fouinant sur d'autres forum, j'ai essayer de valoriser mes variables, ce qui donnait à peu près ce que j'avais au début:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CurrentDb.Execute "UPDATE " & NomTable1 & "" & _
                " Set " & NomTable1 & ".[SAP] = '-1' " & _
                " WHERE (SELECT " & NomTable1 & ".[Composant gestion]" & _
                " FROM  " & NomTable1 & " " & _
                " WHERE [MARA_WITH_PN_FORMAT].[PnFormat] <> " & NomTable1 & ".[Composant gestion]);"
                MsgBox "reSalut"
    Et maintenant c'est erreur de syntaxe dans l'instruction UPDATE^^


    Puis en bidouillant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CurrentDb.Execute "UPDATE " & NomTable1 & "" & _
                " Set [" & NomTable1 & "].[SAP] = '-1' " & _
                " WHERE (SELECT [" & NomTable1 & "].[Composant gestion]" & _
                " FROM  " & NomTable1 & " " & _
                " WHERE [MARA_WITH_PN_FORMAT].[PnFormat] <> [" & NomTable1 & "].[Composant gestion]);"
                MsgBox "reSalut"
    Maintenant code erreur => trop peu d'argt<1>
    Mais ou est le dernier...

  8. #8
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Et oui, on en revient au début ,"le nom de la table peut-il etre une variable" ?
    Pour moi ,la réponse est non ! Memme si à la lecture , le sql semble etre bon ,
    access (pour faire simple) ne l'accepte pas .
    Cdlt

  9. #9
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 98
    Points : 70
    Points
    70
    Par défaut
    Complètement d'accord, cependant j'ai réussi à passer cela en changeant ma requête mais les problèmes ne font que commencer, maintenant c'est un bout de code qui marchait très bien jusqu’ici qui se met à faire la même chose...En espérant trouver une solution à ce problème de valorisation de paramètres!

    Merci encore

    bout de code de la requête qui fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'tentative 4=>Reussi,On met toutes les valeurs de la table ilmportée présente dans TF à 1, soit false (pas dans SAP)
                Debug.Print
                CurrentDb.Execute " UPDATE " & NomTable1 & " " & _
                "Set [" & NomTable1 & "].[SAP] = " & 1 & " " & _
                "WHERE [" & NomTable1 & "].[Composant gestion]IN (SELECT [TF].[champs1] FROM TF)", dbFailOnError

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Trop peu de paramètres. 3 attendus
    Par mossaab.hardy dans le forum VBA Access
    Réponses: 1
    Dernier message: 11/12/2014, 14h47
  2. Trop peu de paramètres. 2 attendus
    Par emulamateur dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/08/2014, 07h35
  3. Erreur 3061 Trop peu de paramètre 2 attendus
    Par jbndour dans le forum Access
    Réponses: 1
    Dernier message: 26/03/2012, 20h04
  4. Trop peu de paramètres. 2 attendus
    Par miron_fds dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/06/2011, 17h22
  5. Trop peu de paramètres : 5 attendus
    Par demcoul dans le forum JDBC
    Réponses: 2
    Dernier message: 26/03/2009, 20h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo