Sie sind auf Seite 1von 2

FUNÇÃO BACKUP DIVIDIDO EM DUAS PARTES

Primeira parte - Crie um novo módulo, apague tudo que estiver nele e cole a função aba
ixo:
Option Compare Database
Public Sub FazBackUp()
'-------------------------------------------------------------------------------
--------
' Procedimento : FazBackUp
' Data/Hora : 20/10/05 15:31
' Autor : Win Vermeer/ Adaptação: OsmarJr
' Propósito : Faz backup diário do banco de dados. Se já existe, não faz nova cópia.
' Com pequenas alterações também pode ser mensal.
'-------------------------------------------------------------------------------
--------
'
On Error GoTo FazBackUp_Erro
Dim fs As Object
Dim strAppPath As String
Dim strAppName As String
Dim strDay As String
Dim strWeek As String
Dim strDailyBackup As String
Dim strWeeklyBackup As String
Dim boolMakeDailyBackup As Boolean
Dim boolMakeWeeklyBackup As Boolean
strAppName = Application.CurrentProject.FullName
strAppPath = Application.CurrentProject.Path
strBackupPath = strAppPath & "\backup\"
Set fs = CreateObject("Scripting.FileSystemObject")
If Not (fs.FolderExists(strBackupPath)) Then fs.CreateFolder (strBackupPath)
' Vamos fazer um backup diário
' Se o arquivo de backup já existe, verificar se tem a data atual.
' Se for, não faz a cópia. Se não for a data atual, exclui o arquivo.
' Copia.
boolMakeDailyBackup = True
strDay = Format(Now(), "dddd")
strDailyBackup = strBackupPath & strDay & ".accdb"
If fs.FileExists(strDailyBackup) Then
Set F = fs.GetFile(strDailyBackup)
If F.DateCreated = Date Then
boolMakeDailyBackup = False
Else
fs.deletefile strDailyBackup
End If
End If
' Faz um backup semanal (podem dizer que sou paranóico mas durmo tranquilo)
If boolMakeDailyBackup Then fs.CopyFile strAppName, strDailyBackup
boolMakeWeeklyBackup = True
strWeek = Format(Now(), "yyyy-ww") ' Pega o ano e o número da semana
strWeeklyBackup = strBackupPath & strWeek & ".accdb"
If fs.FileExists(strWeeklyBackup) Then
boolMakeWeeklyBackup = False
End If
If boolMakeWeeklyBackup Then fs.CopyFile strAppName, strWeeklyBackup
Saida:
Exit Sub
FazBackUp_Erro:
MsgBox "Erro: " & vbCrLf & vbCrLf & Err.Description & vbCrLf & _
" no procedimento FazBackUp", vbExclamation + vbOKOnly, _
"Erro: " & CStr(Err.Number)
#If DESENV Then
Stop
Resume
#End If
Resume Saida
End Sub
Segunda parte - para chamar a função através de um botão, cole o código abaixo no evento o
nClick do botão. Para fazer o backup automaticamente ao fechar o banco, coloque no
evento "Ao fechar" do formulário principal:
Call FazBackUp
MsgBox "Backup realizado com sucesso"

Das könnte Ihnen auch gefallen