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 :

Comment désactiver un contrôle sur un formulaire Access


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Avril 2020
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Maroc

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 48
    Points : 39
    Points
    39
    Par défaut Comment désactiver un contrôle sur un formulaire Access
    Bonjour,

    Contexte du problème:
    Je travaille actuellement sur ACCESS 2016 pour créer un formulaire de saisi des expertises des constructions d'un quartier.
    Dans ce formulaire que j'ai fait grâce à l'assistance de ce merveilleux site, je saisi la recommandation de l'expertise via le contrôle RECOMMANDATION moyennant une liste de choix qui permet de saisir l'une des 5 recommandations suivantes :
    1.DEMOLITION TOTALE;
    2.DEMOLITION PARTIELLE ET CONFORTEMENT;
    3.CONFORTEMENT;
    4.REFECTION;
    5.BON ETAT.

    Ci-dessous capture du formulaire :

    Nom : Capture Formulaire avec contrôle NIVEAUX_A_DEMOLIR actif.JPG
Affichages : 586
Taille : 79,2 Ko
    Nom : Capture Formulaire avec liste du contrôle active.jpeg
Affichages : 503
Taille : 71,2 Ko

    Ma question est :
    Vu que les choix 3,4 et 5 ne sont concernés par la démolition d'aucun étage, je voudrais que si on fait l'un de ces 3 choix dans le le contrôle RECOMMANDATION alors le contrôle NIVEAUX _A_DEMOLIR doit se désactiver automatiquement, (sous entendu il reste actif si le choix est 1 ou 2).

    ci-joint le code actuel du formulaire:
    Codes Formulaire.txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Current()
    Me.ELEVATION.Requery
    Me.NIVEAUX_A_DEMOLIR.Requery
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ELEVATION_Change()
    Me.NIVEAUX_A_DEMOLIR.Requery
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub NIVEAUX_A_DEMOLIR_Dirty(Cancel As Integer)
        If Me.RECOMMANDATION.Value = "DEMOLITION PARTIELLE ET CONFORTEMENT" Then
            Me.SOUS_CLASSE = "C2." & Me.NIVEAUX_A_DEMOLIR.ItemsSelected.Count
            Me.SOUS_CLASSE.Requery
        Else
            Me.RECOMMANDATION.Value = ""
        End If
    End Sub
    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
    Private Sub RECOMMANDATION_AfterUpdate()
        If Me.RECOMMANDATION.Value = "DEMOLITION TOTALE" Then
            Me.CLASSE = "C1"
        Else
            If Me.RECOMMANDATION.Value = "DEMOLITION PARTIELLE ET CONFORTEMENT" Then
                Me.CLASSE = "C2"
            Else
                If Me.RECOMMANDATION.Value = "CONFORTEMENT" Then
                    Me.CLASSE = "C3"
                Else
                    If Me.RECOMMANDATION.Value = "REFECTION" Then
                        Me.CLASSE = "C4"
                    Else
                        Me.CLASSE = "C5"
                    End If
                End If
            End If
        End If
     
        If Me.RECOMMANDATION.Value = "DEMOLITION TOTALE" Then
            Me.NIVEAUX_A_DEMOLIR.SetFocus
            Me.NIVEAUX_A_DEMOLIR.Dropdown
            For iCount = 0 To Me.NIVEAUX_A_DEMOLIR.ListCount
                Me.NIVEAUX_A_DEMOLIR.Selected(iCount) = True
            Next iCount
        Else
            Call clearListBox
        End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub clearListBox()
        Dim iCount As Integer
        Me.NIVEAUX_A_DEMOLIR.SetFocus
        Me.NIVEAUX_A_DEMOLIR.Dropdown
        For iCount = 0 To Me.NIVEAUX_A_DEMOLIR.ListCount
            Me.NIVEAUX_A_DEMOLIR.Selected(iCount) = False
        Next iCount
        SendKeys ("{Enter}")
    End Sub
    J'ai beau essayer avec

    (sur l'évenement : RECOMMANDATION_AfterUpdate)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Me.RECOMMANDATION.Value <> ("DEMOLITION TOTALE" Or "DEMOLITION PARTIELLE ET CONFORTEMENT") Then
    Me.NIVEAUX_A_DEMOLIR.Enabled = False
    mais ça bloque avec les codes déjà existants sur ce même événement.

    Merci de m'aider.

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    bonjour,

    recommandation: utiliser les formats conditionnels pour l'inactivation des contrôles

    sinon, il est aussi recommandé de ne pas utiliser les champs multi-valués

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Avril 2020
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Maroc

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 48
    Points : 39
    Points
    39
    Par défaut
    Bonjour ACCESSISGOOG

    Merci pour votre réponse, je croix que c'est déjà au format conditionnel, mais le débogueur Access mets en jaune l’instruction suivante:
    Me.NIVEAUX_A_DEMOLIR.SetFocus

    Je croit que ce bug provient d'un conflit entre Me.NIVEAUX_A_DEMOLIR.SetFocus et Me.NIVEAUX_A_DEMOLIR.Enabled = False.

    Je ne sais pas où placer le code de désactivation pour résoudre ce probléme.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Merci d'utiliser les balise CODE (le bouton # de l'éditeur) pour mettre le code en évidence.
    Pour mettre du code dans une phrase on peut utilise CodeInLine et /codeInline comme balise (entourer le texte de [ ]).

    Tu ne peux pas désactiver un champ si il a le focus.
    La seule méthode que je connaisse est de mettre le focus sur un autre champ puis de désactiver celui qu'on veut.
    Un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.UnAutreChamp.SetFocus 
    Me.NIVEAUX_A_DEMOLIR.Enabled = False
    Tu peux par contre le verrouiller, c'est moins visuel mais ça empèche la saisie comme la désactivation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.NIVEAUX_A_DEMOLIR.Locked = true
    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.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Avril 2020
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Maroc

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 48
    Points : 39
    Points
    39
    Par défaut
    Merci marot

    J'ai abandonné l'idée de désactiver le contrôle en question et je me suis contenter de le verrouiller et effectivement comme vous l'avez indiqué c'est moins visuel, mais bon.
    Merci.

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 25/05/2019, 17h23
  2. Réponses: 7
    Dernier message: 17/09/2015, 14h29
  3. [AC-2010] Comment sélectionner un contrôle sur formulaire en mode création ?
    Par JOHN14 dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/05/2014, 09h01
  4. Réponses: 1
    Dernier message: 06/06/2006, 04h52
  5. Réponses: 1
    Dernier message: 05/06/2006, 23h02

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