Formulaire précédent
Comment savoir, à l’ouverture d’un formulaire, quel formulaire (voire quel bouton) a provoqué cette ouverture ?
On part du principe qu’un formulaire 1 comporte un bouton 1 (ou n’importe quel autre objet pouvant jouer le même rôle), et qu’un formulaire 2 comporte également un bouton 2. Un clic sur le bouton 1 ou sur le bouton 2 ouvre un formulaire 3.
Recopiez le code suivant dans l’événement Sur ouverture
du formulaire 3.
A chaque ouverture de ce formulaire 3, un message vous indiquera quel formulaire et quel bouton a provoqué l’action.
Si vous ouvrez le formulaire 3 directement depuis la fenêtre , aucun message n’est affiché.
A vous d’aménager le code selon vos besoins !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Private Sub Form_Open(Cancel As Integer) Dim frm As Access.Form Dim ctl As Access.Control On Error Resume Next ' Identifier le formulaire précédent ainsi que ' l'objet qui était actif sur ce formulaire Set frm = Screen.ActiveForm Set ctl = frm.ActiveControl ' Sortir si aucun formulaire ou aucun objet de formulaire ' n'a été identifié If (frm Is Nothing) Or (ctl Is Nothing) Then Exit Sub ' On vérifie par exemple si, avant l'ouverture de ce formulaire, ' le contrôle actif était bien un bouton If TypeOf ctl Is Access.CommandButton Then MsgBox "Ce formulaire a été ouvert par le bouton : " & ctl.name & vbCrLf _ & "du formulaire : " & frm.name ' Votre traitement spécifique ici... ' ... End If End Sub |