[VBA DAO] CurrentDB et Lock
Bonjour,
J'ai un problème d'autorisation que j'ai du mal à comprendre.
Dans un module standard, j'ai une fonction qui me permet d'importer les données dans la nouvelle structure. Sauf qu'une fois la fonction fcnImportData exécuté une fois, je ne peux plus enregistrer les modifications apportées au module. J'obtiens le message suivant :
"Vous n'avez pas les autorisations nécessaires pour accéder à la base de données. Si vous faites des modifications, elles ne pourront pas être enregistrées."
Pour continuer à coder, je dois réouvrir tout mon projet. C'est la ligne CurrentDB qui place un lock quelconque sur ma base actuelle, y compris, probablement, le module standard sur lequel je travaille. Ce que j'ai dû mal à comprendre, c'est pourquoi ce lock n'est-il pas levé à la fermeture/libération de m_dbOld?
Merci!
Code:
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 35 36 37
| Public Function fncImportData()
'Initialiser les variables globales
On Error GoTo ErrGestionOpenDb
Set m_dbOld = OpenDatabase(CurrentProject.Path & "\" & m_cstrOldDatabasePath, True, True)
On Error GoTo 0
Set m_dbCurrent = CurrentDb
' 'Suprimer les données de tests 'EN COMMENTAIRE JUSTE POUR TESTER
' fncDeleteAll
'
' 'Importer les données
' fncImportComputers
' fncImportMonitors
' fncImportPrinters
' fncImportUsers
' fncImportEmail
ExitFunction:
m_dbOld.Close
m_dbCurrent.Close
Set m_dbOld = Nothing
Set m_dbCurrent = Nothing
Exit Function
ErrGestionOpenDb:
Select Case err.Number
Case 3024
MsgBox "La base de données est introuvable. Emplacement attendu: «" & CurrentProject.Path & "\" & m_cstrOldDatabasePath & "»"
Case 3356
MsgBox "La base de données est déjà ouverte. Veuillez la fermer et relancer l'importation." & vbCrLf & vbCrLf & CurrentProject.Path & "\" & m_cstrOldDatabasePath
Case Else 'Erreur non gérée
err.Raise err.Number
End Select
Resume ExitFunction
End Function |