J'ai créé le code ci-dessous pour pouvoir, à partir d'une base, supprimer les objets d'une autre base :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Dim strdatabase As String
Dim db As DAO.Database
Dim acApp As Access.Application
    strdatabase = OuvrirUnFichier(Me.Hwnd, "Parcourir", 1, "Fichier Access", "mdb")
    Set acApp = GetObject(strdatabase)
    acApp.DoCmd.DeleteObject acReport, "EGA-Enfants Internes"
    acApp.Quit
    Set acApp = Nothing
    MsgBox "Module supprimé"
Le code s'exécute apparemment sans erreur, mais si je veux accéder à la db pour vérifier si la suppression est effective, une boîte de dialogue s'ouvre qui me demande 'Entrez le mot de passe de la base de données'.
La base n'est protégée par aucun mot de passe et il me refuse mon mot de passe de session Vista.
Si je relance la suppression j'ai une erreur 7874 : impossible de trouver (l'objet à supprimer)..., mais la db s'ouvre, je peux donc vérifier que la suppression est effective et effectuer des transactions normalement.
Cependant lorsque je veux fermer cette db par un bouton 'Fermer' dans un formulaire, j'ai à nouveau la boîte de dialogue 'Entrez le mot de passe de la base de données'.
Je suis alors obligé d'utiliser le bouton de fermeture en haut à droite de la fenêtre pour réellement fermer la db.
J'ai regardé dans le propriétés du fichier, il n'y a aucune sécurité particulière.
Pouvez m'indiquer comment éviter ce problème de mot de passe?
Je suis sous Vista Pro et Access 2002.