Requête vba access qui ne marche pas

Résolu
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. Modérateur
    Salut,
    0
    1. Désolée, j'ai fais une erreur de touches sur mon clavier
      0
  2. Non, et pourtant, je cherche
    0
    1. je comprend pas ta requete. Tu utilise pas de dataAdaptater et de dataSet et ou est la connexion a ta base?
      0
      1. 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
    2. T'as oublier de fermer ta parenthèse du "sum"
      0
      1. Merci. Mais j'ai essayé, et il n'est toujours pas d'accord (erreur 3075)
        0
    3. 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. 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
      2. @Mister MootMerci beaucoup,

        Mais il me met "erreur 3073 : Operation must use an updateable query"
        0
    4. Modérateur
      Tu fais comment pour l'exécuter ?
      0
      1. 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
    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