Backup restore access-vba

Necesito hacer un botón que me haga un backup de la tabla, no de todos los formularios, y otro que me recupere los datos. En VBA

1 Respuesta

Respuesta
1
Una tabla suelta no se puede salvar pero si un MDB. No me mal interpretes, intento explicar el motivo por el cual aconsejo realizarlo de la siguiente forma:
1. Creamos una BBDD que solo contenga tablas (con los mismo diseños que el origen), no necesariamente llamadas iguaL.
2. El botón de BACKUP tendría lo siguiente:
'
'---> Borrado tablas destino
'
Set dbs = OpenDatabase("C:\gauden_tienda\NEW_TIENDA_DATOS_SEG.mdb")
dbs.Execute "DELETE * FROM [tabla_destino]".
'-------> un dbs.execute por cada tabla a copiar
dbs.Close
'
' Copiar tablas a destino
'
DoCmd. TransferDatabase acExport, "Microsoft Access", "C:\.PATH BBDD DESTINO\NOMBRE BBDD DESTINO.mdb", acTable, "tabla origen", "tabla destino", False
' un DoCmd.TransferDatabase por cada tabla a copiar
3. Cuando parezca que ha terminado dale unos instantes, antes de abrir el destino para comprobarlo.
4. La copia a CD lo haríamos con NERO o el programa que tengas para ello.
Origen es la BBDD desde donde se ejecuta el formulario que tiene el botón.
Espero que te sirva,
fcosapa
Perdón se me ha olvidado la restauración:
Recuperamos desde el CD la BBDD que en su momento copiamos y desde nuestro informe pulsaremos un botón de restauración cuyo código es el siguiente:
DoCmd.SetWarnings False
'
'---> limpiamos las tablas destino de la restauración
'
DoCmd.RunSQL "DELETE FROM [tabla a restaurar])
'---> un delete por cada tabla a restaurar
'
'--> copiamos los datos desde el backup a la tabla destino BBDD actual y que previamente se ha limpiado
'
DoCmd.RunSQL "INSERT INTO [xmtro articulos] " & _
"SELECT [tabla destino].* FROM [tabla origen] IN 'c:\path origen\nombre Bbdd origen.mdb';"
'-----> un insert por cada tabla a restaurar
Otra vez Perdón,
Repasando el código de recuperación me he dado cuenta que el insert esta erróneo, el correcto seria:
DoCmd.RunSQL "INSERT INTO [tabla destino] " & _
"SELECT [tabla origen].* FROM [tabla origen] IN 'c:\path bbdd origen\nombre bbdd origen.mdb';"
Saludos,
fcosapa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas