** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Copiar desde VBA un file accdb
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCopiar desde VBA un file accdb

 Responder Responder
Autor
Mensaje
Marciana Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 20/Septiembre/2004
Localización: Argentina
Estado: Sin conexión
Puntos: 323
Enlace directo a este mensaje Tema: Copiar desde VBA un file accdb
    Enviado: 07/Mayo/2020 a las 22:16
Hola Todos
Tengo una aplicación compleja. Un backend y 3 frontends. En Access 2016.
Quiero hacer una copia de seguridad del backend desde un frontend. Asociado a cierto paso final de un proceso mensual.

Sé que puedo hacerlo copiando tabla por tabla. Pero son muchas y si agregara una tabla o cambiara algún nombre debería hacer modificaciones.

Encontré DoCmd.CopyDatabase pero ser refiere a una base SQL que no es mi caso. 

Existe una copia que está sincronizada. 
Necesito guardar una copia por cada final de proceso que tendrá identificada la fecha de la copia.

Desde VBA, ¿existe la posibilidad?
Gracias siempre, M.
Cordialmente, Marciana
Saludos desde la Patagonia, Argentina
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
Enlace directo a este mensaje Enviado: 07/Mayo/2020 a las 22:28
Hola!

Este código hace una copia de seguridad del BackEnd:


Dim fechahoy As Date
Dim origen, Destino As String
Dim fso As Object
fechahoy = DateValue(Now)
origen = "C:\Tucarpeta\Tu_base_de_datos.accdb"
Destino = "C:\Tucarpeta\Tu_base_de_datos_" & Format(fechahoy, "dd_mm_yyyy") & ".accdb"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile origen, Destino, True
Set fso = Nothing
Un Saludo.
Arriba
Marciana Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 20/Septiembre/2004
Localización: Argentina
Estado: Sin conexión
Puntos: 323
Enlace directo a este mensaje Enviado: 11/Mayo/2020 a las 16:32
Perfecto!
Gracias Munir!


Cordialmente, Marciana
Saludos desde la Patagonia, Argentina
Arriba
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 2085
Enlace directo a este mensaje Enviado: 11/Mayo/2020 a las 17:06
Hola Marciana,

Yo hace años me agencie una manera de hacerlo con un bat miralo y si te sirbe algo pues genial.

Private Sub cmdCopia_Click()
Dim strOrigen As String, strDestino As String
    'como es el caso el current.path me pasa por
    'Mis Documentos y a MsDos no le gustan, así que hecemos la ruta corta
    '
    strOrigen = GetShortName("C:\Numisoftware\DatosNumi")
   
    strDestino = Me.cmbUnidad & ":\BackUpDatosNumi\"
    'como vamos a crear varias carpetas, miramos si existe la primera \BackUpDatosNumi\
    'caso de no existir la creamos y también la carpeta con la fecha
    If Len(Dir(strDestino, vbDirectory)) = 0 Then MkDir strDestino
    strDestino = strDestino & Format(Now(), "yyyymmddhhnnss") & "\DatosNumi"
    Open CurrentProject.Path & "\Copia.bat" For Output As #1
    Print #1, ":begin"
    Print #1, "@echo off"
    Print #1, "cls"
    Print #1, "setlocal"
    Print #1, "set f_origen=" & strOrigen
    Print #1, "set f_destino=" & strDestino
    Print #1, "if exist %f_destino% rd %f_destino%"
    Print #1, "md %f_destino%"
    Print #1, "xcopy %f_origen% %f_destino% /E /C /Y /H /I"
    Print #1, ": End"
    Print #1, "endlocal"
    Print #1, "exit 0"
    Close #1
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("tblCopias")
    rst.AddNew
    rst!RutaCopia = strDestino
    rst!FechaCopia = Now()
    rst.Update
    rst.Close
    Set rst = Nothing
    Ejecuta Me.hWnd, "open", _
            CurrentProject.Path & "\Copia.bat", "", "", 1

    Me.lstRutaCopias.Requery
End Sub

Un placer poder ayudar a la bruja favorita (según Mihura)

Saludos, ximo
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana
Arriba
01loko Ver desplegable
Colaborador
Colaborador


Unido: 17/Agosto/2017
Localización: Santander
Estado: Sin conexión
Puntos: 807
Enlace directo a este mensaje Enviado: 11/Mayo/2020 a las 18:31
La duda que me surge es:

¿Que ocurre cuando esta en uso?

En el caso del bat de Ximo, claramente dara error, en el caso de mounir, creo que le pasaria lo mismo ya qye al usar el sistema de ficheros y estar en uso, estaria bloqueado por Windows.

no seria mejor crear una base nueva y exportar datos?
Recordar de que soy nuevo y estoy aprendiendo.
Arriba
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 2085
Enlace directo a este mensaje Enviado: 11/Mayo/2020 a las 19:25
Hola,

Pues yo te aseguro que no da error y está en uso.

C:\BackUpDatosNumi\20200511192044\DatosNumi.mdb

La acabo de copiar fijate en la carpeta de la fecha, y además tengo otro bat para restaurar al copia que se desee.


Saludos, ximo
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana
Arriba
Marciana Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 20/Septiembre/2004
Localización: Argentina
Estado: Sin conexión
Puntos: 323
Enlace directo a este mensaje Enviado: 16/Mayo/2020 a las 00:28
Muchas gracias, Ximo!
Cordialmente, Marciana
Saludos desde la Patagonia, Argentina
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable