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 :

Masquer ou afficher les formulaires [AC-2003]


Sujet :

IHM

  1. #1
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut Masquer ou afficher les formulaires
    Bonjour,

    Sur une application venant de migrer de 2000 en 2003, je note des dysfonctionnements pour cacher des formulaires, désagrément que je ne notais pas sous 2000.

    Pour gérer l'affichage ou non des formulaires, j'utilise le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      If CurrentProject.AllForms("frm_Activites").IsLoaded Then
        Forms!frm_Activites.Visible = False
      End If
    et le code inverse sur fermeture pour le faire réapparaître...

    Une idée ?

  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 : 79
    Localisation : Belgique

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

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

    Plutôt cette instruction :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If CurrentProject.AllForms("frm_Activites").IsLoaded Then
        DoCmd.OpenForm "frm_Activites", , , , , acHidden
      End If

  3. #3
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour Claude,

    Tu recharges le formulaire ? et pour le faire réapparaître, tu le recharges une troisième fois ?

    Par ailleurs, lorsque tu ouvres un autre formulaire qui dépend du formulaire caché (et rechargé), tu ne pointes peut être plus sur le bon enregistrement !

    Je ne comprends pas... Je ne souhaite pas le charger en mode caché, je veux simplement le cacher à l'ouverture d'un autre formulaire puis le réafficher à la fermeture de ce dernier.

    Peux-tu expliquer ?

  4. #4
    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 : 79
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Je dispose de Access2000, je n'ai donc pas le problème que tu signales.

    Par contre, si tu veux voir ce qui se passe avec le code que je te propose, le plus simple est que tu essaies.

    - Tu ouvres ton Formulaire1 et affiche un enregistrement précis ;
    - dans le bouton1 d'un autre formulaire ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "formulaire1", , , , , acHidden
    - dans le bouton2 ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "formulaire1"
    - si tu cliques le bouton1, le formulaire1 disparaît de l'écran ;
    - ouvre ta fenêtre d'exécution (<CTRL+G> et saisi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? currentProject.AllForms("Formulaire1").IsLoaded
    et <Enter> => la réponse est "Vrai".
    Donc, le formulaire est chargé mais non visible ;
    - tu cliques le bouton2... le formulaire1 est à nouveau visible avec l'enregistrement qui était actif.

    Je ne sais pas t'expliquer, mais en tout cas avec Access2000, ça marche.

  5. #5
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    J'ai tout testé selon tes conseils. Merci pour ton aide Claude.

    Effectivement, ta solution sur des formulaires de test Formulaire1 et Formulaire2, en dehors de l'environnement de l'application, fonctionne.

    J'ai fait les mêmes tests avec mon ancienne méthode et idem, cela fonctionne... je me disais aussi

    J'ai donc introduit ta méthode pour cacher les formulaires selon besoin, et j'obtiens les mêmes erreurs qu'avec ma méthode : sur 3 formulaires à cacher successivement, je parviens à cacher le second uniquement.

    Ce ne sont donc pas les méthodes qui sont à incriminer, mais autre chose...
    L’environnement n'a rien d'exceptionnel. Peut-être au niveau des menus qui sont créés selon le tutoriel de Philippe... mais qui n'est plus accessible en ce moment !

    Bref, je sèche

    Si quelqu'un a une idée...

  6. #6
    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 : 79
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    je note des dysfonctionnements pour cacher des formulaires
    Sois plus précis : tu as un message d'erreur ?

    lorsque tu ouvres un autre formulaire qui dépend du formulaire caché
    Que veux-tu dire par là ?

  7. #7
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,
    je note des dysfonctionnements pour cacher des formulaires
    Pas de message d'erreur : le seul problème est que 2 formulaires sur 3 ne se cachent pas : ils restent en arrière-plan, toujours accessibles à l'utilisateur.
    lorsque tu ouvres un autre formulaire qui dépend du formulaire caché
    Je mettais en doute la possibilité la possibilité de maintenir le lien avec un formulaire ouvert précédemment puis caché avec la méthode que tu proposais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "formulaire1", , , , , acHidden
    ce qui n'est pas le cas après l'avoir testé.

    Depuis, j'ai comparé le code des différents formulaires pour voir les différences, vu qu'il y en a un qui fonctionne... mais je ne trouve de différence dans le code, ni les propriétés.

    J'ai réimporté tous les objets dans une nouvelle base... sans plus d'effet !

    Bref, je sèche...

  8. #8
    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 : 79
    Localisation : Belgique

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

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

    Es-tu sûr que l'orthographe du nom du formulaire que tu essaies de cacher est correcte ?

    Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If CurrentProject.AllForms("frm_Activites").IsLoaded Then
    Msgbox "Je passe ici"    
    Forms!frm_Activites.Visible = False
      End If
    t'affiche bien le message ?

  9. #9
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Hello Claude,

    Bon, j'ai fini par trouver.

    J'ai la solution pour que cela fonctionne, mais je ne comprends pas tout !

    Sur la version 2000, à l'ouverture d'un formulaire, je cachais celui qui avait lancé son ouverture par l’événement sur Ouverture.
    J'ai testé d'appliquer ce processus sur Chargement du formulaire... et cela fonctionne.

    Je ne puis qu'être satisfait parce que mon appli "ronronne" à nouveau... mais je reste un peu sur ma faim (je n'ai pas compris pourquoi !)

    En tout cas, merci pour ton aide.
    A+

  10. #10
    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 : 79
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Bonjour Jean-Pierre,

    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
    Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi !

    Albert Einstein

    Au plaisir de te recroiser.

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

Discussions similaires

  1. Masquer et Afficher les formes inséré dans une feuille Excel
    Par mogo107 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/07/2013, 01h17
  2. [XL-2010] Masquer et Afficher les Onglets
    Par Seuche dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/12/2012, 17h42
  3. Réponses: 7
    Dernier message: 21/09/2006, 09h44
  4. Afficher les élements d'un formulaire dans une autre fenetre
    Par BernardT dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/12/2005, 23h52
  5. Réponses: 4
    Dernier message: 29/11/2004, 17h51

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