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 à cocher automatique? [AC-2007]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut Case à cocher automatique?
    Bonjour,

    Je voudrais que mon champs "Conformité" qui est à cocher se fasse automatique lorsque mon autre champs est de couleur vert ou jaune.

    Explique :

    1er champ contient une mise en forme de couleur (rouge, vert, jaune) lorsque celui-ci est vert ou jaune j'aimerais que ma case à cocher "Conformité" se coche automatiquement. Mais lorsqu'il est rouge, je ne veut pas qu'il soit cocher. Est-ce possible?

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 332
    Points : 23 787
    Points
    23 787
    Par défaut
    Quelles sont les conditions du changement de couleur ?

    À mon avis il va falloir implanter les mêmes conditions, via du VBA, pour ta case à cocher.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    Donc voici mes conditions

    1) Valeur du champ inférieur à : Date()-365 (se mets en rouge)
    2) Valeur du champ entre : Date()-365 et Date()-62 (se met en vert)
    3) Valeur du champ entre : Date()-62 et Date() (se met en jaune)

    Merci!

  4. #4
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Joze28,

    Tu peux récupérer les valeurs d'un contrôle en utilisant la propriété BackColor.

    En fonction de la valeur (vérifie d'abord les codes) un select case te permettra facilement de cocher ta case.

    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 332
    Points : 23 787
    Points
    23 787
    Par défaut
    Merci Jean-Marie, je n'y avais pas pensé.

    @Joze28 :

    • Ta case à cocher est-elle associée à un champ booléen dans ta source de donnée ?
    • Es-tu dans un formulaire en mode continu ou "1 enr à la fois" ?


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    Merci pour vos conseils, mais je suis vraiment qu'à mes débuts dans Access. Comment exactement j'applique vos recommandations?
    Techniquement comment je fais?
    Qu'est-ce qu'un champ booléen? Mon formulaire est de ce qui est le plus simple, un enregistrement à la fois!

    Meric de votre patience...

  7. #7
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Joze28,

    A la relecture de ton message je vois que tu parles de condition de mise en forme.

    Tu vas donc gérer sur les mêmes conditions ton chekBox que ta mise en forme conditionnelle ainsi sur la propriété événement :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Diff_Date = DateDiff("d", Me.Dte_Condition, Date)
        Select Case Diff_Date
        '
        Case Is <= 62
            Me.ChkBox.Value = True
        Case Is <= 365
            Me.ChkBox.Value = True
        Case Else
            Me.ChkBox.Value = False
        End Select

    Attention, il faut que ton champ soit dépendant de la source de données que tu utilises, dans le cas contraire c'est l'ensemble des CheckBox qui sera coché ou décoché. Pourquoi ne pas exécuter une requête avant le lancement de ton formulaire qui permettrait de faire ce calcul. Cette requête pourrait être ainsi réutilisée lors de différents appels et pas nécessairement à l'affichage de ton formulaire...



    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 332
    Points : 23 787
    Points
    23 787
    Par défaut
    Un champ booléen est un champ qui peut contenir 3 valeurs seulements : Null, Vrai, Faux. Pour représenter Vrai/Faux on utilise aussi Oui/Non ou -1/0. On les appelle aussi champ Vrai/Faux ou champ Oui/Non.

    Note culturelle :-), booléen vient de M. BOOLE l'inventeur de la logique binaire (http://fr.wikipedia.org/wiki/George_Boole).

    On se sert généralement de case à cocher pour les afficher.

    Un champ lié (ou associé) est un champ d'un formulaire qui affiche et permet de modifier un champ correspondant dans la source de données.

    Personnellement j'associerai une procédure à l'événement sur Activation (OnCurrent) de l'enregistrement et je mettrai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select case me.NomTonChampColore 'Me. représente le formulaire courrant.
       case < Date()-365 'Rouge
          me.NomTaCase=false
     
       case Date()-364 to Date()-62 'Vert
          me.NomTaCase=true
     
       case Date()-61 to Date() 'Jaune
          me.NomTaCase=true
     
       case else
          Error(5) 'Cas impossible, juste pour attraper d'éventuelles erreurs dans la logique de sélection.
     
    end select
    Si tu veux travaller avec les couleurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select case me.BackColor 'Me. représente le formulaire courrant.
       case VbRed       
          me.NomTaCase=false
     
       case vbGreen
          me.NomTaCase=true
     
       case vbYelow      
          me.NomTaCase=true
     
       case else
          Error(5) 'Cas impossible, juste pour attraper d'éventuelles erreurs dans la logique de sélection.
     
    end select
    VbRed, VbGreen et vbYelow sont des couleurs 'standard', il se peut qu'elles ne correspondent pas à celles que tu as choisies. Dans ce cas là les remplacer par leur "Valeur" (ex : vbRed=255) indiquée dans la propriété du contrôle.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    Dans quoi je mets l'événement : "sur clic", "Avant MAJ", "Ap`res MAJ".... je n'ai pas sur Activation (OnCurrent) de l'enregistrement

  10. #10
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    à JM : Dans quel propriété d'événements j'inscris le code??? Dois-je me positionner sur mon champs de couleur (date) ou sur ma case à cocher?

  11. #11
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Joze28,

    Quand tu parles que ton premier champ contient une mise en forme de couleur (97 n'utilisant pas la forme conditionnelle j'exclue cette hypothèse), c'est que la couleur calculée est forcément associé à un événement existant (sur entrée / sur chargement ou sur clic mais quelque part et je n'ai pas le formulaire sous les yeux pour te le dire).

    Une fois localisé cet événement, il te suffit juste de rajouter ou intégrer le checkbox (Me.ChkBox.Value = False) dans les conditions.

    plus simplement peux tu m'envoyer l’événement associé voire mieux ton application (si pas de données sensibles bien évidemment). Dans ce cas indique mois le nom du formulaire.


    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  12. #12
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    aide.doc

    Je ne peux pas t'envoyer mon fichier Access car il y a trop d'info confidentiel. Mais je t'ai préparer un résumé avec des capture d'écran dans le fichier joint.

    Merci!

  13. #13
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Joze28,

    Même si c'est pas la panacée j'y vois un peu plus clair donc il va falloir créer un événement sur le changement d'onglet

    Donc tu sélectionne ton onglet et sur la liste des propriétés tu cherches Sur Changement puis le bouton ... à droite. Tu choisis ensuite générateur de code.
    Tu vas ensuite avoir le nom de ta procédure et son end (il faudra taper entre ces lignes).

    Ton onglet possède 2 choix (détails de l’unité et conformité), il faut bien veiller à gérer l’événement sur l'onglet 2 (dont la valeur est représentée par 1) car l'onglet 1 sa valeur vaut 0.

    Lorsque dans ton code on aura mis le test il faudra calculer la différence de date et cocher la case correspondant. Alors imaginons que ton onglet s’appelle CtlTab_Detail, que ton champ Date reçu signé en mise à jour s’appelle PCA_dateMAJ et que ta case s’appelle chk_dateMAJ ton code devrait ressemble à peu près à çà :

    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
    Private Sub CtlTab_Detail_Change()
        '
        If Me.CtlTab_Detail = 1 Then
    	If isdate(Me.PCA_dateMAJ) then		' contrôle si le champ est bien de type date
    	    	Diff_Date = DateDiff("d", Me.PCA_dateMAJ , Date) ' calcule la difference de date en Jours à la date d'aujourd'hui
        		Select Case Diff_Date
       		 '
        		Case Is <= 62				' entre 0 et 62 jours
            			Me.chk_dateMAJ .Value = True
        		Case Is <= 365				' entre 62 et 365
            			Me.chk_dateMAJ .Value = True
        		Case Else					' dans les autres cas
            			Me.chk_dateMAJ .Value = False
       		 End Select
    	End if
        End If
        '
    End Sub
    Voili voilou

    Il n'y a plus qu'à enregistrer et vérifier ce qui se passe !

    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  14. #14
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    :-( Ça ne fonctionne pas. Voir ma pièce jointe pour le message d'erreur.

    PS : Mon onglet se nomme : CltTab54
    Mon champ date : PCA_date_MAJ
    Ma case à cocher : Conformite_PCA
    Fichiers attachés Fichiers attachés

  15. #15
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Joze28,

    Regarde bien mon code et le tien. Tout est dit dans le message....


    Ton Select Case il est ou ?

    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  16. #16
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    Désolé de mon ignorance, je suis vraiment débutante.... mais c'est quoi mon select case??? Mon 2e onglet?

  17. #17
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    Ok je viens de comprendre... j'essai!

  18. #18
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Joze28,

    Le select case correspond aux cas de situation renvoyé par le nombre de jours s'écoulant entre la date d'aujourd'hui et la date calculée.


    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  19. #19
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    JJimBoLion,
    Ok je comprends, mais maintenant un nouveau message d'erreur..... je suis découragé...
    Fichiers attachés Fichiers attachés

  20. #20
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Joze28,

    En forgeant on devient forgeron

    Sans même avoir ton projet, vérifies le nom de ton contrôle... sur tes exemples je vois 2013_...

    Mais ta solution est proche ... courage


    Donc à chaque ligne d'erreur tu avances


    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/02/2014, 11h36
  2. [XL-2003] Cases à cocher automatiques
    Par gbbtt dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 11/04/2012, 13h09
  3. [AC-2010] Case à cocher automatique
    Par Kevin80 dans le forum IHM
    Réponses: 2
    Dernier message: 02/05/2011, 10h36
  4. Cocher automatiquement une case suivant une autre
    Par Noline dans le forum Access
    Réponses: 16
    Dernier message: 26/07/2006, 18h17
  5. peut on cocher, une case a cocher, automatiquement ?
    Par MCarole dans le forum Access
    Réponses: 19
    Dernier message: 17/07/2006, 14h25

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