¿Cómo puedo programar una copia de seguridad de la base de datos?

Después de un año desarrollando la base de datos access gracias a la inestimable ayuda de TodoExpertos, lleva la hora de proteger este trabajo. Actualmente guardo manualmente las bases de datos 2 veces por semana, en 2 lugares distintos, por si acaso". Ahora con las vacaciones me gustaría progresar en esto y poder programar el guardar las bases de datos.

Las bases de datos (access1 y access2) que contienen las tablas están en una unidad U:\ (servidor virtual tipo nube en carpeta oculta). La base de datos que contiene los formularios,... (BD llamada gestión) están en mi disco duro local (donde voy haciendo todas las mejoras antes de colgarlas en un servidor real L:\ para la oficina central y otra copia en el servidor virtual U:\ para los centros externos.)

¿Cómo podría programar el backup de las BD access1, access2 y gestión?

1 Respuesta

Respuesta
2

Estoy de viaje y no me puedo extender en mi respuesta, pero si miras en la web de Neckkito, sección ejemplos -> seguridad, verás que hay dos o tres ejemplos perfectamente explicados para hacer copias de seguridad: http://neckkito.xyz/nck/index.php/ejemplos/37-seguridad

Todavía no he encontrato tiempo para verlo. Pero seguramente me sirva.

Gracias

Seguramente

Hola Sveinbjorn,

- En mi caso los datos de la base de datos están divididos en 2 tablas y ubicadas en un servidor u:\

U:\Access fuera\Access1.accdb

U:\Access fuera\Access2.accdb

- El frontend lo tengo en mi escritorio

C:\Access\Azgar_facturas_escritorio.accdb

- La copia de seguridad la necesito en otro servidor l:\

rutaBackup = "L:\Sergio\Access\Backup\"

¿Cómo podría pulsando en 1 solo botón cmdBackupBackEnd hacer una copia de seguridad de las 2 tablas?

Gracias

Uno de los ejemplos en el enlace que te indicaba es para hacer copias de BDs divididas. Mirando un poco por encima el código (que está ampliamente explicado para que lo puedas seguir), entiendo que te hará copias de todos los archivos a los que apunten las tablas vinculadas, sin necesidad de tener que hacer ningún cambio al código, más allá de indicar dónde quieres la copia

Lo decía porque al ejecutar el backup se para durante el proceso, abriendo la ventana VBA y señalando en amarillo la línea:

Dim fso As Scripting.FileSystemObject 'fso=FileSystemObject.

Mensaje de "error de compilación: no se ha definido el tipo por el usuario"

Bien las instrucciones del pdf, porque ese error es que te falta por registrar una referencia (en el propio código te indica las que debes registrar)

Ya lo he entendido. Faltaban por definir las referencias.

Solo he podido definir la referencia "Microsoft Scripting Runtime". La otra referencia "Microsoft DAO 3.6 Object Library" me dice que "el nombre entra en confilto con un módulo, proyecto o biblioteca de objetos existentes".

Sin dar de alta esa referencia, he pulsado el backup y funciona pero solo me hace el backup de todas las tablas contenidas en el backend "Access1" y la guarda con el nombre 190820-Access1. ¿Tiene solución? ¿Si no podríamos poner 2 botones para que cada uno hiciese el backup de cada backend Access1 y Access2?

Gracias

La librería DAO te da error porque ya tienes registrada otra que hace lo mismo (la access database engine, o algo parecido)

Una forma rápida para que te haga las dos copias (y solo te indico los cambios que has de hacer en el código, no te los hago yo, que sigo de viaje) es eliminar todo el código desde miBE="" hasta miBERuta = Left(miBE, numCaract).

Luego cambias en la linea Set fsa = fso.GetFile(miBE) el miBE por la ruta completa a tu archivo 1 (por ejemplo: fso.GetFile("C:\DatosAplicacion\Access1.accdb") )

Copias todo el código desde esa linea hasta la del comentario 'Lanzamos un mensaje de aviso de que el proceso ha ido bien, y la pegas (ahora poniendo la ruta del segundo archivo en el set fsa=...) antes del 'Lanzamos un mensaje de aviso de que el proceso ha ido bien

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas