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 :

Valeur d'un contrôle texte dans un champ d'une table [AC-2007]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 22
    Points
    22
    Par défaut Valeur d'un contrôle texte dans un champ d'une table
    Bonjour a tous

    Je trouve une difficulté à transférer une valeur calculée d'un un formulaire à un champs de la table source.

    Ma valeur calculée dans le formulaire est intitulé "Reste". Le nom du champs de la table source est intitulé "Reste_OP_EL"

    Merci de votre aide
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Le champ "Reste_OP_EL" de table est par défaut à 0 ou NULL.
    C'est sur l'événement Current(), AfterUpdate() ou AfterInsert() (à adapter selon les circonstances) que ce champ sera alimenté :
    • soit par un clause SQL via DB.Execute
    • soit directement dans le formulaire : Me.Reste_OP_EL.Value= #Valeur

    Si tu ne peux pas laisser appaître le champ nommé "Reste_OP_EL" dont la source de contrôle est elle-même "Reste_OP_EL", tu peux masquer ce champ et ajouter un autre champ indépendant que se nomme "txtTmpReste_OP_EL" et qui reçoit la valeur par l'intermédiare d'une formule ou d'une fonction.

    le code sera alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Reste_OP_EL.Value= Me.txtTmpReste_OP_EL.Value
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Expert confirmé Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Points : 4 299
    Points
    4 299
    Par défaut
    Salut,

    Moi la question que je me pose est de savoir s'il est vraiment pertinent de mémoriser cette info calculée dans le champ d'une table. Si tu le fait,

    • d'une part, c'est de l'espace perdu dans ta base
    • D'autre part, à chaque modif des champs source, il faut refaire le calcul et mettre à jour l'info.


    Normalement, la logique voudrai que tu fasses le calcul dans une requête. Et que cette requête soit utilisée par le formulaire et éventuellement états. Là, plus de casse tête pour savoir si et quand et comment faire la mise à jour du champ.
    En plus, comme l'info est stockée dans la base, rien n'empèche d'aller modifier directement la valeur et du coup tu peux avoir n'importe quoi !!!.

    C'est toi qui vois
    Jérôme

    " Je pense donc je suis. Tu es donc j'apprends ". (GCM)

    Si ce message vous à aidé, merci de cliquer sur . Si ce message est résolu, cliquez sur .

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par argyronet Voir le message
    Bonjour,

    Le champ "Reste_OP_EL" de table est par défaut à 0 ou NULL.
    ....
    le code sera alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Reste_OP_EL.Value= Me.txtTmpReste_OP_EL.Value
    Merci argyronet
    Je n'ai pas compris comment intégrer ce code, je débute en access.

    Citation Envoyé par jerome.vaussenat Voir le message
    Moi la question que je me pose est de savoir s'il est vraiment pertinent de mémoriser cette info calculée dans le champ d'une table. Si tu le fait,
    .....
    Merci jerome.vaussenat
    Moi j'évite de faire le calcul dans le champs de la table, parce que après 10 milles lignes, la manipulation de la base de donnée devient lente.
    Je veux que le calcul de chaque opération se fait dans le formulaire, d'une part pour l'afficher à l'utilisateur, d'autre part pour l'enregistrer comme valeur dans le champs correspondant de la table.
    Comment faire une requête qui récupère les arguments des champs texte du formulaire et l'enregistrer dans le champs correspondant de la table ??

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Humm, ce que jerome vaussenat souligne, ce n'est pas de faire le calcul dans la table mais de le faire au moment où tu en as besoin, ce qui est tout à fait pertinent.

    Il faut constater que c'est une information d'affichage et que quoi qu'il en soit, stocké ou pas, le reste à payer sera toujours (dans ton appli) la différence entre ce qui a été versé et le montant à payer.
    Donc effectivement, stocker cette valeur peut paraître superflu.

    C'est comme stocker le montant à payer de la commande... Ce n'est pas utile.

    En ce qui concerne mon explication, tu as fait une erreur en posant une formule dans ton champ puisque celui-ci possède une source de contrôle.

    Ce que je te suggère :
    c'est de mettre un champ caché qui est le champ :
    • Nom: Reste_OP_EL
    • Source de contrôle : Reste_OP_EL


    et et champ visible :
    • qui sera nommé : txtTmpReste_OP_EL
    • qui contiendra une formule :

    Sur l'évenement Current(), tu inscris le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Reste_OP_EL.Value= Me.txtTmpReste_OP_EL.Value
    Il est à noter que cette instruction peut également et par préférence déclencher la mise à jour de ton champ dans l'événement AfterUpdate du champ Payé s'il y a saisie dedans mais je ne sais pas comment est construit ton formulaire et il faut donc procéder à des essais.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    Merci infiniment, mais je n'arrive pas à appliquer vos instruction.
    Si vous pouvez le faire à ma place, je vous remercie
    Fichiers attachés Fichiers attachés

  7. #7
    Expert confirmé Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Points : 4 299
    Points
    4 299
    Par défaut
    Citation Envoyé par argyronet Voir le message
    Humm, ce que jerome vaussenat souligne, ce n'est pas de faire le calcul dans la table mais de le faire au moment où tu en as besoin, ce qui est tout à fait pertinent.
    Remarque très appréciée, merci.
    Jérôme

    " Je pense donc je suis. Tu es donc j'apprends ". (GCM)

    Si ce message vous à aidé, merci de cliquer sur . Si ce message est résolu, cliquez sur .

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par naahou2000 Voir le message
    Bonjour a tous

    Je trouve une difficulté à transférer une valeur calculée d'un un formulaire à un champs de la table source.

    Ma valeur calculée dans le formulaire est intitulé "Reste". Le nom du champs de la table source est intitulé "Reste_OP_EL"

    Merci de votre aide
    Bonjour

    Si pas de solution, je suis obligé de créer un autre contrôle dans lequel je saisis manuellement le reste de chaque opération qui a son tour s'enregistre dans la table. Mais je crois que cela m'engendre beaucoup d'erreur d'oublie de saisie.
    Je cherche a enregistrer ce reste parce que un client peut avoir beaucoup de reste par opération, j'aurai besoin par une requête de savoir la somme des restes pour chaque client.

  9. #9
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Il n'y a rien de sorcier.

    Tu avais déjà mis le champ Reste_OP_EL ; il te suffit une fois que cela te convient de le masquer... (Visible=Non).

    Déjà, tu enlèves les formules que tu as posées dans les événenements de la zone de texte txtTmpReste_OP_EL et sur le zone de texte Paye_EL, tu créés l'événement AfterUpdate() comme suit (en cliquant sur les [...])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Paye_EL_AfterUpdate()
        Me.Reste_OP_EL.Value = Me.txtTmpReste_OP_EL.Value
    End Sub
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  10. #10
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2012
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    Merci
    c'est super, fonctionne correctement comme je veux, c'est une bonne astuce, elle va me servir comme prototype prochainement.

    Bravo

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

Discussions similaires

  1. Requette d insertion d une valeur dans un champ d une table
    Par djibsonne dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/05/2010, 10h52
  2. Importer un fichier texte dans des champs d'une table
    Par Cyriusix dans le forum Modélisation
    Réponses: 1
    Dernier message: 17/04/2008, 14h18
  3. Réponses: 1
    Dernier message: 14/11/2007, 11h53
  4. Import d'un fichier texte dans UN champ d'une table
    Par Gunther dans le forum Access
    Réponses: 4
    Dernier message: 06/12/2006, 20h04
  5. insertion du text dans un champs d'une page internet
    Par lassmust dans le forum Web & réseau
    Réponses: 1
    Dernier message: 24/04/2006, 10h55

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