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 :

Message d'erreur sur évènement Form_Current avec code compilé (affichage de libellé suivant checkbox) [AC-2007]


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 27
    Points : 34
    Points
    34
    Par défaut Message d'erreur sur évènement Form_Current avec code compilé (affichage de libellé suivant checkbox)
    Bonjour,

    Toujours entrain de patiner sur ma base (effet Vancouver 2010 sans doute...)

    J'ai un souci dont je n'arrive pas à comprendre l'origine. Voici le code d'erreur lorsque j'ouvre le formulaire :

    Citation Envoyé par Message d'erreur
    L'expression Sur activation entrée comme paramètre de la propriété de type évènement est à l'origine d'une erreur. Un problème est survenu durant la communication entre Microsoft Office Access et le Serveur OLE ou le contrôle Active X.
    Dans l'aide j'obtiens le détail suivant

    Citation Envoyé par Aide ACCESS
    Cette erreur se produit lorsqu'un événement ne peut pas être exécuté parce que Microsoft Office Access ne peut pas détecter l'emplacement de la logique correspondante. Par exemple, si la propriété OnOpen d'un formulaire est définie sur la valeur =[Field], cette erreur se produit car Access s'attend à ce qu'un nom de macro ou d'événement soit exécuté lors du déclenchement de l'événement.
    J'ai déjà eu ce souci auparavant, sans raison, sur tous les formulaires de la base contenant du code. J'avais du recréer les formulaires un par un...

    Cette fois-ci, c'est différent, puisque ça ne marche pas que lorsque je mets le code suivant "Sur activation" qui est parfaitement passé à la compilation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_Current()
     
    Select Case Me.ckkosei
    Case Is = 0
        Me.lblkosei.Visible = True
        Case Else
        Me.lblkosei.Visible = False
    End Select
    End Sub
    A noter que j'ai essayé plusieurs autres codes dans ce genre comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_Current()
     
    If ckkosei.Value = vbChecked Then
         Me.lblkosei.Visible = False
    ElseIf ckkosei.Value = vbUnchecked Then
          Me.lblkosei.Visible = True
    End If
     
    End Sub
    Les cases à cocher sont verrouillées et désactivées, elles servent juste à afficher leur statut (cochée ou non) et prennent les valeurs entrées dans une table. Si c'est coché j'aimerais que le libellé (étiquette indépendante ndlr.) n'apparaisse pas.
    J'ai essayé de m'inspirer du tutoriel case à cocher, de celui du formulaire de recherche (où l'on affiche tel ou tel libellé selon le type de données), et d'autres sources du forum et de MSDN...


    Rien ne passe. Pourquoi?

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Bonjour,

    Le message "l'expression sur click..." est le message d'erreur par défaut des versions compilées qui n'ont pas de gestion d'erreur

    Dans un premier temps je te suggère donc te mettre en place une gestion d'erreur, ainsi tu sauras quelle est réellement l'erreur levée

    Pour cela il faut intégrer à chaque procédure un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private sub xxx
    on error goto err:
    ... le code...
    exit sub
    err: msgbox "Erreur " & err.Number & " dans xxx : " & err.DESCRIPTION
    end sub
    NB : par ailleurs il doit être possible d'écrire plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lblkosei.Visible =  not ckkosei
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 27
    Points : 34
    Points
    34
    Par défaut
    Nickel chrome Nico84, merci.

    Ca fonctionne aujourd'hui, je comprends pas, même pas d'erreur .

    J'ai mis le code pour la gestion d'erreur, puis-je l'employer de partout où j'ai du VBA au cas où?

    Dernière question (et je mets ou tu mets résolu ) :
    l
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lblkosei.Visible =  not ckkosei
    Je le mets dans le select Case? (tout seul ça ne fait rien)

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Oui il vaut mieux mettre une gestion d'erreur partout
    Plutot que MsgBox j'utilise d'ailleurs une procédure qui m'écrit l'erreur dans un journal ainsi je peux tracer toutes les erreurs qu'ont rencontré les utilisateurs et les corriger
    Enfin j'utilise une variable globale mode_debug (à oui quand c'est moi et à non quand c'est un utilisateur) pour que mes utilisateurs soient insultés en bon français (ou en japonais si tu préfères ) et que j'aie accès au débuggueur. Finalement ça donne donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private sub xxx
    if not mode_debug then on error goto err:
    ... le code...
    exit sub
    err: message "Erreur " & err.Number & " dans xxx : " & err.DESCRIPTION 'appel de ma procédure standard de gestion d'erreur
    end sub

    Ma version ne connait pas vbchecked, mais je voulais simplement dire que le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If ckkosei.Value = vbChecked Then
         Me.lblkosei.Visible = False
    ElseIf ckkosei.Value = vbUnchecked Then
          Me.lblkosei.Visible = True
    End If
    Peut s'écrire d'une manière générale plus simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.lblkosei.Visible = (ckkosei.Value = vbUnchecked)
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 27
    Points : 34
    Points
    34
    Par défaut
    - Faut que je me penche un peu sur cette question de la gestion d'erreur, je ne l'ai pas encore vraiment prise en compte... (et je m'en mords les doigts comme tu as vu).

    - Faut que j'arrive a mettre en place une meilleure méthodologie pour le développement, je parts dans tous les sens etcomme j'ai plein de lacunes (variables globales...) c'est encore pire, mais c'est en forgeant... .

    En tout cas merci pour les conseils.

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

Discussions similaires

  1. [XL-2007] Message d'erreur sur un code formulaire
    Par apdf1 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 22/08/2013, 09h58
  2. Réponses: 1
    Dernier message: 18/05/2010, 11h41
  3. Faire un controle avec message d'erreur sur date
    Par manue514 dans le forum Débuter
    Réponses: 8
    Dernier message: 04/05/2009, 17h08
  4. Message d'erreur sur un code
    Par FCL31 dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/09/2007, 14h55
  5. Réponses: 13
    Dernier message: 03/09/2006, 21h52

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