Access - Copia de Seguridad MDB

 
Vista:

Copia de Seguridad MDB

Publicado por Jorge (13 intervenciones) el 29/06/2006 17:55:54
Hola, tengo una base de datos, y me gustaria crear una copia del archivo a modo de copia de seguridad.

Buscando por internet he econtrado esto:

Private Sub Copia_de_Seguridad_Click()
Dim MiFso As Object
Dim ruta As String
ruta = "\\puesto12\CServer\backup\"
Set MiFso = CreateObject("Scripting.FileSystemObject")
MiFso.CreateFolder ruta
MiFso.CopyFile CurrentProject.Path & "\jorge.mdb", CurrentProject.Path & "cs.mdb"
MsgBox (ok)
End Sub

Debe ser para hacer una copia en otro ordenador de la misma red llamado "puesto12", que tendria q poner para hacerlo en el mismo ordenador?
(he probado con localhost pero me da error)
Se podria hacer que antes de hacer la copia del archivo, la base de datos se compacte y se repare???

Un saludo y gracias
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

RE:Copia de Seguridad MDB

Publicado por Jordi (226 intervenciones) el 30/06/2006 19:28:10
copia esto en modulo (solo debes cambiar C:\Bases\Hujsa_assistencia.mdb por la ruta de tu archivo y C:\Bases\backup bases\Hujsa_assistenciaA.mdb por la ruta donde quieras guardar la copia :

Option Compare Database

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:\Bases\Hujsa_assistencia.mdb")) = 0 Then
MsgBox "No existeix la base que s' ha de copiar. No es pot realitzar la còpia.", vbCritical, "AVÍS"
Exit Function
End If
If Len(Dir("C:\Bases\backup bases\", vbDirectory)) = 0 Then
MsgBox "No existeix el directori de destí. Es crearà la ruta C:\Bases\backup bases", vbCritical, "AVISO"
MkDir "C:\Bases\backup bases\"
End If
CopiaBase "C:\Bases\Hujsa_assistencia.mdb", _
"C:\Bases\backup bases\Hujsa_assistenciaA.mdb", 0

If Dir("C:\Base\backup bases\Hujsa_assistenciaA.mdb") <> "0" Then

MsgBox "La còpia de seguretat s'ha realitzat amb èxit"

Else

MsgBox "No s' ha pogut realitzar la còpia. Consulta amb el teu administrador"

End If
End Function

--------------------------------------------------------------------------------------------------------------

Para compactar y reparar crea otro modulo y copia el siguiente codigo:

Option Compare Database

Function RepairDatabase(strSource As String, _
strDestination As String) As Boolean

On Error GoTo error_handler
RepairDatabase = _
Application.CompactRepair( _
LogFile:=False, _
SourceFile:=strSource, _
DestinationFile:=strDestination)

On Error GoTo 0
Exit Function

error_handler:
RepairDatabase = False

End Function
---------------------------------------------------------------------------------------------------------------
Luego pon en el evento que quieras (al salir de tu formulario principal por ejemplo) con el generador de codigo:

call RepairDatabase
call copia_seg2
----------------------------------------------------------------------------------------------------------------
Espero que te funcione bien, y si no vuelve a preguntar
Suerte
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

RE:Copia de Seguridad MDB

Publicado por Jorge (13 intervenciones) el 30/06/2006 19:59:39
Bua, genial!

Lo de la copia de seguridad funciona de lujo. PERFECTO. muchas gracias.

El codigo de compactar la base de datos me daba un error, ya lo mirare mas detenidamente. Ya te diré.

ME imagino que una vez echa una copia de seguridad, cuando hagas otra, sobreescribe la anterior.
Se podria hacer, que ponga cs30-06-06.mdb?
para luego ver los archivos y saber que dia las has echo.

Un saludo y muchas gracias
Jorge
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

RE:Copia de Seguridad MDB

Publicado por Juampi (1 intervención) el 30/05/2012 19:13:29
Copie el codigo de la parte de la copia, adecue los path y cuando llamo la funcion, pareciera que lo hace, porque los msgbox asi lo dicen, pero luego la carpeta de destino esta vacía. Por que puede ser?
Gracias
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