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 :

[CHAMP CALCULE] Modification impossible sur calcul simple


Sujet :

Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 19
    Points : 3
    Points
    3
    Par défaut [CHAMP CALCULE] Modification impossible sur calcul simple
    Bonjour,

    Le but : simple, j'ai des prix HT, mes fournisseurs me donnent des liste de prix en HT et TTC, je dois donc modifier l'un ou l'autre.

    Mon champ calculé TTC est fait mais impossible d'en modifier la valeur pour que celle ci se repercute sur le prix HT.

    - Est ce une limitation d'access ??
    - Moi qui est loupé un épisode ???
    - Un passage par le VB me permettrait de m'affranchir de ce probleme ??? et si oui, des pistes ....

    Merci d'avance.

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Un champ calculé est calculé. Dés lors, cela implique qu'il est en lecture seule.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 19
    Points : 3
    Points
    3
    Par défaut
    Je suis d'accord sur le fait qu'il soit en lecture seule, pas sur le fait qu'il le SOIT...... pour moi c une limitation qui n'a pas lieu d'etre. En quoi un calcul Y=(X+1) ne permettrait pas de changer X si on touche a Y......

    Je veux bien que cela puisse poser des problemes dans certains cas, mais kan meme, mon exemple de HT vers TTC est basique pour l'utilisation d'un SGBDR.....

    Et d'ailleurs je ne devrais pas etre le seul ou a avoir poser la question, ou a avoir une reponse, cela devrait ete basique sous Access ......

  4. #4
    Membre habitué

    Inscrit en
    Mars 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 92
    Points : 127
    Points
    127
    Par défaut
    Bonjour,
    il y a peut être une autre solution que de se braquer sur la modification d'un champ calculé. Mais tu ne donnes pas assez de précision:
    Ces listes de prix doivent elle être importées? dans une liste y a-il un mélange de TTC et HT?
    Si tu pouvais un peu préciser...

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Ben tu ne comprends pas les principes de conception d'un modèle là

    Dans une base de données on ne stocke jamais des données calculées. Dés lors un champ calculé est recalculé par une règle de gestion. Il n'existe donc uniquement par cette règle. Une saisie opérateur ne peut pas venir remplacer cette règle et heureusement, sinon c'est toute l'intégrité et la cohérence du shéma qui prendrait l'eau.

    Soit tu stocke le prix ht et la tva, soit le prix ttc et la tva

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 19
    Points : 3
    Points
    3
    Par défaut
    OK, je concois le fait de perdre l'integrité, mais pourquoi la gestion, ELLLE, ne le permet pas. Si la regle défini est trop compliqué(appel multiple entrainant une ambiguité sur qui changer => A = B +C => si tu change A c sur quil va avoir du mal), mais sur un appel direct, je ne comprend pas que cella ne soit pas possible en natif, désolé.....si c comme ca, de toute facon je n'ai aps le choix.

    Verrais tu un moyen de contourner cette "limitation" ????

    Ou n'ai je vraiment rien compris ..... lol.

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 383
    Points : 19 805
    Points
    19 805
    Billets dans le blog
    66
    Par défaut
    Salut,

    Dans ce cas tu supprime ton champ calculé TTC

    Si tu as sur ton form les 2 contrôles HT et TTC

    tu attaches les procédures évènementielles suivantes à ton form et à tes 2 contrôles HT et TTC:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Sub Form_Current()
     
       If Not IsNull(Me.HT) Then
       Me.TTC = Me.HT + Me.HT * (TVA / 100)
       End If
     
    End Sub
     
    Private Sub HT_AfterUpdate()
     
       If Not IsNull(Me.HT) Then
       Me.TTC = Me.HT + Me.HT * (TVA / 100)
       End If
     
    End Sub
     
    Private Sub TTC_AfterUpdate()
     
       If Not IsNull(Me.TTC) Then
       Me.HT = Me.TTC / (1 + (TVA / 100))
       End If
     
    End Sub

    Je suppose que tu connais la valeur de TVA (ex: 5.5..)

    @+

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 19
    Points : 3
    Points
    3
    Par défaut
    Merci, je teste ca dans la soiree.

    En VB, ca doit passer. Car access out...

    ++

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 19
    Points : 3
    Points
    3
    Par défaut
    Ca marche et ca ne marche pas En mode formulaire Tiptop, par contre en mode "Feuille de donnée" le champ prend la valeur de l'enregistrement en cours, chose normale.....
    Pas pratique vu que mon but est de faire du copier coller via des feuille excel vers ma liste de produit.....

    Je regarde pour une solution (avec un cours de Cafeine, mais je suis au debut de la lecture...).

    C de la faute a Access ca !!!!!!!

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 383
    Points : 19 805
    Points
    19 805
    Billets dans le blog
    66
    Par défaut
    Resalut,

    essaie de remplacer la proc sur Form_Current() par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub Form_Current()
     
       If Me.CurrentView = 1 Then   ' mode formulaire
       Me.TTC.ControlSource = ""
       Me.HT.AfterUpdate = "[Event Procedure]"
     
          If Not IsNull(Me.HT) Then
          Me.TTC = Me.HT + Me.HT * (TVA / 100)
          End If
     
       ElseIf Me.TTC.ControlSource = "" Then   ' mode feuille de données
       Me.TTC.ControlSource = "=[HT] + [HT] * (5.5 / 100)"
       Me.HT.AfterUpdate = ""
       End If
     
    End Sub

    Problème tu ne pourras pas mettre à jour ton contrôle TTC en mode feuille de données..

    @+

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 19
    Points : 3
    Points
    3
    Par défaut
    Merci de tes reponses en tout cas...... j'allais abandonner sur ce point....... donc ca sera mieux que rien, et ta technique est tres interressante.

    Je ferais un test des que possible.

    Merci encore.

Discussions similaires

  1. [WD-2003] Calcul sur champs de fusion impossible
    Par Thomf dans le forum Word
    Réponses: 4
    Dernier message: 12/02/2015, 10h50
  2. jointure impossible sur champ calculé
    Par gg2vig dans le forum Toad
    Réponses: 2
    Dernier message: 15/01/2009, 20h05
  3. calcul de date sur un regroupement de champ en vb
    Par bazilus dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2006, 13h29
  4. Réponses: 12
    Dernier message: 26/08/2006, 11h29
  5. Réponses: 5
    Dernier message: 02/08/2006, 13h29

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