PRB: Errore 80004005 "Il motore di database Microsoft Jet non può aprire il file '(sconosciuto)'"

Sintomi

Quando si usa ActiveX Data Objects (ADO) o ODBC per connettersi a un database di Microsoft Access, è possibile che venga visualizzato il messaggio di errore seguente:

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.

Causa

Questo messaggio di errore è causato da diverse cause:

  • L'account usato da Microsoft Internet Information Server (IIS), in genere IUSR, non dispone delle autorizzazioni di Windows NT corrette per un database basato su file o per la cartella che contiene il file.
  • Il file e il nome dell'origine dati sono contrassegnati come Esclusivi.
  • Un altro processo o un altro utente ha aperto il database di Access.
  • L'errore può essere causato da un problema di delega. Controllare il metodo di autenticazione (Basic e NTLM), se disponibile. Se il stringa di connessione usa la convenzione UNC (Universal Naming Convention), provare a usare l'autenticazione di base o un percorso assoluto, ad esempio C:\Mydata\Data.mdb. Questo problema può verificarsi anche se l'UNC punta a una risorsa locale nel computer IIS.
  • Questo errore può verificarsi anche quando si accede a un database di Microsoft Access locale collegato a una tabella in cui la tabella si trova in un database di Access in un server di rete.

Risoluzione

Gli elementi seguenti corrispondono all'elenco precedente di cause:

  • Controllare le autorizzazioni per il file e la cartella. Assicurarsi di avere la possibilità di creare e/o eliminare eventuali file temporanei. I file temporanei vengono in genere creati nella stessa cartella del database, ma il file può anche essere creato in altre cartelle, ad esempio la cartella WINNT.

    Se si usa un percorso di rete del database (UNC o unità mappata), controllare le autorizzazioni per la condivisione, il file e la cartella.

  • Verificare che il file e il nome dell'origine dati (DSN) non siano contrassegnati come esclusivi.

  • L'"altro utente" può essere Microsoft Visual InterDev. Chiudere tutti i progetti Visual InterDev che contengono una connessione dati al database.

  • Semplificare. Usare un DSN di sistema che usa una lettera di unità locale. Se necessario, spostare il database nell'unità locale da testare.

Riferimenti

Per verificare la presenza di errori di accesso ai file, usare Monitoraggio file Windows NT. Per scaricare Monitoraggio file, vedere Windows Sysinternals.