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 :

Vérifier à partir de quel formulaire un formulaire est ouvert


Sujet :

VBA Access

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 145
    Points : 61
    Points
    61
    Par défaut Vérifier à partir de quel formulaire un formulaire est ouvert
    Bonjour,

    J'ai trois formulaires A, B et C

    Le C peut être ouvert à partir de A ou de B mais j'aimerai que certaines choses s'affichent différemment si il est ouvert de B sachant que l'on ouvre le formulaire C en double cliquant sur un résultat d'une zone de liste.

    D'avance merci

  2. #2
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 145
    Points : 61
    Points
    61
    Par défaut
    Pour le moment j'ai résolu comme ça :

    Dans un module je déclare une variable publique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public quimouvre As Integer
    Quand le formulaire qui sert de page d'accueil s'ouvre je l'initialise à 0

    Si j'ouvre le formulaire "Ajouter" depuis la page d'accueil je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Form_Open(Cancel As Integer)
        If (quimouvre = 1) Then
            MsgBox "coucou"
        End If
        quimouvre = 0
        Actualise
     
    End Sub
    Et si j'ouvre depuis le formulaire "Recherche" en double cliquant sur un résultat de la zone de liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub lstResults_DblClick(Cancel As Integer)
        quimouvre = 1
        DoCmd.OpenForm "Ajouter", acNormal, , "[cle] = " & Me.lstResults, acFormEdit
    End Sub
    De cette manière si j'ouvre "Ajouter" depuis "Rechercher", j'entre dans le If et je peux y faire des modifications comme afficher ou masquer des zones de texte, boutons, etc...

    Si vous connaissez une méthode plus simple je suis preneur

  3. #3
    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,

    L'usage de variables globales n'est pas recommandé car il peut être source de bugs assez vicieux.
    Il peut être assez difficile de savoir qui les manipule.

    Je te suggère d'utiliser les paramètres d'ouverture.

    cela donne quelque chose comme cela au moment de l'appel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if CurrentProject.AllForms("NomTomForm").isloaded then
       DoCmd.Close acFrom "NomTonForm" 'Ferme le formulaire si il est déjà ouvert.
    end if
     
    Docmd.OpenForm "NomTonForm", , , , , ,me.name 'me.name est les nom du formulaire courant.
    dans le formulaire sur OnLoad :

    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
     
    if not isnull(me.openargs) then
       'Il y a des paramètres à l'ouverture
     
       select case me.openargs 'Test sur le nom du formulaire ouvrant
     
          case "Ici Nom Formulaire A"
              'Faire quelque chose
     
          case "Ici Nom Formulaire B"
              'Faire autre chose
     
          case "Ici Nom Formulaire C"
              'Faire encore autre chose
     
          case else
              Error 5 'Cas qu'on avait pas prévu
     
      end select
     
    end if
    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.

Discussions similaires

  1. [Toutes versions] Fermer un formulaire s'il est ouvert sinon ne rien faire.
    Par Mat08 dans le forum VBA Access
    Réponses: 13
    Dernier message: 22/09/2009, 11h30
  2. Réponses: 1
    Dernier message: 19/08/2009, 16h42
  3. Réponses: 4
    Dernier message: 11/04/2007, 18h46
  4. Réponses: 5
    Dernier message: 04/01/2007, 11h01
  5. formulaire/sous formulaire/sous formulaire
    Par aimejielle dans le forum Access
    Réponses: 1
    Dernier message: 24/07/2006, 22h48

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