Boa noite amigos do fórum.
Tenho uma dúvida quanto a um código que encontrei do qual não sei quem é o autor do mesmo...
Estava criando um formulário para realizar o backup do meu banco de dados e gostei de como esse código faz isso...
O problema é: Não consegui de maneira alguma fazer com que o mesmo funcione !
Segue código
Option Explicit
Dim PastaDosBackups As String
Sub Fazer_Backup()
Dim Fazer_Backup As Boolean
Dim PastaComBD As String
Dim NomeBanco As String
'Pasta com os Bancos:
PastaComBD = "F:\Sistema\Diario\Sistema Diário"
'Pasta para os Backups:
PastaDosBackups = "F:\Sistema\Diario\Backup_Sys"
If Len(Dir("F:\Sistema\Diario\Backup_Sys", vbDirectory)) = 0 Then
MkDir "F:\Sistema\Diario\Backup_Sys"
End If
'Criando pasta do dia
If Len(Dir(PastaDosBackups & Format(Range("B5"), "YYYYMMDD ddd"), vbDirectory)) = 0 Then
MkDir PastaDosBackups & Format(Range("B5"), "YYYYMMDD ddd")
Fazer_Backup = True
End If
'***Fazendo Backups
If Fazer_Backup = True Then
'NomeBanco = Dir(PastaComBD & "*.a*db*")
NomeBanco = Dir(PastaComBD & "*.*")
Do While Len(NomeBanco) > 0
If InStr(1, NomeBanco, "Copia", vbTextCompare) = 0 Then
FileCopy PastaComBD & NomeBanco, PastaDosBackups & Format(Range("B5"), "YYYYMMDD ddd") & "\" & NomeBanco
End If
NomeBanco = Dir
Loop
Close 1
'Criando arquivo de Log
Open PastaDosBackups & Format(Range("B5"), "YYYYMMDD ddd") & "\" & "_Backup feito em " & Format(Now, "DD-MM-YY DDD HH.MM") & ".txt" For Output As 1
Print #1, "Backup feito em: " & Now & " por " & Environ("UserName")
Close 1
'Apagar última pasta
If Numero_Pastas(PastaDosBackups) > 5 Then
PastaComBD = Dir(PastaDosBackups, vbDirectory)
Do While PastaComBD <> ""
If IsNumeric(Mid(PastaComBD, 1, 4)) Then
Kill (PastaDosBackups & PastaComBD & "\*.*")
RmDir (PastaDosBackups & "\" & PastaComBD)
MsgBox "Backup efetuado com sucesso!", vbInformation, "Ok"
Exit Sub
End If
PastaComBD = Dir
Loop
Else
MsgBox "Backup efetuado com sucesso!", vbInformation, "Ok"
End If
Else
MsgBox "Não foi feito backup, pois já existe pasta criada.", vbCritical, "Atenção,"
End If
End Sub
Public Function Numero_Pastas(PastaDosBackups As String) As Single
Dim Nome_Pasta As String
Nome_Pasta = Dir(PastaDosBackups & "\", vbDirectory)
Do While Nome_Pasta <> ""
If (GetAttr(PastaDosBackups & Nome_Pasta) And vbDirectory) = vbDirectory Then
Nome_Pasta = Replace(Nome_Pasta, ".", "")
If Len(Nome_Pasta) > 0 Then
Numero_Pastas = Numero_Pastas + 1
End If
End If
Nome_Pasta = Dir()
Loop
End Function
Acredito que o mesmo deve ter sido criado para executar em VBA com EXCEL pois possui algumas linhas com a expressão (Range("B5")...
Isso acredito ser tabelas do Excel certo ??
Como posso fazer esse camarada executar corretamente em meu sistema ?
Desde já agradeço.
Att,
Peres
Tenho uma dúvida quanto a um código que encontrei do qual não sei quem é o autor do mesmo...
Estava criando um formulário para realizar o backup do meu banco de dados e gostei de como esse código faz isso...
O problema é: Não consegui de maneira alguma fazer com que o mesmo funcione !
Segue código
Option Explicit
Dim PastaDosBackups As String
Sub Fazer_Backup()
Dim Fazer_Backup As Boolean
Dim PastaComBD As String
Dim NomeBanco As String
'Pasta com os Bancos:
PastaComBD = "F:\Sistema\Diario\Sistema Diário"
'Pasta para os Backups:
PastaDosBackups = "F:\Sistema\Diario\Backup_Sys"
If Len(Dir("F:\Sistema\Diario\Backup_Sys", vbDirectory)) = 0 Then
MkDir "F:\Sistema\Diario\Backup_Sys"
End If
'Criando pasta do dia
If Len(Dir(PastaDosBackups & Format(Range("B5"), "YYYYMMDD ddd"), vbDirectory)) = 0 Then
MkDir PastaDosBackups & Format(Range("B5"), "YYYYMMDD ddd")
Fazer_Backup = True
End If
'***Fazendo Backups
If Fazer_Backup = True Then
'NomeBanco = Dir(PastaComBD & "*.a*db*")
NomeBanco = Dir(PastaComBD & "*.*")
Do While Len(NomeBanco) > 0
If InStr(1, NomeBanco, "Copia", vbTextCompare) = 0 Then
FileCopy PastaComBD & NomeBanco, PastaDosBackups & Format(Range("B5"), "YYYYMMDD ddd") & "\" & NomeBanco
End If
NomeBanco = Dir
Loop
Close 1
'Criando arquivo de Log
Open PastaDosBackups & Format(Range("B5"), "YYYYMMDD ddd") & "\" & "_Backup feito em " & Format(Now, "DD-MM-YY DDD HH.MM") & ".txt" For Output As 1
Print #1, "Backup feito em: " & Now & " por " & Environ("UserName")
Close 1
'Apagar última pasta
If Numero_Pastas(PastaDosBackups) > 5 Then
PastaComBD = Dir(PastaDosBackups, vbDirectory)
Do While PastaComBD <> ""
If IsNumeric(Mid(PastaComBD, 1, 4)) Then
Kill (PastaDosBackups & PastaComBD & "\*.*")
RmDir (PastaDosBackups & "\" & PastaComBD)
MsgBox "Backup efetuado com sucesso!", vbInformation, "Ok"
Exit Sub
End If
PastaComBD = Dir
Loop
Else
MsgBox "Backup efetuado com sucesso!", vbInformation, "Ok"
End If
Else
MsgBox "Não foi feito backup, pois já existe pasta criada.", vbCritical, "Atenção,"
End If
End Sub
Public Function Numero_Pastas(PastaDosBackups As String) As Single
Dim Nome_Pasta As String
Nome_Pasta = Dir(PastaDosBackups & "\", vbDirectory)
Do While Nome_Pasta <> ""
If (GetAttr(PastaDosBackups & Nome_Pasta) And vbDirectory) = vbDirectory Then
Nome_Pasta = Replace(Nome_Pasta, ".", "")
If Len(Nome_Pasta) > 0 Then
Numero_Pastas = Numero_Pastas + 1
End If
End If
Nome_Pasta = Dir()
Loop
End Function
Acredito que o mesmo deve ter sido criado para executar em VBA com EXCEL pois possui algumas linhas com a expressão (Range("B5")...
Isso acredito ser tabelas do Excel certo ??
Como posso fazer esse camarada executar corretamente em meu sistema ?
Desde já agradeço.
Att,
Peres