Cómo compactar una base de datos de Microsoft Access mediante Visual Basic .NET

Resumen

Ni ActiveX Data Objects (ADO) ni ADO .NET proporcionan los medios necesarios para compactar o reparar bases de datos de Microsoft Access. Sin embargo, puede realizar esta tarea utilizando el proveedor OLE DB de Microsoft Jet y Replication Objects (JRO) que se introdujo con Microsoft Data Access Components (MDAC) versión 2.1. ADO .NET permite el uso de bibliotecas de objetos basados en COM a través de la capa de interoperabilidad .

Este artículo muestra cómo compactar una base de datos de Access mediante Visual Basic .NET.


Requisitos

  • Microsoft Visual Basic .NET
  • Microsoft Jet y Replication Objects 2.1, 2.5 ó 2.6 Library

Pasos para generar el ejemplo

  1. Abra una nueva aplicación de consola de Visual Basic .NET.
  2. En la ventana Explorador de soluciones , haga clic en el nodo referencias y seleccione Agregar referencia.
  3. En el cuadro de diálogo Agregar referencia , haga clic en la ficha COM y a continuación, seleccione Microsoft Jet y Replication Objects 2. x biblioteca. Haga clic en Seleccionar para agregarlo a los Componentes seleccionados. Haga clic en Aceptar.

    Nota: En este paso, x es un marcador de posición para el número de versión real del componente Microsoft Jet y Replication Objects Library.
  4. Se mostrará una advertencia si no hay ningún contenedor para la biblioteca seleccionada. Haga clic en para generar un empaquetador. Las referencias biblioteca Microsoft ActiveX Data Objects (ADODB) y JRO se agregarán a las del proyecto las referencias.
  5. En la ventana Explorador de soluciones, haga clic en Module1.vb y haga clic en Ver código.
  6. Elimine todo el código de la ventana de código.
  7. Copie el código siguiente y péguelo en la ventana de código:
    Module Module1
    Sub Main()

    Dim jro As JRO.JetEngine

    jro = New JRO.JetEngine()

    jro.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\nwind.mdb", _
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\NewNwind.mdb;Jet OLEDB:Engine Type=5")

    MsgBox("Finished Compacting Database!")
    End Sub

    End Module

  8. Cambiar la ruta de acceso a los archivos .mdb de origen y de destino según corresponda. Presione F5 para generar y ejecutar el proyecto.

    La base de datos compactada estarán en formato de Access 2000 (Jet 4.0). Para un formato Jet diferente, consulte "Referencias".

Dificultades

Para compactar una base de datos, el motor de base de datos de Jet requiere acceso exclusivo al archivo de base de datos. Intenta compactar un archivo de base de datos que está actualmente en uso se producirá una excepción. Esta excepción puede capturarse mediante un bloque Try... Estructura Try.

Referencias

Para obtener más detalles sobre el.NET Framework y la capa de interoperabilidad COM, vea:

Exponer componentes COM en el.NET Framework
http://msdn2.microsoft.com/en-us/library/z6tx9dw3(vs.71).aspx
Para obtener más información acerca de cómo utilizar ADO y JRO para compactar las bases de datos de Access, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

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

Propiedades

Id. de artículo: 306287 - Última revisión: 22 ene. 2017 - Revisión: 2

Comentarios