Hola Antonio:
A tu dirección de correo he enviado la solución que tú necesitas. La idea que tienes que no se puede compactar una base de datos que se encuentra actualmente abierta, es totalmente cierta. Pero ello no quiere decir que no
puedas usar los métodos que provee access en algunos de sus objetos para dicha tarea. El truco es compactar BD's no abiertas en un archivo diferente! A ver te explico lo que debes hacer: 1. tener tus tablas en una BD independiente
(ej: tablas.mdb)
2. Tener los demás objetos en otra BD (ej: programas.mdb)
3. Vinculas las tablas de "tablas.mdb" en "programas.mdb"
4. Una vez hecho ésto, Creas un form donde colocas un botón al cual le asocias al evento click, una llamada a un procedimiento llamado "compactdb". Bueno todo ésto que te explico lo puedes verificar claramente en dos archivos MDB que te estoy enviando a tu correo y que tienen el mismo nombre que usé anteriormente. Debes tener en cuenta: 1. programas.mdb ya tiene vínculos, pero éstos no funcionarán si copias éstos archivos en una carpeta diferente a D:\TEMP. Dado éste caso, quita los vínculos y créalos nuévamente en la nueva carpeta que hayas elegido para alojar éstos archivos.
2. Debes entrar al editor de VB y eliminar cualquier referencia que diga: "FALTA" y crear una referencia a: Microsoft DAO 3.6 Object Lybrary. Al final compilas y listo!
Nota para referencias: En editor VB, Herramientas, Referencias. Bien, cualquier duda que tengas sobre los procedimientos utilizados,
comunícate conmigo a
[email protected] y con gusto te respondo.
Un gran saludo desde NEIVA-COLOMBIA.