Programar botón para compactar

Acudo a ti para volver a preguntarte una duda que se me acaba de ocurrir. Un cliente me ha pedido que le programe un botón de un formulario (¿inexplicable? Yo también lo pienso, pero el cliente siempre tiene la razón...) para compactar la base de datos que tiene abierta. ¿Tienes alguna idea de como hacerlo?
Respuesta
1
Si la base de datos no es muy grande y está en local, lo mejor es marcar la opción "Compactar al cerrar" (Herramientas -> Opciones -> Ficha General), se compactará cada vez que se cierre y el usuario casi no lo notará.
En caso contrario, la cosa se complica ya que tiene que tener opción de abrirla en exclusiva o si no no podrá compactarla.
Además, que yo sepa, no hay ningún método para compactar un BD sobre ella misma, se puede hacer creando una nueva BD, lo que no te vale si no tienes la BD dividida, con las tablas por un lado y el resto de objetos por el otro.
He estado trasteando un poco por ahí y he tenido esta feliz idea:
CommandBars("Menu bar")._
Controls("Herramientas")._
Controls("Utilidades de la base de datos"). _
Controls("Compactar y reparar base de datos...").accDoDefaultAction
La he probado y parece que funciona. ¿Habías utilizado antes un método similar a este? ¿Funcionará con el resto de acciones del menú?
Puedes hacer lo mismo llamando directamente a la opción de menu:
Application. RunCommand acCmdCompactDatabase
No es muy elegante porque cierra y vuelve a abrir la BD y tiene que poder abrirla en exclusiva, pero si a ti te vale...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas