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 :

Pb de reception de calcul dans forms principale


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Par défaut Pb de reception de calcul dans forms principale
    Bonjour a tous,
    Je sèche un petit problème qui me prend la tête.

    Lorsque je met à jour le sous formulaire un calcul est récupéré dans le formulaire principale.
    Mais lorsque le calcul 'RestantDu'(voir code en bas) doit s'effectuer 'TtRegl' n'est pas encore à jour ???
    Ce qui est encore plus fort, c'est que '[TTRègl.] à la bonne valeur à jour mais pas 'TtRegl !!!!!
    J'ai inséré en dessous ma prose.
    Quelqu'un peut-il m'aider ?
    Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim RestantDu As Integer
    'Récupération du contenu des champs calculés dans un formulaire
    TtRegl = Forms!F_ClientsDossier!S_F_ClientsDossier !S_F_ClientsFactures![TT Règl.]
    TTC = Forms!F_ClientsDossier!S_F_ClientsDossier!S_F_ClientsFactures![Total TTC]
    'Calcul
    RestantDu = TTC - TtRegl
    'Action suivant le RestantDu
    If RestantDu = 0 Then
    Forms!F_ClientsDossier!S_F_ClientsDossier!S_F_ClientsFactures![Payé] = -1
    End If
    If RestantDu <> 0 Then
    Forms!F_ClientsDossier!S_F_ClientsDossier!S_F_ClientsFactures![Payé] = 0

  2. #2
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    Bonsoir,

    Je ne suis pas sur d'avoir bien compris ton problème. Notamment ,si Ttregl est une variable (je suppose )... ou un champ...



    En tout cas ... tu cherches visiblement à atteindre dans un sous -sous -formulaire ... c'est ça ?

    Dans ce cas la syntaxe devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TtRegl = Forms!F_ClientsDossier!S_F_ClientsDossier.form!S_F_ClientsFactures!.form[TT Règl.]

    Rappel:

    • Forms
      = collection des formulaires ouverts
    • Forms!F_ClientsDossier
      = un des formulaires (supposé ouvert)
    • Forms!F_ClientsDossier!S_F_ClientsDossier
      = le contrôle contenant un sous formulaire
    • Forms!F_ClientsDossier!S_F_ClientsDossier.form
      = le sous-formulaire

    ...



    EDIT: Par curiosité j'ai refait quelques tests... Visiblement les versions récentes (Access 2007 au moins, peut être avant...) sont plus tolérantes sur la syntaxe .

    Si la syntaxe rappelée ci-dessus reste la bonne, il accepte également des syntaxes raccourcies (notamment en ne mentionnant pas la propriété .form).
    Il s'agit sans doute des effets de propriétés par défaut ....
    Je continue toutefois de conseiller l'utilisation de la syntaxe complète



    bon dev

  3. #3
    Membre Expert Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Par défaut
    Ne serait-ce pas un simple Recalc dont tu as besoin (en plus de l'apport de Mout) ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim RestantDu As Integer
    
    Me.Recalc
     'Récupération du contenu des champs calculés dans un formulaire
    TtRegl = Forms!F_ClientsDossier!S_F_ClientsDossier.Form!S_F_ClientsFactures!.Form[TT Règl.]

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Par défaut Grand remerciement à tous les deux
    Merci beaucoup a tous les deux pour vos informations.

    La solution était la fonction 'Me.Recalc'
    Il est exact qu'il est difficile d'expliquer simplement et clairement les imbrications de plusieurs formulaires et sous formulaires dans une logique qui n'est pas toujours évidente mais qui répond à un besoin précis.

    Merci pour votre aide


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

Discussions similaires

  1. Filtre sur date dans calcul total form.
    Par lbar012001 dans le forum IHM
    Réponses: 2
    Dernier message: 21/06/2010, 11h11
  2. [Normalisation] propriété calculée dans un MCD et 1ere forme normale
    Par new_wave dans le forum Schéma
    Réponses: 10
    Dernier message: 06/10/2008, 00h40
  3. ADOConnection seulement dans la form principale
    Par eemii dans le forum Composants VCL
    Réponses: 16
    Dernier message: 18/05/2008, 20h23
  4. expression de calcul dans un form
    Par 3wicha dans le forum IHM
    Réponses: 7
    Dernier message: 24/08/2007, 15h02
  5. Intégrer une Form dans une Form principale
    Par rol72 dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/09/2006, 14h20

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