PRB : Erreur 80004005 « Le moteur de base de données Microsoft Jet ne peut pas ouvrir le fichier '(unknown)' »

Symptômes

Lorsque vous utilisez ADO (ActiveX Data Objects) ou ODBC pour vous connecter à une base de données Microsoft Access, le message d’erreur suivant peut s’afficher :

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.

Cause

Il existe plusieurs causes pour ce message d’erreur :

  • Le compte utilisé par Microsoft Internet Information Server (IIS) (qui est généralement IUSR) ne dispose pas des autorisations Windows NT correctes pour une base de données basée sur un fichier ou pour le dossier qui contient le fichier.
  • Le fichier et le nom de la source de données sont marqués comme Exclusifs.
  • La base de données Access est ouverte pour un autre processus ou utilisateur.
  • L’erreur peut être due à un problème de délégation. Vérifiez la méthode d’authentification (De base ou NTLM), le cas échéant. Si le chaîne de connexion utilise la convention de nommage universel (UNC), essayez d’utiliser l’authentification de base ou un chemin absolu, tel que C :\Mydata\Data.mdb. Ce problème peut se produire même si l’UNC pointe vers une ressource locale sur l’ordinateur IIS.
  • Cette erreur peut également se produire lorsque vous accédez à une base de données Microsoft Access locale liée à une table où la table se trouve dans une base de données Access sur un serveur réseau.

Résolution

Les éléments suivants correspondent à la liste précédente des causes :

  • Vérifiez les autorisations sur le fichier et le dossier. Assurez-vous que vous avez la possibilité de créer et/ou de détruire des fichiers temporaires. Les fichiers temporaires sont généralement créés dans le même dossier que la base de données, mais ils peuvent également être créés dans d’autres dossiers tels que le dossier WINNT.

    Si vous utilisez un chemin d’accès réseau à la base de données (UNC ou lecteur mappé), case activée les autorisations sur le partage, le fichier et le dossier.

  • Vérifiez que le fichier et le nom de la source de données (DSN) ne sont pas marqués comme Exclusifs.

  • L'« autre utilisateur » peut être Microsoft Visual InterDev. Fermez tous les projets Visual InterDev qui contiennent une connexion de données à la base de données.

  • Simplifier. Utilisez un DSN système qui utilise une lettre de lecteur local. Si nécessaire, déplacez la base de données vers le lecteur local à tester.

References

Pour case activée d’échecs d’accès aux fichiers, utilisez le Moniteur de fichiers Windows NT. Pour télécharger le Moniteur de fichiers, consultez Windows Sysinternals.