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

IHM Discussion :

Case "OUI/NON" et sous-formulaire calculé [AC-2007]


Sujet :

IHM

  1. #1
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Points : 98
    Points
    98
    Par défaut Case "OUI/NON" et sous-formulaire calculé
    Bonjour à tous,

    Préambule : j'ai fait mes devoirs, j'ai cherché dans le forum avant...

    J'ai dans un formulaire principal, une case à cocher OUI/NON. J'ai également un sous-formulaire ne contenant qu'un champ issu d'une requête, qui calcule un montant. Si la case est cochée (donc OUI), le calcul (dans la requête) prend en compte un montant, si NON, le calcul omet ce montant.

    Je voudrais que l'utilisateur voie tout de suite le solde changer selon qu'il coche ou décoche cette case.

    J'ai essayé toute la panoplie que j'ai trouvée sur le forum, avec "Private Sub Pourcent15_AfterUpdate()" dans le code de mon formulaire principal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Me.MonSousFormulaire.Requery
    Me.Recalc
    Me!NomSousFormulaire.requery 
    NomSousFormulaire.Form.Requery
    Etc.

    Rien à faire, je suis toujours obligée de passer à l'enregistrement suivant et revenir à mon enregistrement pour voir la mise à jour de mon sous-formulaire.

    Quelqu'un peut m'aider s'il vous plaît ?

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    As-tu essayé le "Me.aaaa.refresh" (aaaa étant le nom du contrôle sous-formulaire) ?

    Comment est calculé ce montant ? Directement dans ta requête en fonction de ta case à cocher ? Comment est-elle enregistrée ?

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Pour te répondre, il faut voir plus que ce que tu nous dis !

    Peux-tu montrer ton formulaire dans une BDD au format Access2000 ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #4
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Points : 98
    Points
    98
    Par défaut
    Bonjour Gado,

    Alors je viens d'essayer ce que tu proposes : même problème. J'ai même fait un test en intercalant le nom du sous-formulaire ("Me.SousFormulaire.aaaa.refresh"), ça ne marche pas non plus.

    Dans ma requête, mes formules sont bâties ainsi :


    Un champ "Pourcentage" qui calcule 15 % d'un certain montant : Pourcentage: VraiFaux([Pourcent15]=Oui;[AménagementInitial]*15/100;0)
    Et mon "Solde", qui additionne d'autres montants et mon champ "Pourcentage".

    Le nom de mon contrôle/champ dans mon sous-formulaire est "Solde".

  5. #5
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Peux-tu montrer ton formulaire dans une BDD au format Access2000 ?
    Bonjour Claude,

    Rien que le formulaire et la requête, sans données ? Car ce sont des données confidentielles...

  6. #6
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Points : 98
    Points
    98
    Par défaut
    Un renseignement supplémentaire : ma requête qui calcule mon solde est issue d'une autre requête... Est-ce que ça peut être la raison de ma difficulté ? Est-ce que je devrais rafraîchir la requête "mère" plutôt que la requête qui alimente mon sous-formulaire ?

  7. #7
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    D'accord.

    Alors, j'ai un projet qui ressemble plus ou moins à ce que tu décris où, j'utilise une checkbox pour mettre en place des calculs venant d'une requête mais à la différence de toi, mon contrôle est déjà dans le sous-formulaire.

    Cependant, lorsque je coche la case, sur la procédure "Private sub chk_1_Click", j'applique la fonction "Me.recalc".
    Donc j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private sub chk_1_Click()
    Me.recalc
    End sub
    Il faut, je pense que tu utilises cette petite ligne de code. Regarde si cela peut s'appliquer simplement sur le formulaire principal.

    Après, une idée à exploiter, serait d'enregistrer les modifications réalisées puis de lancer le recalcul ou de rafraîchir ton formulaire.

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour Claude,

    Rien que le formulaire et la requête, sans données ? Car ce sont des données confidentielles...
    Bricole un exemple non confidentiel.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #9
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Points : 98
    Points
    98
    Par défaut
    Ça fonctionne Gado !!

    Un grand merci !

    Question "cosmétique" : il y a un laps de temps d'environ 4 à 5 secondes pour le rafraîchissement de mon formulaire. Il y a moyen de l'éliminer ou on vit avec et on est content quand-même ?

    Claude, puisque Gado m'a trouvé la solution, nous allons laisser tomber la phase "bricole quelque-chose" LOL !

    Merci à tous les deux de votre temps.

  10. #10
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Super !
    Il y a diverses raisons aux laps de temps d'un recalcul :
    • Le temps de calculer la requête (en fonction des calculs que tu mets dans ta requête)
    • Le temps de rafraichir le formulaire (en fonction du nombre de contrôles et de leur types présents)
    • Le temps de calculer le formulaire (en fonction des calculs de chacun des contrôles (leur source de contrôle))


    Pour accélérer un peu, j'utilise de temps en temps des (voir ci-dessous) qui me permettent de figer l'écran Access pendant les traitements mais dans ton cas, je ne suis pas certain que tu gagnes grand chose...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    docmd.echo false
    '...
    docmd.echo true
    Je pense que Claude saura plus te dire là-dessus

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

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

Discussions similaires

  1. [AC-2003] Récupérer noms de contrôle case à cocher OUI/NON
    Par midasios dans le forum VBA Access
    Réponses: 4
    Dernier message: 19/07/2014, 14h14
  2. Fonction non définie depuis sous formulaire
    Par clickandgo dans le forum VBA Access
    Réponses: 5
    Dernier message: 02/06/2013, 18h36
  3. [AC-2003] Interrogation par case à cocher (Oui/Non)
    Par Orange-red dans le forum IHM
    Réponses: 2
    Dernier message: 16/11/2010, 08h40
  4. [AC-2003] case à cocher oui/non
    Par nico69100 dans le forum Modélisation
    Réponses: 3
    Dernier message: 16/04/2009, 14h08

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