Bonjour,

Envoyé par
arundel
...
Le motif de cette question est qu'en phase de test je souhaite suivre l'évolution de certaines variables temporaires (TempVars). A chaque sortie de l'application je dois re-créer ces espions avec leur contexte (Procédure et Module) ce qui est pénible.
Avez-vous une idée ?
Merci d'avance.
Bonjour,
Je ne suis pas certain que ce soit faisable, mais je tente une chose avec les variables temporaires stockées dans la collection TempVars :
On peut déjà les conserver dans une table.
Par exemple, sur ouverture du formulaire qui lance la session, on lit le contenu de la table T_TempVars(var, valeur) dans des variables temporaires :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Private Sub Form_Open(Cancel As Integer)
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("T_TempVars")
If rst.EOF Then
' si la table T_TempVars est vide, on crée les variables avec des valeurs
TempVars.Add "var1", 101
TempVars.Add "var2", 102
Else ' sinon
' on ajoute les variables contenues dans la table
Do Until rst.EOF
var = rst!var: valeur = rst!valeur
TempVars.Add var, valeur
rst.MoveNext
Loop
End If
rst.Close
Set rst = Nothing
End Sub |
Et à la fermeture de ce formulaire de session, on enregistre les variables temporaires dans la table T_TempVars :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Private Sub Form_Close()
Dim rst As DAO.Recordset
' supprime le contenu de la table T_TempVars
CurrentDb.Execute "delete * from T_TempVars", dbFailOnError
Set rst = CurrentDb.OpenRecordset("T_TempVars")
For i = 0 To TempVars.Count - 1
Set TempVar = TempVars(i)
rst.AddNew
rst!var = TempVar.Name
rst!valeur = TempVar.Value
rst.Update
Next i
rst.Close
Set rst = Nothing
End Sub |
Les variables temporaires étant effacées après fermeture de la base.
Pour mettre à jour une variable temporaire dans le code d'un module :
TempVars("var1").Value = TempVars("var1").Value + 10
Pour connaître son contenu, dans la fenêtre d'exécution :
Cdlt,
Partager