Bonjour

J'ai une application qui fonctionne trés bien mais qui n'a pas d'Option Explicit sur tous ses modules. L'outil d'analyse des performances d'access m'a mis le doigt la dessus et je mets donc Option explicit sur tous mes formulaires...

Mon problème : Sur certains modules, cela m'entraine des erreurs de compilation "Variable non définie"

par exemple sur ce code, sur la variable "Cancel"
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
22
23
24
25
26
27
28
29
30
31
32
33
34
Option Compare Database
Option Explicit
Private Sub Commande14_Click()
'variable stockant la réponse donnée dans la boite de dialogue
    Dim intReponse As Integer
    'si il y a eu des modifications on demande la confirmation
    If Me.Dirty Then
        'message pour l'utilisateur
        intReponse = MsgBox("Voulez-vous enregistrer ?", vbYesNoCancel, "Confirmation")
        Select Case intReponse
            Case vbYes
                Cancel = False
                If Cancel = True Then
                 'on ne ferme pas
                Else
                 Me.DateLastModif = Date
                 DoCmd.Close acForm, "TpsSaisie_Edit"
                 If CurrentProject.AllForms("DemandeIntervention").IsLoaded Then
                    Call MiseAJourAffichTempsSaisiDemandeIntervention
                 End If
                End If
            Case vbNo
                ' non est choisi donc on annule les modifications
                Me.Undo
                DoCmd.Close acForm, "TpsSaisie_Edit"
            Case vbCancel
                ' Annuler est choisit donc on annule la manipulation
                Cancel = True
        End Select
 
    Else
        DoCmd.Close acForm, "TpsSaisie_Edit"
    End If
End Sub
Je rappelle que ce code fonctionne trés bien sans Option Explicit

Comment Option Explicit travaille t-il pour améliorer la vitesse du code ? Comment éviter ses erreurs ?

Merci par avance