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 :

[Contrôle] modifier les propriétés d'un contrôle actif


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Points : 62
    Points
    62
    Par défaut [Contrôle] modifier les propriétés d'un contrôle actif
    J'ai un formulaire avec un bouton dont l'action sur clic -avant fermeture du formulaire - rend 4 autres contrôles visibles et 3 autres y compris le bouton permettant l'action invisible.

    J'ai le message "erreur d'execution 2165 : impossible de masquer le contrôle actif".

    Je le comprends mais comment le contourner?

    Merci

    Christophe



    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
    Public Sub ComEnregistrementModifiéAnnulé_clic
     
    'Procédure de fermeture du formulaire saisie en mode modification
     
                    Forms![SAISIE].Caption = "Saisie"
                    Forms!SAISIE!.Controls!ComRetourMenu.Visible = True
                    Forms!SAISIE!.Controls!ComCréationEtat.Visible = True
                    Forms!SAISIE!.Controls!ComEnregistrer.Visible = True
                    Forms!SAISIE!.Controls!ComGestionEnregistrement.Visible = True
                    Forms!SAISIE!.Controls!ComEnregistrementModifiéEnregistré.Visible = False
                    Forms!SAISIE!.Controls!ComEnregistrementModifiéSupprimé.Visible = False
                    Forms!SAISIE!.Controls!ComEnregistrementModifiéAnnulé.Visible = False
                    Forms![SAISIE].RecordSource = "BASEDONNEEES"
     
                rstGestion.Close
                Set rstGestion = Nothing
     
        DoCmd.Close acForm, "SAISIE", acSaveYes
     
    End Sub

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Points : 62
    Points
    62
    Par défaut
    http://access.developpez.com/faq/?page=Bug#Err2164

    Je n'arrivais pas à caser cela dans mon code. J'ai trouvé en passant dans mon code une gestion d'erreur sur la procédure

    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
    Public Sub SaisieModifiéSortie()
    On Error GoTo Gestion_Erreur
    'Procédure de fermeture du formulaire saisie en mode modification
     
                    Forms![SAISIE].Caption = "Saisie"
                    Forms!SAISIE!.Controls!ComRetourMenu.Visible = True
                    Forms!SAISIE!.Controls!ComCréationEtat.Visible = True
                    Forms!SAISIE!.Controls!ComEnregistrer.Visible = True
                    Forms!SAISIE!.Controls!ComGestionEnregistrement.Visible = True
                    Forms![SAISIE].RecordSource = "BASEDONNEEES"
                    Forms!SAISIE!.Controls!ComEnregistrementModifiéEnregistré.Visible = False
                    Forms!SAISIE!.Controls!ComEnregistrementModifiéSupprimé.Visible = False
                    Forms!SAISIE!.Controls!ComEnregistrementModifiéAnnulé.Visible = False
     
     
                rstGestion.Close
                Set rstGestion = Nothing
     
        DoCmd.Close acForm, "SAISIE", acSaveYes
     
    Gestion_Erreur:
     
          If Err = 2135 Then
                    Forms!SAISIE!.Controls!DATATION.SetFocus
                    Forms!SAISIE!.Controls!ComEnregistrementModifiéEnregistré.Visible = False
                    Forms!SAISIE!.Controls!ComEnregistrementModifiéSupprimé.Visible = False
                    Forms!SAISIE!.Controls!ComEnregistrementModifiéAnnulé.Visible = False
          End If
     
     
                DoCmd.Close acForm, "SAISIE", acSaveYes
     
    End Sub
    je commence à me débrouiller avec access et ce forum

    merci

    christophe

  3. #3
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    Un peu compliqué ton affaire........pourquoi gérer ton problème dans ta gestion d'erreur
    ..."erreur d'execution 2165 : impossible de masquer le contrôle actif".
    Comme tu as compris qu'avant de modifier les propriétés d'un contrôle, celui-ci ne devait plus être actif.....alors dans ton code principal, il suffit d'abord de changer le focus au profit d'un autre contrôle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub NomDuBouton_Click()
    'Ici je donne le focus à un autre contrôle
    Me.DATATION.SetFocus
    'Et ensuite je peux modifier les propriétés de mon bouton de commande
    Me.NomDuBouton.Visible = False
    ......
    ......
    Bonne continuation......

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    plus précisemment il n'est pas possible de rendre invisible un control sans au préalable donner le focus à un autre control.

    l'objet n'etant plus visible il pert sont focus mais au profit de qui? j'aurais préféré personnellement qu'il le donne au form mais les concepteurs ne le voient pas ainsi... il préfère un message d'erreur.

    d'autant plus que l'événement GotFocus du form n'est même pas exploitable.
    et chose bizarre: il est possible d'ouvrir un form sans focus sur un control (s'il y en a pas) mais s'il y a un control il ne peut plus le perdre.

    tes avis FreeAccess? y aurait il des raisons particulières qui m'auraient échapées?

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

Discussions similaires

  1. [XL-2010] Pour modifier les propriétés d'un contrôle ActiveX
    Par goofyto8 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2015, 20h24
  2. [XL-2007] Modifier les propriétés d'un contrôle
    Par Walterbelo dans le forum Excel
    Réponses: 2
    Dernier message: 01/11/2012, 18h06
  3. Réponses: 33
    Dernier message: 30/08/2007, 17h25
  4. Réponses: 2
    Dernier message: 29/11/2006, 11h52
  5. Modifier la propriété d'un contrôle par un indice
    Par Akeon dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/11/2006, 09h55

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