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) |