ACCESS : Déclencher du code sur un formulaire

Bonjour à tous,

J'ai une question ACCESS à vous poser. on va dire que j'ai 2 formulaires : frm1 et frm2.
Sur frm1, il y a un bouton qui ouvre frm2. Ce que je voudrais faire, c'est lorsque je ferme frm2, du code vba soit exécuté sur frm1. Le problème, c'est que je ne sais pas sur quel évènement faire exécuter ce code.

Quelqu'un pour m'aider svp ???
Merci !
Configuration: Windows XP
Firefox 3.0.10

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut les gars !!!!

    Merci de m'aider, mais ne vous prenez plus la tête car j'ai trouvé une solution qui fonctionne.

    Tout d'abord une fonction qui teste si le formulaire est ouvert :

    Function test_form_ouvert(nom_form As String) As Boolean
    
    Dim monform
    For Each monform In Forms
        If nom_form = monform.Name Then
            test_form_ouvert = True
            Exit Function
        End If
    Next
    test_form_ouvert = False
    
    End Function
    


    Elle n'est pas de moi, je l'ai trouvée ailleurs puis un peu réadaptée.

    Et enfin mon code, exécuté sur fermeture dur formulaire :

    Private Sub Form_Close()
    If test_form_ouvert("Menu") Then
        [Forms]![Menu].Étiquette24.Caption = "En attente : " & calcul_attente2()
        [Forms]![Menu].Étiquette25.Caption = "En attente : " & calcul_attente3()
        [Forms]![Menu].Étiquette26.Caption = "En attente : " & calcul_attente4()
        [Forms]![Menu].Étiquette38.Caption = "En attente : " & calcul_dac2()
        [Forms]![Menu].Étiquette39.Caption = "En attente : " & calcul_dac3()
        [Forms]![Menu].Étiquette40.Caption = "En attente : " & calcul_dac4()
    End If
    End Sub


    En fait, ce que je voulais faire c'était mettre à jour des étiquettes sur le formulaire qui reste ouvert. Donc ce code est exécuté, il met a jour les étiquettes sur le formulaire qui reste ouvert, et celui que je veux fermer se ferme.

    Merci beaucoup à vous en tout cas !
    1. soit plus claire dans tes explications.
      tu veux éxécuté quoi sur frm
      1. Salut,

        C'est quoi que t'as pas compris ?

        J'ai 2 formulaires. Lorsque j'en ferme un, je veux exécuter du code sur l'autre (s'il est ouvert bien sur).
        1. soit quand tu affiches
          frm2.show vbmodal,me

          et du coup ton code dans frm1 s'arrete et attend que frm2 se decharge pour revenir mais bon c'est pas terrible
          sinon tu fais une procedure public dans frm1 du style

          public sub Traitement_Post_Frm2

          msgbox "ok"

          end sub

          et dans ton code pour décharger frm2, à la fin de la procedure tu fais

          call frm1.traitement_post_frm2

          et voila...
          1. Modérateur
            soit un timer dans frm1 qui teste si frm2 est ouvert...
            1. au niveau ressource, le timer c'est quand meme pas terrible surtout pour faire un truc aussi simple que ca...