Copia de Seguridad de Archivo MS Access (.mdb) a Pendrive con VB6
Copia de Seguridad
de Archivo MS Access (.mdb) a Pendrive con VB6
Para
crear una copia de seguridad de un archivo MS Access (.mdb) a un pendrive
cuando se hace clic en un botón en un formulario VB6, puedes usar el siguiente
código:
vb
Private
Sub cmdBackup_Click()
On Error GoTo ErrorHandler
Dim ArchivoOrigen As String
Dim ArchivoDestino As String
Dim UnidadPendrive As String
Dim FSO As Object
Dim Drv As Object
Dim Existe As Boolean
' Ruta
del archivo de origen (base de datos Access)
ArchivoOrigen = "C:\Ruta\A\Tu\BaseDeDatos.mdb" ' Cambiar por
tu ruta real
'
Verificar si el archivo de origen existe
If
Dir(ArchivoOrigen) = "" Then
MsgBox "El archivo de origen no existe: " & ArchivoOrigen,
vbExclamation
Exit Sub
End If
' Crear objeto FileSystemObject
Set FSO =
CreateObject("Scripting.FileSystemObject")
' Buscar la unidad del pendrive (asumiendo que es la primera unidad
extraíble)
Existe =
False
For Each Drv In FSO.Drives
If Drv.DriveType = 1 Then ' 1 = Unidad
extraíble (Removable)
UnidadPendrive = Drv.DriveLetter
& ":\"
Existe = True
Exit For
End If
Next
If Not Existe Then
MsgBox "No se encontró un pendrive conectado.", vbExclamation
Exit
Sub
End If
' Crear
nombre de archivo de destino con fecha y hora
ArchivoDestino
= UnidadPendrive & "Backup_BD_" & Format(Now,
"yyyy-mm-dd_hh-nn-ss") & ".mdb"
' Copiar el archivo
FSO.CopyFile ArchivoOrigen, ArchivoDestino, True ' True = sobrescribir
si existe
MsgBox
"Copia de seguridad creada exitosamente en:" & vbCrLf &
ArchivoDestino, vbInformation
Exit Sub
ErrorHandler:
MsgBox
"Error al crear la copia de seguridad:" & vbCrLf &
Err.Description, vbCritical
End Sub
Instrucciones para implementar:
- Agrega un botón
(CommandButton) a tu formulario y nómbralo cmdBackup (o cambia el nombre en el código).
- Cambia la ruta ArchivoOrigen por la ubicación real de tu
archivo .mdb.
- Opcionalmente, puedes
mejorar el código con:
- Un diálogo para seleccionar
el archivo de origen
- Verificación de espacio
disponible en el pendrive
- Opción para seleccionar
entre múltiples unidades extraíbles
- Barra de progreso para
archivos grandes
- Para usar FileSystemObject,
asegúrate de tener la referencia "Microsoft Scripting Runtime"
activada en tu proyecto (Menú Project > References).
Versión alternativa sin
FileSystemObject:
vb
Private
Sub cmdBackup_Click()
On Error GoTo ErrorHandler
Dim ArchivoOrigen As String
Dim ArchivoDestino As String
Dim UnidadPendrive As String
Dim i As Integer
ArchivoOrigen = "C:\Ruta\A\Tu\BaseDeDatos.mdb" ' Cambiar por
tu ruta real
'
Verificar archivo origen
If
Dir(ArchivoOrigen) = "" Then
MsgBox "El archivo de origen no existe.", vbExclamation
Exit
Sub
End If
' Buscar
pendrive (de la Z: hacia atrás)
For i =
26 To 1 Step -1
If GetDriveType(Chr(i + 64) &
":\") = 2 Then ' DRIVE_REMOVABLE = 2
UnidadPendrive = Chr(i + 64) &
":\"
Exit For
End If
Next
If
UnidadPendrive = "" Then
MsgBox
"No se encontró un pendrive conectado.", vbExclamation
Exit
Sub
End If
' Crear
nombre de archivo con fecha
ArchivoDestino
= UnidadPendrive & "Backup_BD_" & Format(Now,
"yyyy-mm-dd") & ".mdb"
' Copiar archivo
FileCopy
ArchivoOrigen, ArchivoDestino
MsgBox
"Copia de seguridad creada en:" & vbCrLf & ArchivoDestino,
vbInformation
Exit Sub
ErrorHandler:
MsgBox
"Error al crear copia: " & Err.Description, vbCritical
End Sub
Para esta
versión necesitas declarar la API de Windows al inicio del módulo:
vb
Private
Declare Function GetDriveType Lib "kernel32" Alias
"GetDriveTypeA" (ByVal nDrive As String) As Long
Ambos
métodos te permitirán crear copias de seguridad de tu base de datos Access en
un pendrive con solo hacer clic en un botón.
Comentarios
Publicar un comentario