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

Access Discussion :

RechDom pour mettre à jour une table


Sujet :

Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut RechDom pour mettre à jour une table
    Salam,

    Svp, j'ai besoin de votre aide, je suis débutante en Access, et la je bloque complètement, voici le problème:
    J'ai une table (simplifiée) :Table1 comme suite:

    Indicateur********Mois********Valeur*********Type

    **A1**********Janvier*********3**********Donnée
    **A2**********Janvier*********4**********Donnée
    **A3**********Janvier*********12 (3*4)*****Calculée
    **A1**********Février*********2**********Donnée
    **A2**********Février*********5**********Donnée
    **A3**********Février*********10 (2*5)*****Calculée

    Dans le champ Valeur, il y a des cases qu'on doit remplir (de type Donnée), et des cases (de type Calculée) qui se calculent automatiquement après la saisie des cases précédentes.
    Ce que j'ai fait moi, c'est créer une requête de type mise à jour qui me met à jour les cases de type Calculée à l'aide de la fonction:
    RechDom("Valeur";"Table1";"[Indicateur]='A1' and [Mois]='Formulaires![Formulaire1]![Modifiable0]'")

    Avec Formulaire1, un formulaire qui contient une liste déroulante des mois Janvier et février, j'ai fait ça pour ne pas créer pour chaque mois une requête, car j'ai bcp de donnée dans la table en plus des 12 mois de l'année(ici j’ai donné juste Janvier et Février).

    Mais cet essai ne m'a rien donné, et j'aimerai bien que vous me corrigiez.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je ne vais pas répondre à ta question, mais juste te donner une indication, on ne met jamais de calculs dans une table, tu veux faire des sous-totaux comme dans une feuille Excel, une table Access n'est pas une feuille Excel.

    C'est le rôle des requêtes de fournir des calculs.

    Quel est le but de cette manœuvre ?

    Starec

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Starec Voir le message
    Bonjour

    Je ne vais pas répondre à ta question, mais juste te donner une indication, on ne met jamais de calculs dans une table, tu veux faire des sous-totaux comme dans une feuille Excel, une table Access n'est pas une feuille Excel.

    C'est le rôle des requêtes de fournir des calculs.

    Quel est le but de cette manœuvre ?

    Starec
    Oui je sais qu'on effectu pas de calcul au sein des tables access, si j'ai ecris le produit entre parenthèses c'est juste pour expliquer au lecteur ce que cette case représente, et c'est effectivement pour ça que j'ai fait la requête mise à jour, c'est pour faire le calcul, et que à chaque fois que je change les données de chargement dans un formulaire par exemple j'exécute la requête pour qu'elle me mette à jour le champ Valeur de la table et plus précisément les cases qui correspondent au type Calculée.

    J'espère que j'ai bien expliquer, et si vous trouvez quelque chose de pas clair, je suis la, car vraiment je suis bloquée et je trouve pas de solution, et je pense que j'ai commi l'erreur au niveau de RechDom.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 154
    Points : 148
    Points
    148
    Par défaut
    Bonsoir...

    Oui, tu as bien expliqué, y a pas de soucis, mais ce que Starec te dis, c'est qu'on ne stocke pas de champ calculé dans une table.. Par conséquent, l'indicateur A3 ne doit pas exister dans ta table..
    Pour effectuer ce calcul, tu dois passer par une requete , si c'est pour présenter dans un état, par exemple.
    Si c'est juste pour afficher sur un formulaire, il y a juste à creer une zone de texte sur ton formulaire et à mettre la propriété "source controle " à =[Nom de la zone de texte1 du formulaire]*[Nom de la zone de texte1 du formulaire2]..
    Ca devrait le faire..
    Mais tu devrais d'abord étudier la conception de ta table .. A mon avis il y a quelque chose qui cloche.....
    Pour que quelqu'un t'aide, il faudrait préciser plus en détail ce que tu veux faire à la base......

    Bon courage.

    Didier71

  5. #5
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    1 table et 2 requetes :
    pour ma part, je fait une requete qui calcule A1+A2, le résultat étant stocké dans une table intermediaire puis une requete mise à jour va alimenter A3
    Ce n'est pas compliqué, c'est efficace.

  6. #6
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Premièrement, je vous remerci pour l'effort que vous avez fait pour comprendre le problème et pour vos réponses.
    Alors soit j'ai mal présenté le problème, soit j'ai pas encore le niveau pour comprendre vos réponses
    Bon, en ce qui concerne le calcul sur la table, le champ Valeur il est vide au départ, c'est l'utilisateur qui doit saisir ses propres valeurs mais juste dans les champs A1 et A2 de chaque mois, et A3 reste vide, j'ai créé un formulaire qui contient tous les enregistrement A1 et A2, je l'ai appelé: Donnée, et un autre formulaire que j'ai appelé Calculée et qui contient seulement les enregistrement de A3, une fois je fais entrer mes données dans le champ Valeur du premier formulaire et je valide en cliquant sur un bouton de commande, je vois affiché le 2ème formulaire avec le champ Valeur qui est rempli des A3 bien calculées. Alors quand je retourne vers ma table de départ qui contenait le champ Valeur vide, je la trouve bien remplie.

    Pour ce petit exemple que je vous ai donné c'est facil de créer deux requetes de types mise à jour pour chacun des deux mois, mais le problème c'est que ma table d'origine, elle contient 12 mois et pour chaque mois 344 enregistrements, et il y a des enregistrements qui représentent un produit d'autres enregistrement, ceux qui représentent des sommes, des divisions... et biensur des enregistrements qui ne sont que des données à saisir et non pas à calculer, et tout ça à l'intérieur du champ Valeur.

    Voila, j'ai écris bcp, mais juste pour vous eclaircir et non pas vous embrouiller.

    Merci encore une fois, et j'attend toujours vos suggestions.

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    C'est bon, j'ai trouvé l'erreur, c'été jsute au niveau de RechDom que j'avais ecri sous cette forme:
    RechDom("Valeur";"Table1";"[Indicateur]='A1' and [Mois]='Formulaires![Formulaire1]![Modifiable0]'")*RechDom("Valeur";"Table1";"[Indicateur]='A2' and [Mois]='Formulaires![Formulaire1]![Modifiable0]'")

    alors que je devais ecrire:
    RechDom("Valeur";"Table1";"[Indicateur]='A1' and [Mois]=Formulaires![Formulaire1]![Modifiable0]")*RechDom("Valeur";"Table1";"[Indicateur]='A1' and [Mois]=Formulaires![Formulaire1]![Modifiable0]")

    je devais pas utiliser les cotes c'est tout.

    Et je suis désolée parce que je viens de me rendre compte que j'avais ecri la formule érronnée, ce qui vous as embrouillé, j'ai cru que je l'ai ecri sous forme produit alors que je l'ai pas fait, j'ai ecri juste la première partie.

    En tout cas merci beaucoup pour votre aide.

  8. #8
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Salam,

    Mais j'ai encore uen petite question; dans une requête de type mise à jour, dans la case qui coorrespond à mise à jour, j'ai une formule trop longue, alors il l'accepte pas, il m'envoi le message:"Texte trop long pour être modifié"

    Que dois-je faire?

    Merci d'avance.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/02/2015, 19h17
  2. Réponses: 3
    Dernier message: 29/10/2011, 14h24
  3. [AC-2007] Mettre à jour une table alors que rien n'a été prévu pour cela
    Par tibofo dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/04/2010, 11h33
  4. probleme pour mettre à jour une table
    Par micker dans le forum Langage
    Réponses: 4
    Dernier message: 05/11/2009, 14h11
  5. Problème pour mettre à jour une table SQL
    Par Bes74 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 27/03/2009, 20h21

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