Bonjour à Tous!
Voici le contexte:
Nous avons une app Access 2002 utilisée sur plusieurs postes de travail
Cette app comprends une fonctionalitée qui permet d'importer des données de fichiers autocad
Cette fonctionalité n'est utilisé que sur un seul des postes de travail et utilise une référence dont le DLL n'est QUE sur ce poste.
La référence est donc ajoutée dynamiquement au démarrage de l'application
et enlevée à la fermeture de l'application
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Public bAppStartMode as boolean Public sub AppStart() On Error Resume Next 'Try to add a reference to DWG.dll (ver 1.13) Access.References.AddFromGuid GUID_REF_DWG, 1, 13 If Err.Number <> 0 Then Err.Clear End If bAppStartMode = True Call subTest(bAppStartMode) MsgBox bAppStartMode 'bAppStartMode est encore à TRUE End Sub
Le problème est:
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 Private Sub QuitApp() Dim rRef As Access.Reference On Error Resume Next For Each rRef In Access.References If rRef.Guid = GUID_REF_DWG Then 'remove the Reference Access.References.Remove rRef End If Next 'bAppStartMode devrais être resté à TRUE puisqu'elle est globale If bAppStartMode Then ... End If End Sub
Dans le cas ou l'ajout de référence fonctionne, la variable globale bAppStartMode (et toutes les autres variables globales) sont ré-iniatialisées du moment ou la procédure AppStart est terminée.
La valeur bAppStartMode n'est jamais remise à FALSE nulepars dans le code.
Sur un poste où le référence DWG n'est pas disponible, nous n'avons pas ce problème.
Si nous plaçons la ligne Access.References.AddFromGuid GUID_REF_DWG, 1, 13 en commentaire, les variables globales ne se ré-initialisent pas...
![]()
Partager