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

VBA Access Discussion :

Problème de valeur récupérée dans une variable


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Problème de valeur récupérée dans une variable
    Bonjour,
    je travaille actuellement pour mon association sur une base de gestion de projets et de factures.

    Pour la partie facturation j'ai deux tables Facturation et Facturation_detail
    (un projet pouvant être facturé en plusieurs fois, les tables sont liées par le champ N°Fact en 1 à plusieurs)

    J'ai créé un formulaire Facturation_saisie à partir d'une requete basée sur la table Facturation-saisie et un sous-formulaire Facturation_detail directement construit sur la table, champ père et fils = N°Fact


    dans mon sous-formulaire j'ai un champ indépendant qui calcule la somme Montant_facturé.
    je veux récupérer cette valeur pour l'attribuer ensuite au champ Total_facture de mon formulaire principal.
    j'ai fait ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Montant_facturé_Exit(Cancel As Integer)
     
    Dim valfacture As Integer
     
    Me.Refresh
    valfacture = [Texte12].Value
    Forms![Facturation-Saisie].[Total_facture].Value = valfacture
    MsgBox valfacture, vbCritical
     
    End Sub

    J'ai deux problèmes sur lesquels je bloque :
    1 -
    le problème c'est que la valeur valfacture retournée correspond à la valeur avant recalcul du champ [Texte12] ; alors que la valeur de texte12 est correcte.
    j'ai essayé aussi avec l'évènement Form_AfterUpdate()
    le Msgbox se fait avant le refresh et le calcul du champ Texte12

    2-
    comment donner au champ [Total_facture] du formulaire principale la valeur valfacture récupérée ?
    j'ai cette erreur """Erreur d'exécution '7878' - Les données ont été modifiées""" pour la ligne de code Forms![Facturation-Saisie].[Total_facture].Value = valfacture


    voilà des idées ? peut être que je me trompe aussi complètement de méthode ?

    Merci. Sylvie

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut changement de stratégie
    j'ai changé ma stratégie et ne passe plus par une variable mais j'ai toujours un probleme .

    voilà ce que j'ai écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Montant_facturé_Exit(Cancel As Integer)
     
    Me.Refresh
    Forms![Facturation-Saisie].[Total_facture].Value = Me.[Texte12].Value
    Forms![Facturation-Saisie].[Reste_a_payer] = Forms![Facturation-Saisie].[Texte85]
    End Sub
    le soucis est que je suis obligée de sortir 2 fois du champs Montant_facturé pour que les champs du formulaire principal se mettent à jour,
    et si je passe directement du champ au formulaire j'ai un message d'alerte que les données ont été modifiées par un autre utilisateur.

    ce sont des problèmes pour lesquels je n'ai aucune idée des causes donc sur lesquels je ne peux agir

  3. #3
    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
    Utilisez un autre événement tel que beforeupdate.

    Une autre piste consiste à mettre la formule de calcul directement dans la source du contrôle d'affichage puisque, s'agissant d'une donnée calculée, celle-ci n'a pas vocation à être stockée dans la table et donc la zone de texte est logiquement indépendante.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    En fait je stocke la valeur Reste_a_payer dans la table de facturation O_o

    je pensais que c'était plus facile pour avoir cette donnée dans les états.

    je vais changer ça et essayer de l'afficher directement.


    Merci pour votre réponse.

Discussions similaires

  1. [Débutant] Validation d'une valeur numérique dans une variable String
    Par anto84 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 11/07/2007, 10h26
  2. Réponses: 4
    Dernier message: 09/06/2007, 01h33
  3. Réponses: 3
    Dernier message: 14/08/2006, 21h27
  4. [VB6 ArcView9] Recuperer valeur RMS dans une variable
    Par TiT0f dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/05/2006, 15h49
  5. Comment afficher une valeur contenue dans une variable ?
    Par manubrard dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 15h56

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