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

VBA Access Discussion :

Stopper le déroulement du code VBA


Sujet :

VBA Access

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut Stopper le déroulement du code VBA
    Bonjour à tous.

    Cela fait très longtemps que je n'ai pas bossé sur ACCESS et j'ai un peu perdu les mécaniques.

    J'avoue avoir regardé rapidement la doc.
    J'ai une Sub qui fait un travail et qui contient des test dans son déroulement. Une réponse negative à un test doit entrainer immédiatement l'arrêt de tous traitements.

    J'ai donc géré cela avec un test conditionnel qui renvoi vers une Sub qui gère l'affichage d'un MsgBox.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub MsgSortie()
        MsgBox "J'ai rencontré un problème.", vbSystemModal
        Application.Quit
    End Sub
    Lorsque l'utilisateur click sur le OK, l'appli se ferme tout simplement, mais je trouve cela un peu violent.
    Est ce qu'il n'y a pas un autre mot clé pour le faire tout stopper ?
    J'ai utilisé le Exit Sub, mais ça n'a pas fonctionné biensûr.

    Merci pour votre aide.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Salut,

    et le pragmatique

    ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ton aide.
    J'ai essayé aussi mais là, ça ouvre le mode debug et je voudrais pas que mes utilisateurs mettent le nez dans cela.
    Ou alors il y a un moyen de le bloquer, sauf que je sais pas le faire.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Hum, en pratique je partirai sur une structure de code comme celle-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Piou()
    If test Then
    'blabla
    Else
    'gestion de l'erreur
    Msgbox "Erreur"
    Exit Sub
    End If
    End Sub
    Si tu parles de debogage qui se lance cela signifie que tu as une erreur que tu n'as pas ete (encore) capable de gerer, auquel cas tu as une methode que l'on desapprouve mais qui fait l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Piou2()
    On Error Goto Fin
    'ton code
    ' ton code
    Exit Sub
    Fin:
    End Sub

    Aussi plutot que je chunter l'erreur, il est plus pertinent de tacher de la corriger ou de l'anticiper (cas des divisions par 0 par exemple)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci beaucoup.

    Le On Error, bien sûr, c'est ça qu'il me manquait.

    Sinon, ce ne sont pas vraiment des erreurs qui sont générées. Je ne peux pas (pour des raisons de confidentialité) être très explicit mais en gros, mon application repose sur des SendKey dans un système et losrque le système ne répond pas correctement il déclenche une erreur qui ouvre le debug. Donc s'en est pas une au sens VBA du terme mais c'est un peu compliqué à gérer. Et surtout il faut que tous les SendKeys soient stoppés, sinon, ça peut envouyer du n'importe quoi et faire une catastrophe.

    Merci et bonne soirée.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  6. #6
    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
    Hum ... pas cool ton problème.

    Sendkey est vraiment la dernière technique à utiliser pour faire de l'automatisation.

    Ne disposes-tu pas d'un mécanisme autre (un export par exemple) pour communiquer avec ton système externe ?

    Sinon, tu peux t'essayer en utilisant un "exécutable" Access (.mde ou .accde) qui ne contiennent pas de code donc il n'y a pas de mode débug.
    Il te faut du code On Error dans les modules et aussi associé à l'événement "Sur Erreur" du formulaire.
    Aucune idée de ce qui se passera mais j'espère que cela déclenchera la gestion d'erreur de Access.

    Attention : tu dois conserver précieusement ta version d'origine car on ne peut pas à partir des outils standards récupérer une appli depuis sont "exécutable".

    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.

  7. #7
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ton aide et tes précieux conseils.
    Je finalise tout ça la semaine prochaine en espérant que cela colle entre ce que l'utilisateur veut et la marge de manouvre que IT me laissE.

    Bon week-end.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  8. #8
    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
    Une idée alternative :

    Il existe des programmes qui simule la présence d'un utilisateur (des SendKey sur les stéroïdes :-).

    Ici une petite recherche dans à faire dans Google : simulate keyboard and mouse

    J'ai aussi trouvé aussi
    AutoMe - automate computer tasks
    Keyboard macro & Mouse macro program. Leading Windows macro recorder.
    http://www.asoftech.com/autome/

    J'en ai utilisé un il y a des années (désolé j'ai oublié son nom) et cela m'avait été très utile pour créer une impression par service pour ma quinzaine de services concernés.

    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 extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ton aide.

    Pour les SendKeys, en fait se ne sont pas des vrais. Ils sont générés par un objet PCOMM qui est issu du client AS400. Donc ils ne sont pas envoyés en dehors (enfin je crois). Ce qui est important pour moi c'est de pouvoir interrompre totalement le programme lorsqu'il rencontre une erreur ou une situation inadequate.
    Parce que les séquences envoyées n'ont pas de coherence lorsqu'elles sortent du schema mais pourraient retrouver une coherence dans l'AS400 qui ne serait pas maitrisée et donc potentiellement dangereuse.

    Avec le Goto je crois que j'ai trouvé un bon comportement assez safe pour respecter les contraintes de sécurité que l'on m'impose.

    Bonne journée.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

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

Discussions similaires

  1. afficher un graphique dans word à partir de mon code vba
    Par guysocode dans le forum VBA Word
    Réponses: 2
    Dernier message: 07/11/2005, 14h15
  2. Réponses: 2
    Dernier message: 27/10/2005, 15h51
  3. Réponses: 4
    Dernier message: 13/10/2005, 14h44
  4. Réponses: 3
    Dernier message: 06/09/2005, 10h27
  5. Comment creer une procédure stockée à partir d'un code VBA?
    Par Alcor020980 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 19h55

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