Copia de seguridad BD completa Access

Quiero saber si es posible mediante un botón en un formulario en Access crear una copia de seguridad de TODA la base de datos en una unidad USB al pulsar el botón.

La unidad está en la ruta: D:\14gb\

Cuando digo TODA la BD son tablas, consultas, etc..

2 respuestas

Respuesta
2

Adicione un botón, supongamos que lo llama "btnBackup", copie este código. Es posible que necesite referenciar "Microsoft Scripting Runtime"

Private Sub btnBackup_Click()
    Dim sourceFile As String
    Dim backupFile As String
    Dim fileSystem As Object
    ' Ruta de la base de datos actual (la base de datos que deseas respaldar)
    sourceFile = CurrentDb.Name
    ' Definir la ruta de destino para la copia de seguridad en la unidad USB
    backupFile = "D:\14gb\" & "Backup_" & Format(Now(), "yyyy-mm-dd_hh-mm-ss") & ".accdb"
    ' Crear un objeto FileSystemObject para copiar el archivo
    Set fileSystem = CreateObject("Scripting.FileSystemObject")
    ' Intentar copiar el archivo
    On Error GoTo ErrorHandler
    fileSystem.CopyFile sourceFile, backupFile
    ' Mensaje de confirmación
    MsgBox "Copia de seguridad creada exitosamente en: " & backupFile, vbInformation, "Copia de Seguridad"
    Exit Sub
ErrorHandler:
    MsgBox "Error al crear la copia de seguridad: " & Err.Description, vbCritical, "Error"
End Sub

Buenos días Eduardo, lo primero muchas Gracias, he puesto el código y referenciado Microsoft Scripting Runtime, pero al ejecutarlo me dice:

Error al crear la copia de seguridad: No se ha encontrado la ruta de acceso.

¿Me podrías indicar donde puede estar el fallo?

Muchas Gracias.

He puesto la ruta de acuerdo con su pregunta D:\14gb\, y veo que si es D: no creo que sea una USB, cámbiela en la línea

backupFile = "D:\14gb\" & "Backup_" & Format(Now(), "yyyy-mm-dd_hh-mm-ss") & ".accdb"
Respuesta
1

Lo mas recomendable es hacer copias de seguridad con la base cerrada y (si es posible) compactada, esto es desde una aplicación que puede ser incluso otra base de datos Access.

Si es una base Access ni tan siquiera se necesita un formulario, la macro Autoexec (de existir, es lo primero que ejecuta Access) inicia todo el proceso.,

Desde esta aplicación externa se puede incluso forzar el finalizar sus procesos activos y tras cerrar la aplicación generar la copia, al finalizar se 'auto cierra'.

Copiar una base abierta puede dejar atrás información (la que esta en la memoria) y será mas pesada al no estar compactada

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas