Access 2007 et SQL

Résolu
Bonjour,

je souhaite utiliser la commande SQLUPDATE pour mettre à jour une table "tSousRecette" avec la valeur calculée d'une zone de texte "ttxtTotal" du formulaire "fSousRecette".

Est ce que quelqu'un connait la synthaxe ?

Merci

4 réponses

  1. Salut,

    dans ta requête de mise à jour, il suffit d'ajouter une condition "WHERE" d'un champ provenant de ton formulaire.

    ex : une table "CLIENT" avec 3 champ : NUM_CLT, NOM_CLT, TEL_CLT

    Dans le formulaire client tu retrouve ces 3 champs et tu souhaites mettre à jour le numéro de téléphone du client qui s'appelle "toto"

    UPDATE CLIENT SET CLIENT.TEL_CLT = "0601010101"
    WHERE CLIENT.NUM_CLT=[Formulaires]![NOM DU FORMULAIRE]![cbo_nomclt];

    cbo_nomclt est le nom du champ de ton formulaire dans lequel tu saisies le nom du client.

    et dans ce cas tu saisieras "toto" dans le formulaire.
    A toi d'adapter pour le reste ...

    Pancratee.
    0
    1. Merci beaucoup Pancratee... cette fois ca fontionne parfaitement....
      0
  2. Comment ca que l'enregistrement en cour?
    explique un peu mieux ou donne un exemple
    0
    1. Je dispose d'un formulaire fSousRecette dans lequel je renseigne plusieurs zones de texte et plusieurs zones deroulante qui alimentent chacun les champs d'un enregistrement dans la table. Je peux aller les consulter ou les modifier indefiniement, cela fonctionne trés bien.

      Je dispose enfin d'une zone de texte du formulaire fSousRecettequi est le resultat de la somme de deux zones de texte.

      Je souhaitais donc que ce resultat soit mis à jour dans le champ de l'enregistrement en cours.

      J'ai donc créé un requete avec la commande que tu m'a donné, puis créé un macro auquel j'ai affecté la requete et enfin créé un bouton auquel j'ai affecté cette macro.

      Quand je clic sur le bouton, la requete se lance bien.Le probléme c''est qu'au lieu de traiter seulement l'enregistrement ( ou la ligne) en cours de la table fSousRecette, cela met à jour tous les champs Prix_Unitaire_HT de chaque ligne avec la même valeur.

      J'espere avoir été a peu près clair.
      0
    2. Salut,

      dans ta requête de mise à jour, il suffit d'ajouter une condition "WHERE" d'un champ provenant de ton formulaire.

      ex : une table "CLIENT" avec 3 champ : NUM_CLT, NOM_CLT, TEL_CLT

      Dans le formulaire client tu retrouve ces 3 champs et tu souhaites mettre à jour le numéro de téléphone du client qui s'appelle "toto"

      UPDATE CLIENT SET CLIENT.TEL_CLT = "0601010101"
      WHERE CLIENT.NUM_CLT=[Formulaires]![NOM DU FORMULAIRE]![cbo_nomclt];

      cbo_nomclt est le nom du champ de ton formulaire dans lequel tu saisies le nom du client.

      et dans ce cas tu saisieras "toto" dans le formulaire.
      A toi d'adapter pour le reste ...

      Pancratee.
      0
  3. De mon coté cela fonctionne verifie t nom
    0
    1. Salut,

      j'ai trouvé d'ou venait mon erreur, j'avais laissé les " " à tSouRecette, merci bien pour l'aide, ca m'a permis de finaliser mon application.

      Bravo.
      0
    2. Re Salut,

      j'ai repondu un peu vite, en testant je me suis aperçu que la requete mettait à jour l'ensemble des enregistrements de mon formulaire.

      Comment faire pour qu'elle mette à jour seulement l'enregistrement en cours ?

      Merci de ton aide.
      0
  4. salut

    tu as oublié d'indiquer le nom du champ de la table a mettre a jour

    update "tSousRecette" set ton_champ_a_mettre_a_jour = [formulaires]![fSousRecette]![ttxtTotal]

    voila
    0
    1. Salut,

      merci pour ta reponse.... mais ca ne fonctionne pas.... il me renvoie l'erreur suivante :

      Erreur de syntaxe dans la requête.La clause de la requête est imcoplète.

      update "tSousRecette" set Prix_Unitaire_HT = [formulaires]![fSousRecette]![ttxtTotal]
      0