Cómo compactar la base de datos de Microsoft Access a través de ADO

Seleccione idioma Seleccione idioma
Id. de artículo: 230501
Expandir todo | Contraer todo

En esta página

Resumen

Aunque la especificación de ADO proporciona objetos para compactar bases de datos de Microsoft Access, esta capacidad puede lograrse mediante la extensión de ADO: proveedor OLE DB de Microsoft Jet and Replication Objects (JRO). Esta capacidad se implementó por primera vez en la versión de proveedor OLE DB de JET 4.0 (Msjetoledb40.dll) y la versión 2.1 (Msjro.dll) de JRO. Estos archivos DLL están disponibles después de la instalación de MDAC 2.1. Puede descargar la versión más reciente de MDAC desde el siguiente sitio Web:
Sitio Web de acceso de datos universal

Más información

Para compactar una base de datos con ADO, MDAC 2.1 o posterior debe instalarse correctamente en el equipo. Los siguientes son los pasos principales para compactar una base de datos de Microsoft Access mediante Visual Basic y Visual C++:

Visual Basic: Compactar una base de datos de Access a través de ADO

  1. En el IDE de Visual Basic, en el menú proyectos , haga clic en referencias.
  2. Agregar Microsoft Jet and Replication Objects X.X library, donde (X.X es mayor o igual a 2,1).
  3. Agregue las siguientes líneas de código para Visual Basic, reemplazando las rutas de base de datos de origen y destino de datos si es necesario:
    Dim jro As jro.JetEngine
    Set jro = New jro.JetEngine
    jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\nwind2.mdb;Jet OLEDB:Database Password=test", _ 
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\abbc2.mdb;Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=test"
    					
Nota: En DAO 3.60, el método RepairDatabase ya no está disponible. El código anterior muestra el uso del método CompactDatabase. Este método reemplaza el método DAO 3.5 RepairDatabase.

Visual C++: Compactar una base de datos de Access a través de ADO

  1. Además de # import, el Msado15.dll (MDAC2.1), agregue la siguiente instrucción # Import para generar las clases contenedoras para JRO a clases .cpp (también se pueden generar las clases contenedoras de forma más eficaz mediante el uso de los atributos no_implementation e implementation_only de la instrucción del preprocesador # import):
    #import "C:\PROGRAM FILES\COMMON FILES\System\ado\MSJRO.DLL" no_namespace 
    					
  2. Agregue el siguiente (especificando sus propias rutas de acceso de base de datos de origen y destino) al archivo .cpp donde desea compactar la base de datos:
    ...
    try
    {
       IJetEnginePtr jet(__uuidof(JetEngine));
      jet->CompactDatabase( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb;Jet OLEDB:Database Password=test", 
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc.mdb;" \ 
    "Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=test");
    }
    catch(_com_error &e) 
    {       
       ::MessageBox(NULL, (LPCTSTR)e.Description( ), "", MB_OK) ;    
    }
    					
Nota: El tipo de OLEDB:Engine de Jet = 4 es sólo para archivos MDB con formato Jet 3.x. Si este valor se deja, la base de datos se actualiza automáticamente a la versión 4.0 (tipo de Jet OLEDB:Engine = 5). Consulte la siguiente tabla para los valores adecuados para el tipo de OLEDB:Engine de Jet:
Contraer esta tablaAmpliar esta tabla
Tipo de OLEDB:Engine de JetJet x.x archivos MDB con formato
1JET10
2JET11
3JET2X
4JET3X
5JET4X

Referencias

Para obtener información adicional, consulte el siguiente artículo en Microsoft Knowledge Base:
230496 Compactar base de datos de Microsoft Access a través de OLE DB

Propiedades

Id. de artículo: 230501 - Última revisión: miércoles, 16 de mayo de 2012 - Versión: 1.0
Palabras clave: 
kbhowto kbjet kbprovider kbmt KB230501 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 230501
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com