PRB: Messaggio di errore "Formato di database non riconosciuto" quando si effettua l'aggiornamento ad Access 2000 o 2002

Sintomi

Quando si tenta di accedere a un database di Access 2000 o di Access 2002, è possibile che in Visual Basic venga visualizzato uno dei seguenti messaggi di errore.

Se si utilizza Microsoft ActiveX Data Objects (ADO) o il controllo dati ADO, verrà visualizzato un messaggio di errore analogo al seguente:
Errore di run-time -2147467259 Formato di database XXX non riconosciuto
Se si utilizza Data Access Objects (DAO) o il controllo dati generico DAO, verrà visualizzato un messaggio di errore analogo al seguente:
Errore di run-time 3343 Formato di database XXX non riconosciuto

Cause

In Access 2000 e Access 2002 viene utilizzato il modulo di gestione di database Jet 4.0 che crea file di database in formato Jet 4.0. Questo formato non viene riconosciuto dai componenti di Jet 3.5.
  • Se si utilizza ADO, quando si tenta di connettersi ad Access 2000 o 2002 tramite il provider Microsoft.Jet.OLEDB.3.51 verrà visualizzato l'errore -2147467259.
  • Se si utilizza DAO, verrà visualizzato l'errore 3343 quando si utilizza Microsoft DAO 3.51 Object Library.
  • Il controllo dati generico DAO non funziona con database di Access 2000 o 2002 e viene sempre generato l'errore 3343 a meno che venga utilizzato come descritto nella sezione "Risoluzione" di questo articolo. Questo si verifica perché tale controllo è basato su Jet 3.51 e riconosce solo formati di database di Jet versione 3.51 o precedenti.

Risoluzione

Per risolvere questo problema, utilizzare uno dei seguenti metodi:
  • Installare Visual Studio Service Pack 4 o versione successiva. Se si utilizza il controllo dati, modificare la relativa proprietà Connect e impostarla su Access 2000.
  • Per ADO (o per il controllo dati ADO) utilizzare il provider Microsoft.Jet.OLEDB.4.0.
  • Per DAO aggiungere un riferimento a Microsoft DAO 3.6 Object Library.
  • Se si utilizza il controllo dati generico, sarà necessario aprire un recordset DAO 3.6 e impostarlo come origine del controllo dati come indicato di seguito:
    Option Explicit
    Private daoDB36 As Database
    Private rs As DAO.Recordset
    Dim sPath As String

    Private Sub Form_Load()
    sPath = _
    "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
    Set daoDB36 = DBEngine(0).OpenDatabase(sPath)
    Set rs = daoDB36.OpenRecordset("Customers")
    Set Data1.Recordset = rs
    End Sub
  • Questo problema è stato risolto con Visual Basic Service Pack 4. È stato aggiunto un nuovo valore (Access 2000) alla proprietà Connect che consentirà al controllo dati DAO di aprire i database di Access 2000.

Status

Questo problema è stato corretto inizialmente in Visual Studio 6.0 Service Pack 4.Per ulteriori informazioni sui service pack di Visual Studio, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
194022 Reperimento e utilizzo dei service pack per Visual Studio 6.0

194295 Determinazione dei Service Pack di Visual Studio installati
Per scaricare la versione più recente del service pack di Visual Studio, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):

Riferimenti

Per ulteriori informazioni su Jet 4.0, fare riferimento alla documentazione di Access 2000.

Per ulteriori informazioni su ADO e DAO, fare riferimento alla documentazione di Visual Basic.

Per ulteriori informazioni sul messaggio di errore "Formato di database non riconosciuto", eseguire una ricerca nella libreria MSDN fornita con Visual Basic.
Proprietà

ID articolo: 238401 - Ultima revisione: 07 ago 2007 - Revisione: 1

Feedback