PRB: Aparece el mensaje de error Formato de base de datos no reconocido al actualizar a Access 2000

Síntomas

Si intenta tener acceso a una base de datos de Access 2000, puede que se produzca uno de los errores siguientes en el programa de Visual Basic:


Si utiliza ADO (o el control de datos ADO):
Error en tiempo de ejecución: -2147467259. Formato de base de datos XXX no reconocido.
Si utiliza DAO (o el control de datos genérico DAO):
Error en tiempo de ejecución: 3343. Formato de base de datos XXX no reconocido.

Causa

Access 2000 utiliza el motor Jet 4.0, que crea archivos de bases de datos con formato de Jet 4.0. Los componentes de Jet 3.5 no reconocerán ese formato.
  • Si utiliza ADO, obtendrá el error -2147467259 cuando intente conectarse a Access 2000 mediante el proveedor "Microsoft.Jet.OLEDB.3.51".
  • Si utiliza DAO, obtendrá el error 3343 mencionado anteriormente cuando utilice la "Biblioteca de objetos Microsoft DAO 3.51".
  • El control de datos genérico de DAO no funciona con bases de datos de Access 2000 y genera siempre el error 3343 si no se utiliza como se indica en la sección "Resolución" de este artículo. Esto ocurre porque este control se basa en Jet 3.51 y sólo reconoce formatos de bases de datos de Jet 3.51 (o anteriores).

Solución

Para resolver este problema, realice una de las acciones siguientes:

  • Instale Visual Studio Service Pack 4.
  • Para ADO (o el control de datos ADO), utilice el proveedor "Microsoft.Jet.OLEDB.4.0".
  • Con el fin de utilizar DAO, vaya al menú Proyecto y elija Referencias para usar la "Biblioteca de Objetos Microsoft DAO 3.6".
  • Si utiliza el control de datos genérico, tendrá que abrir un conjunto de registros de DAO 3.6 y asignarlo después para que sea el origen del control de datos, de la manera siguiente:
     Option Explicit Private daoDB36 
    As Database Private rs
    As DAO.Recordset
    Dim sPath As String

    Private Sub Form_Load() sPath = _ "C:\Archivos de programa\Microsoft Office\Office\Samples\Neptuno.mdb"
    Set daoDB36 = DBEngine(0).OpenDatabase(sPath)
    Set rs = daoDB36.OpenRecordset("Clientes")
    Set Data1.Recordset = rs
    End Sub
  • Este problema se ha solucionado en Visual Basic Service Pack 4, puesto que se ha agregado un nuevo valor (Access 2000) a la propiedad Connect, que permite que el control de datos DAO abra bases de datos de Access 2000.

Estado

Microsoft ha solucionado este problema en Visual Basic Service Pack 4, puesto que se ha agregado un nuevo valor (Access 2000) a la propiedad Connect, que permite al control de datos DAO abrir bases de datos de Access 2000. Para obtener Visual Studio Service Pack 4, visite el siguiente sitio Web:


http://msdn2.microsoft.com/en-us/vstudio/aa718359.aspx

Referencias

Para obtener más información acerca de Jet 4.0, consulte la documentación de Access 2000.


Para obtener más información acerca de ADO y DAO, consulte la documentación de Visual Basic.


Para obtener más información acerca del "Formato de base de datos no reconocido", consulte en la biblioteca MSDN proporcionada con Visual Basic.


Propiedades

Id. de artículo: 238401 - Última revisión: 29 abr. 2007 - Revisión: 1

Comentarios