Access - Arreglar código de Copia de Seguridad

 
Vista:

Arreglar código de Copia de Seguridad

Publicado por Marcos Nicolas (53 intervenciones) el 25/09/2011 22:10:08
El siguiente código lo conseguí de este foro (Enrique) para crear una copia de seguridad de mi BD.
Funciona perfecto.
El problema que tiene es que crea una copia de la BD y si después quiero hacer una copia nuevamente, no reemplaza la anterior y tampoco crea la nueva, quedando la primera copia como respaldo, lo cual no sirve porque como ya existe una con el nombre de Copia.MDB ya no permite realizar ninguna más.
Me gustaría ver la forma de arreglar el código de tal manera que permita ó reemplazar la BD existente (copia.MDB) ó crear una nueva Copia.mdb pero con la fecha y hora para diferenciarla
de la anterior. De no ser posible, alguien tendrá un código que haga lo que quiero hacer ??

Private Declare Function CopiaBase Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Function copia_seg2()

If Len(Dir("C:\Programa Taller\Taller.mdb")) = 0 Then
MsgBox "NO EXISTE LA BASE DE DATOS QUE SE QUIERE COPIAR, NO SE PODRA REALIZAR COPIA", vbCritical, "AVISO"
Exit Function
End If
If Len(Dir("C:\Programa Taller\", vbDirectory)) = 0 Then
MsgBox "NO EXISTE EL DIRECTORIO DE DESTINO. SE CREARA LA RUTA C:\Programa Taller ", vbCritical, "AVISO"
MkDir "C:\Programa Taller\"
End If
CopiaBase "C:\Programa Taller\Taller.mdb", _
"C:\Programa Taller\Copia.mdb", 0

If Dir("C:\Programa Taller\Copia.mdb") <> "0" Then

MsgBox "LA COPIA SE HA REALIZADO EXITOSAMENTE....", , "PROCESO OK"

Else

MsgBox "NO SE PUDO REALIZAR LA COPIA, CONSULTE CON EL ADMINISTRADOR DEL PROGRAMA..."

End If
End Function

Como siempre gracias por su ayuda.
MN
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Arreglar código de Copia de Seguridad

Publicado por Marcos Nicolas (53 intervenciones) el 26/09/2011 04:01:15
En este mismo foro, encontré la respuesta. En un botón en el evento alhacer click puse esto

Private Sub Comando12_Click()
Dim a As FileSystemObject
Set a = New FileSystemObject
a.CopyFile "C:\Programa Taller\Taller.mdb", _
"C:\Programa Taller\Copia.mdb", True
Set a = Nothing
MsgBox "LA COPIA DE LA BD SE HA REALIZADO EXITOSAMENTE..", vbInformation, "PROCESO OK"
End Sub

Con esto crea una copia de la BD y si después quiero hacer una nueva copia, sobreescribe la primera
dejando como copia.mdb la última versión. (eso creo lo hace la instrucción True).
Maravilloso.

Gracias.
MN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar