Requête vba access qui ne marche pas

Résolu
arzawe Messages postés 71 Statut Membre -  
arzawe Messages postés 71 Statut Membre -
Bonjour,

J'ai un souci de programmation :

J'ai des données dans une table [Plan], que j'ai besoin de sommer pour mettre à jour la table [Suivi Productivité vs forecast 1].

J'ai rédigé cette ligne de commande :

sql2 = "UPDATE [Suivi Productivité vs Forecast 1] " & _
"SET [Suivi Productivité vs Forecast 1].[Perfo Forecast] = SELECT Sum([Plan].[perfo forecast] AS [Sommedeperfo forecast] " & _
"FROM Plan INNER JOIN [Suivi Productivité vs Forecast 1] " & _
"ON (Plan.[Type ini] = [Suivi Productivité vs Forecast 1].[Sac ou Gaine]) " & _
"AND (Plan.[ligne forecast] = [Suivi Productivité vs Forecast 1].Ligne) " & _
"GROUP BY Plan.[ligne forecast], Plan.[Type ini]"

Mais quand je l'exécute, il me renvoie une erreur de syntaxe. Comme je suis dessus depuis un moment, je ne la vois pas. Quelqu'un peut-il m'aider ?
Je travaille sur Access 2003.

Merci d'avance
--

Arzawe
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,
    0
    1. arzawe Messages postés 71 Statut Membre 5
       
      Désolée, j'ai fais une erreur de touches sur mon clavier
      0
  2. RDB77 Messages postés 66 Statut Membre 7
     
    Tu as trouver le pb?
    0
  3. arzawe Messages postés 71 Statut Membre 5
     
    Non, et pourtant, je cherche
    0
  4. RDB77 Messages postés 66 Statut Membre 7
     
    je comprend pas ta requete. Tu utilise pas de dataAdaptater et de dataSet et ou est la connexion a ta base?
    0
    1. arzawe Messages postés 71 Statut Membre 5
       
      Je ne sais pas ce qu'est un dataAdaptater.
      Ma table A est remplie de données que je veux sommer pour mettre à jour ma table B.

      donc pour mon champs Z de table B, je veux qu'il prenne la somme du champs X sur table A, sachant que les tables A et B sont liées par 2 champs ( V et W)
      Pour sommer mon champs X, il faut que je regroupe ma table A sur deux champs T et U.

      Est-ce plus clair ainsi ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mister Moot Messages postés 18 Statut Membre
     
    T'as oublier de fermer ta parenthèse du "sum"
    0
    1. arzawe Messages postés 71 Statut Membre 5
       
      Merci. Mais j'ai essayé, et il n'est toujours pas d'accord (erreur 3075)
      0
  7. Mister Moot Messages postés 18 Statut Membre
     
    sql2 = "UPDATE [Suivi Productivité vs Forecast 1]
    SET [Suivi Productivité vs Forecast 1].[Perfo Forecast] = SELECT Sum([Plan].[perfo forecast])
    FROM Plan
    INNER JOIN [Suivi Productivité vs Forecast 1]
    ON (Plan.[Type ini] = [Suivi Productivité vs Forecast 1].[Sac ou Gaine])
    WHERE (Plan.[ligne forecast] = [Suivi Productivité vs Forecast 1].Ligne)
    GROUP BY Plan.[ligne forecast], Plan.[Type ini]"

    essaie ca.
    0
    1. Mister Moot Messages postés 18 Statut Membre
       
      Me suis gouré:

      sql2 = "UPDATE [Suivi Productivité vs Forecast 1]
      SET [Suivi Productivité vs Forecast 1].[Perfo Forecast] = (SELECT Sum([Plan].[perfo forecast])
      FROM Plan
      INNER JOIN [Suivi Productivité vs Forecast 1]
      ON (Plan.[Type ini] = [Suivi Productivité vs Forecast 1].[Sac ou Gaine])
      WHERE (Plan.[ligne forecast] = [Suivi Productivité vs Forecast 1].Ligne)
      GROUP BY Plan.[ligne forecast], Plan.[Type ini])"

      Ca me plait mieux
      0
      1. arzawe Messages postés 71 Statut Membre 5 > Mister Moot Messages postés 18 Statut Membre
         
        Merci beaucoup,

        Mais il me met "erreur 3073 : Operation must use an updateable query"
        0
  8. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Tu fais comment pour l'exécuter ?
    0
    1. arzawe Messages postés 71 Statut Membre 5
       
      J'ai mis ma requête dans un module vba (il est à noter que d'autre requêtes sql de mon module fonctionnent).
      Je saisie la ligne : DoCmd.RunSQL sql2
      Et ensuite il me dit des trucs désagréables. Après vérification, mes autres mises à jour se sont faites, mais pas celle là.
      0
  9. arzawe Messages postés 71 Statut Membre 5
     
    Bonjur à tous et merci de votre aide.

    Comme je n'arrivais pas à faire ce que je voulais, j'ai fini par créer une table avec mes sommes et regroupements et ensuite je mets à jour à partir de cette table. Ce n'est pas vraiment ce que je souhaitais, mais je n'ai pas pu trouver mieux pour le moment.

    A bientôt
    0