Access & VBA FAQ
| | | |
Indice de temas
Tablas
Consultas
Formularios
Informes
Macros
Módulos
Base de datos
Miscelánea
API
Utilidades
Problemas
Cadenas
Fechas
Todos los temas
Base de datos : Compactar base de datos actual (CommandBars)
Autor/es:
Juan M Afán de Ribera
Pregunta : ¿Cómo puedo compactar a través de código la base de datos actual? He leído que no es posible hacerlo desde la propia base de datos y de hecho en las pruebas que he hecho, me aparece un aviso de que "no se puede compactar la base de datos abierta mientras se ejecuta una macro o código de Visual Basic"
Respuesta : Hasta hace un tiempo yo también creía que era así, pero gracias a un código muy sencillo de nuestro amigo Franciso Javier García Aguado (Búho) - del cual encontrarás un enlace en la sección "Temas relacionados", más abajo - me di cuenta de que la documentación sobre este tema no era una premisa totalmente concluyente. Así que también encontré una forma de implementarlo a través de la colección CommandBars

Aquí tienes una rutina que lo demuestra
'---------------------------------------------------------
'
' CompactarDb
'
' Código escrito originalmente por Juan M Afán de Ribera.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
'     accessvbafaq@ya.com
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
Sub CompactDb()

    CommandBars("Menu bar"). _
    Controls("Herramientas"). _
    Controls("Utilidades de la base de datos"). _
    Controls("Compactar y reparar base de datos..."). _
    accDoDefaultAction
    
End Sub
'---------------------------------------------------------
(el método accDoDefaultAction pertenece a la interfaz IAccessible asociada a algunos objetos de la librería de objetos de Office. Podemos ver esta interfaz si vamos al editor de Visual Basic, menu - ver - examinador de objetos, y pinchando con el botón derecho, escojemos en el menú contextual "mostrar miembros ocultos"; después escojamos por ejemplo el objeto Form y busquemos en la lista de métodos que aparecerá...)

Ejemplos:

 

Temas relacionados:

Compactar base de datos actual (SendKeys)

 

Última actualización: 18/12/2004