Respaldo

Hola expertos!
Tengo que hacer un proyecto para la escuela. El cual me respalde la información lo que tiene que hacer es algo así como sacar una copia de la base de datos al empezar a trabajar con ella y que al momento de cerrar el sistema me diga si estoy segura de hacer los cambios o que los grave cuando yo le diga espero que puedas ayudarme no tengo ni idea de como hacerlo. Y el tiempo ya se me vino encima.
De antemano gracias!
Respuesta
1
No se de forma te pidieron que lo resuelvas, yo te lo solucioné utilizando Fyle System Object porque es más fácil, espero que te sirva...
Para agregar la dll a tu proyecto, tenés que:
-ir PROYECT/REFERENCES
-Buscar Microsoft Scripting Runtime, marcarlo y darle ok
OJO: sin hacer lo anterior el código no funciona
El código es:
Dim FSO As FileSystemObject
Private Sub Form_Load()
'instanciamos el file system object
Set FSO = New FileSystemObject
'hacemos la copia de seguridad
FSO.CopyFile App.Path & "\BASE.MDB", App.Path & "\COPIA.MDB", True
'liberamos el objeto
Set FSO = Nothing
'AHORA PODEMOS TRABAJAR SOBRE COPIA.MDB
End Sub
Private Sub Form_Unload(Cancel As Integer)
Select Case MsgBox("Quiere aplicar los cambios?", vbYesNo + vbQuestion, App.Title)
Case vbYes
'instanciamos el file system object
Set FSO = New FileSystemObject
'copiamos la bd COPIA.MDB a BASE.MDB
FSO.CopyFile App.Path & "\COPIA.MDB", App.Path & "\BASE.MDB", True
'borramos la copia
FSO.DeleteFile App.Path & "\COPIA.MDB", True
Case vbNo
'si no quiere sale del programa y borra la copia
FSO.DeleteFile App.Path & "\COPIA.SQL", True
Set FSO = Nothing
End
End Select
End Sub
Suerte y Saludos
ANdrés
Hola!
Gracias por su interés:
Pero tengo un pequeño problema le entiendo muy bien al código, y me párese bien es una respuesta de 6 pero tengo un gran problema no encuentra la rutia de la base de datos lo que pasa es que la BD la tengo en una carpeta fuera de visual cuando me surgía ese problema le agragaba un Workespace (0) y se solucionaba, pero aquí no puedo.
Disculpa si ni pregunta es muy tonta donde tengo la BD es en una carpata:
C:\Daniela\Inventario.MDB
C:\Daniela\Respaldo.MDB
No se si se puede poner app...
Por convención general la ruta de la base de datos tiene que ser:
-Fija, en caso de que esté la red, al estilo "f:\base.mdb"
-Variable pero en un subdirectorio dentro del directorio de tu app, o directamente en el directorio de tu app; ejemplo:
app.path & "\base.mdb"
o
app.path & "\base\base.mdb"
¿Cuál es tu caso?, o en todo caso, si tu ruta es fija, le podes pasar directamente la ruta de la base.
Ok, entonces el código sería:
Dim FSO As FileSystemObject
Private Sub Form_Load()
'instanciamos el file system object
Set FSO = New FileSystemObject
'hacemos la copia de seguridad
FSO.CopyFile "c:\Daniela\Inventario.MDB", "C:\Daniela\Respaldo.MDB",True
'liberamos el objeto
Set FSO = Nothing
'AHORA PODEMOS TRABAJAR SOBRE Respaldo.MDB
End Sub
Private Sub Form_Unload(Cancel As Integer)
Select Case MsgBox("Quiere aplicar los cambios?", vbYesNo + vbQuestion, App.Title)
Case vbYes
'instanciamos el file system object
Set FSO = New FileSystemObject
'copiamos la bd COPIA.MDB a BASE.MDB
FSO.CopyFile "C:\Daniela\Respaldo.MDB","c:\Daniela\Inventario.MDB",True
'borramos la copia
FSO.DeleteFile"C:\Daniela\Respaldo.MDB",True
Case vbNo
'si no quiere sale del programa y borra la copia
FSO.DeleteFile "C:\Daniela\Respaldo.MDB",True
Set FSO = Nothing
End
End Select
End Sub
App. Path sirve para saber en que directorio se está corriendo la aplicación; no es obligatorio usarlo; lo usás cuando lo necesitás
Otra vez yo!
Prometo que es la ultima ves
Ahora me sale error en Unloadform
"error 70 en tiempo de ejecución"
Permiso denegado.
En la linea de copiar la BD copia a base
Disculpa es que de verdad no tengo idea de que pueda ser.
Daniela
Chihuahua, Mexico
Fíjate si estas cerrando la conexión a la base de datos, y liberando todos los objetos y variables que dependan de esta
Por ahí viene el problema, ya que la base de datos esta en uso, por eso no te la deja copiar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas