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 :

champ visible sur condition


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Aides soignant
    Inscrit en
    Novembre 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Aides soignant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2005
    Messages : 125
    Par défaut champ visible sur condition
    Bonjour,

    J'ai une base de donnée pour archiver des dossier malade, j'ai des champ (num, nom, prénom, ....etc), j'ai deux liste déroulante qui ce nomme :
    1/
    Sexe:qui comporte les choix suivants :
    Homme
    Femme

    et

    2/
    "statuSocial" qui comporte les choix suivants :
    Célibataire
    marié
    Divorcé
    veuve

    on a deux champs [NomEpoux] et [PrenomEpoux] pour Femme
    et deux champ [NomEpouse] et [PrenomEpouse] pour Homme

    on doit cacher c'est 4 champs sauf a condition des choix de ces deux liste déroulante qui sont réuni.

    Exemple : Si
    1- [les deux sexe]. célibataire --> les champs ([NomEpoux], [PrenomEpoux], [NomEpouse], [PrenomEpouse]) soit invisible ou désactivé.

    2- [femme]. Marié --> les champs ([NomEpoux], [PrenomEpoux] s'affiche seulement, les champs [NomEpouse], [PrenomEpouse]) reste invisible ou désactivé.

    3- [homme]. Marié --> la c'est l'inverse.

    4- [femme]. Divorcé = [femme]. Marié = [femme]. veuve

    5- [homme]. Divorcé = [homme]. Marié = [homme]. veuve

    J'espère que c'est claire ? désolé si ce n'est pas le cas.

    si c'est réalisable, est ce que vous avez un exemple sous la mais, ou bien un code que je dois insérer. merci

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour,

    Tu aurais pu simplifier en prévoyant NomConjoint et PrenomConjoint : d'une pierre, deux coups !

    De plus, il n'est pas dit qu'à l'avenir le conjoint sera d'un sexe opposé.

    Quoi qu'il en soit voici un bout de code :

    l'idée à chaque lecture d'un enregistrement (événement "Sur activation"), on cache d'abord tout et ensuite on montre ce qu'il faut,
    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 Form_Current()
    'On cache les contrôles complémentaires
    Me.NomEpoux.Visible = False
    Me.PrenomEpoux.Visible = False
    Me.NomEpouse.Visible = False
    Me.PrenomEpouse.Visible = False
    'On montre ceux nécessaires
    If Me.Sexe = "Homme" And Me.StatuSocial = "Marié" Then
        Me.NomEpouse.Visible = True
        Me.PrenomEpouse.Visible = True
        Exit Sub
    End If
    If Me.Sexe = "Femme" And Me.StatuSocial = "Marié" Then
        Me.NomEpoux.Visible = True
        Me.PrenomEpoux.Visible = True
    End If
     
    End Sub
    Si on modifie la valeur des contrôles "Sexe" ou "StatuSocial" (événement "Après mise à jour"), on exécute le même code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Sexe_AfterUpdate()
    Call Form_Current
    End Sub
     
    Private Sub StatuSocial_AfterUpdate()
    Call Form_Current
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Aides soignant
    Inscrit en
    Novembre 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Aides soignant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2005
    Messages : 125
    Par défaut
    bonsoir,

    un grand merci,

    j'ai suivi ton conseil pour changer en "conjoint" super idée merci, pour la question du changement de sexe, tu parle de mariage de même sexe ou pourquoi ne pas inscrire les épouses ?.

    Chez nous, le mariage du même sexe n'existe pas et il n'y aura jamais, et pour les épouses, chez nous un homme peut avoir 4 femmes alors il faut prévoir 8 champs (et je crois avec ça je peut me débrouiller si je connaissez les formules des cases a cocher ou bien jouer avec le nombres, bref), tendis pour la femmes c'est toujours 01 mari alors 2 champs, c'est tout.

    merci pour votre aide et a bientot j'espère.

  4. #4
    Membre confirmé
    Homme Profil pro
    Aides soignant
    Inscrit en
    Novembre 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Aides soignant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2005
    Messages : 125
    Par défaut re
    bonjour,

    désoler de vous déranger, je suis tombé sur un petit problème que j'arrive pas a le réaliser.

    on par du même principe sauf que la j'ajoute une case a cocher.

    exp:
    Champ liste déroulante
    profession
    illétré
    etudiants
    salarié
    retraité

    Case à cocher
    arretdetravail (oui/non)

    Champ datedebut
    Champ datefin
    Champ Durree

    1-avec le même code j'aimerai cacher
    Case à cocher arretdetravail (oui/non)
    Champ datedebut
    Champ datefin
    Champ Durree

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Current()
    'On cache les contrôles complémentaires
    Me.arretdetravail.Visible = False
    Me.datedebut.Visible = False
    Me.datefin.Visible = False
    Me.Durree.Visible = False
    quand je choisie dans la liste de profession "salarié" , j aimerai que seule la case a coché (arretdetravail) soit visible mais ça reste sur (Non), si je je coche sur (Oui) alors les 3 champs
    datedebut
    datefin
    Durree

    s'affiche et c'est tous

    j'arrive pas a le réalisé.

    1 code ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    'On montre ceux nécessaires
    If Me.Profession = "salarié" Then
        Me.arretdetravail.Visible = True
        End If
    If Me.arretdetravail = True Then
        Me.datedebut.Visible = True
        Me.datefin.Visible = True
        Me.Durree.Visible = True
    Exit Sub
        Exit Sub
    2ème code n'accepte pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If Me.Profession = "salarié" Then
        Me.arretdetravail.Visible = True and Me.arretdetravail = True Then
        Me.datedebut.Visible = True
        Me.datefin.Visible = True
        Me.Durree.Visible = True
    Exit Sub
        Exit Sub
    ça ne marche pas, je ne sais pas le réaliser, je vous demande si vous voulez bien m'aider s'il vous plais.

    j'ai pas oublier de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub profession_AfterUpdate()
    Call Form_Current
    End Sub
     
    Private Sub arretTravail_AfterUpdate()
    Call Form_Current
    End Sub

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour,

    Voici :


    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
     
    'On montre ceux nécessaires
    If Me.Profession = "salarié" Then
        Me.arretdetravail.Visible = True
    End If  
    'Si arretdetravail est coché, montrer les 3 
    If  Me.arretdetravail = True Then
          Me.datedebut.Visible = True
          Me.datefin.Visible = True
          Me.Durree.Visible = True
      Else         ' <---- sinon, cacher les 3                  
          Me.datedebut.Visible = False
          Me.datefin.Visible = False
          Me.Durree.Visible = False
    End If  '  <-------- et non pas Exit Sub
        Exit Sub

    ----------------

    Utilise <F1>
    D'une manière générale, pour se documenter sur les propriétés d'un formulaire ou d'un état, ou de leurs contrôles :
    - afficher l'objet en mode construction ;
    - cliquer sur la propriété => elle se met en surbrillance ;
    - enfoncer la touche <F1>
    => l'aide Access s'ouvre à la bonne page.
    De même dans le code, placer le curseur de la souris et enfoncer F1.
    On peut aussi :
    • ouvrir l'aide <F1>, choisir l'onglet « Aide intuitive » et suivre les instructions ;
    • ouvrir la fenêtre d'exécution (<Ctrl>+G), saisir un mot-clé, y placer le curseur de la souris et enfoncer F1.


    ---------------

    Bonne journée.

  6. #6
    Membre confirmé
    Homme Profil pro
    Aides soignant
    Inscrit en
    Novembre 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Aides soignant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2005
    Messages : 125
    Par défaut
    Bonjour,

    ça ne marche pas, j'ai essayer pleins de truc et rien ne marche, si vous avez un exemple similaire envoyez le moi, c'est la seule façon pour que je trouve une solution a mon problème.

    j'ai oublier une condition capital, si le patient est "salarié", s'il est "assuré" il bénéficie d'un arrêt de travail, sinon rien de (ArretTravail, DateDebutArretTravail, DateDebutArretTravail et Duree) ne doit s'afficher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Me.Profession = "Salarié" And Me.Assurer = True Then
    Me.ArretTravail.Visible = True
    End If
    ça marche très bien, la case a cocher se cache et revient au conditions du code.

    Quand je travaillé sur les condition de la case a cocher ArretTravail comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    'Si Arretdetravail est coché, montrer les 3
    If Me.Arretdetravail = True Then
          Me.DateDebutArretTravail.Visible = True
          Me.DateRepriseTravail.Visible = True
          Me.Duree.Visible = True
      Else         ' <---- sinon, cacher les 3
          Me.DateDebutArretTravail.Visible = False
          Me.DateRepriseTravail.Visible = False
          Me.Duree.Visible = False
    End If  '  <-------- et non pas Exit Sub
    la VBA m'affiche ça



    et en haut ça



    Soit disant que "Profession" est introuvable, c'est faut regarder :



    je vous donne tous le code utilisé :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
     
    Private Sub StatuAdministratif_AfterUpdate()
    Call Form_Current
    End Sub
     
    Private Sub SituationSocial_AfterUpdate()
    Call Form_Current
    End Sub
    Private Sub Sexe_AfterUpdate()
    Call Form_Current
    End Sub
     
    Private Sub MortVivant_AfterUpdate()
    Call Form_Current
    End Sub
    Private Sub AutresMaladieChronique_AfterUpdate()
    Call Form_Current
    End Sub
     
    Private Sub Assuree_AfterUpdate()
    Call Form_Current
    End Sub
     
     
    Private Sub Profession_AfterUpdate()
    Call Form_Current
    End Sub
    Private Sub ArretTravail_AfterUpdate()
    Call Form_Current
    End Sub
     
     
     
    Private Sub Form_Current()
    'On cache les contrôles complémentaires
    Me.NomConjoint.Visible = False
    Me.PrenomConjoint.Visible = False
    Me.Classement.Visible = False
    Me.Étiquette318.Visible = False
    Me.Boîte319.Visible = False
    Me.NombreEnfants.Visible = False
    Me.Venude.Visible = False
    Me.DateDCD.Visible = False
    Me.Etablissements.Visible = False
    Me.NumeroAssurance.Visible = False
    Me.MaladieSup.Visible = False
    Me.ArretTravail.Visible = False
     
     
     
    'On montre ceux nécessaires
    If Me.Sexe = "Féminin" And Me.SituationSocial = "Marié" Then
        Me.NomConjoint.Visible = True
        Me.PrenomConjoint.Visible = True
        Me.Étiquette318.Visible = True
        Me.Boîte319.Visible = True
        Me.NombreEnfants.Visible = True
    End If
     
    If Me.Sexe = "Féminin" And Me.SituationSocial = "Divorcé" Then
        Me.NomConjoint.Visible = True
        Me.PrenomConjoint.Visible = True
        Me.Étiquette318.Visible = True
        Me.Boîte319.Visible = True
        Me.NombreEnfants.Visible = True
    End If
     
    If Me.Sexe = "Féminin" And Me.SituationSocial = "Veuf" Then
        Me.NomConjoint.Visible = True
        Me.PrenomConjoint.Visible = True
        Me.Étiquette318.Visible = True
        Me.Boîte319.Visible = True
        Me.NombreEnfants.Visible = True
    End If
     
    If Me.Sexe = "Masculin" And Me.SituationSocial = "Marié" Then
        Me.NomConjoint.Visible = True
        Me.PrenomConjoint.Visible = True
        Me.Étiquette318.Visible = True
        Me.Boîte319.Visible = True
        Me.NombreEnfants.Visible = True
    End If
     
    If Me.Sexe = "Masculin" And Me.SituationSocial = "Divorcé" Then
        Me.NomConjoint.Visible = True
        Me.PrenomConjoint.Visible = True
        Me.Étiquette318.Visible = True
        Me.Boîte319.Visible = True
        Me.NombreEnfants.Visible = True
    End If
     
    If Me.Sexe = "Masculin" And Me.SituationSocial = "Veuf" Then
        Me.NomConjoint.Visible = True
        Me.PrenomConjoint.Visible = True
        Me.Étiquette318.Visible = True
        Me.Boîte319.Visible = True
        Me.NombreEnfants.Visible = True
    End If
     
    If Me.MortVivant = "Mort" Then
        Me.DateDCD.Visible = True
        End If
     
    If Me.Assuree = True Then
        Me.NumeroAssurance.Visible = True
        End If
     
    If Me.AutresMaladieChronique = True Then
        Me.MaladieSup.Visible = True
        End If
     
    If Me.Profession = "Salarié" And Me.Assurer = True Then
        Me.ArretTravail.Visible = True
    End If
     
    'Si Arretdetravail est coché, montrer les 3
    If Me.Arretdetravail = True Then
          Me.DateDebutArretTravail.Visible = True
          Me.DateRepriseTravail.Visible = True
          Me.Duree.Visible = True
      Else         ' <---- sinon, cacher les 3
          Me.DateDebutArretTravail.Visible = False
          Me.DateRepriseTravail.Visible = False
          Me.Duree.Visible = False
    End If  '  <-------- et non pas Exit Sub
     
    If Me.StatuAdministratif = "PO" Then
        Me.Classement.Visible = True
        Me.Venude.Visible = True
        Me.Etablissements.Visible = True
            Exit Sub
            End If
     
    End Sub


    Merci, si j'ai aucune nouvelle je comprendrai, car moi même j'ai perdu espoir et je laisserai tombé cette idée,

    Bonne et heureuse journée.
    Images attachées Images attachées      

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour,

    Merci pour l'effort !

    Voici un exemple en annexe.
    Remarque que j'ai nommé les contrôles d'une manière explicite (pas X1, X2...), cela aide à s'y retrouver !

    Le code associé au formulaire :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    Option Compare Database
    Option Explicit
     
    Private Sub ccArret_AfterUpdate()
    'Neutraliser les choix antérieurs éventuels
    Me.txtDebut = Null
    Me.txtFin = Null
    Me.txtDuree = Null
    'Montrer les contrôles utiles à la suite du choix
    If Me.ccArret = -1 Then   'donc sélectionné
        Me.etDebut.visible = True
        Me.txtDebut.visible = True
        Me.etFin.visible = True
        Me.txtFin.visible = True
        Me.etDuree.visible = True
        Me.txtDuree.visible = True
      Else
        Me.etDebut.visible = False
        Me.txtDebut.visible = False
        Me.etFin.visible = False
        Me.txtFin.visible = False
        Me.etDuree.visible = False
        Me.txtDuree.visible = False
    End If
    End Sub
     
    Private Sub ccAssure_AfterUpdate()
    'Neutraliser les choix antérieurs éventuels
    Me.ccArret = Null
    'Montrer les contrôles utiles à la suite du choix
    If Me.ccAssure = -1 Then   'donc coché
        Me.etArret.visible = True
        Me.ccArret.visible = True
      Else
        Me.etArret.visible = False
        Me.ccArret.visible = False
        Me.etDebut.visible = False
        Me.txtDebut.visible = False
        Me.etFin.visible = False
        Me.txtFin.visible = False
        Me.etDuree.visible = False
        Me.txtDuree.visible = False
    End If
    End Sub
     
    Private Sub Form_Open(Cancel As Integer)
    'Au départ, on cache tout sauf profession
    Me.etAssure.visible = False
    Me.ccAssure.visible = False
    Me.etArret.visible = False
    Me.ccArret.visible = False
    Me.etDebut.visible = False
    Me.txtDebut.visible = False
    Me.etFin.visible = False
    Me.txtFin.visible = False
    Me.etDuree.visible = False
    Me.txtDuree.visible = False
    End Sub
     
    Private Sub zlProfession_AfterUpdate()
    'Neutraliser les choix antérieurs éventuels
    Me.ccAssure = Null
    'Montrer les contrôles utiles à la suite du choix
    If Me.zlProfession = "Salarié" Then
        Me.etAssure.visible = True
        Me.ccAssure.visible = True
      Else
        Me.etAssure.visible = False
        Me.ccAssure.visible = False
        Me.etArret.visible = False
        Me.ccArret.visible = False
        Me.etDebut.visible = False
        Me.txtDebut.visible = False
        Me.etFin.visible = False
        Me.txtFin.visible = False
        Me.etDuree.visible = False
        Me.txtDuree.visible = False
    End If
    End Sub
    Le formulaire :
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  8. #8
    Membre confirmé
    Homme Profil pro
    Aides soignant
    Inscrit en
    Novembre 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Aides soignant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2005
    Messages : 125
    Par défaut
    Bonsoir,

    Un grand merci, c'est exactement ce que je voulais.

    Extraordinaire.

    Je vais bien dormir ce soir.

    Merci.

Discussions similaires

  1. [AC-2010] Champ visible sous condition
    Par eric0512 dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/02/2012, 19h17
  2. [AC-2010] Champ visible sur condition (formulaire continu)
    Par Yass931 dans le forum IHM
    Réponses: 13
    Dernier message: 02/08/2011, 09h59
  3. [AC-2003] Champ calcul sur condition
    Par willytito dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/04/2011, 14h50
  4. Réponses: 10
    Dernier message: 08/12/2010, 05h48
  5. Champ obligatoire sur condition
    Par surzone dans le forum IHM
    Réponses: 2
    Dernier message: 17/01/2008, 09h15

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