Boa Tarde.
Em busca de um código para fazer backup, copiei um criado pelo mestre JPaulo, faz tudo corretamente, ele cria o arquivo zipado na pasta onde direcionei, mas não copia o banco de dados, o arquivo fica vazio.
Alguem sabe por que?
Sera porque tem maquinas na rede ainda logado no banco de dados?
Ou isto não tem nada a ver?
Segue abixo o código como ficou.
Desde ja Agradeço.
Em busca de um código para fazer backup, copiei um criado pelo mestre JPaulo, faz tudo corretamente, ele cria o arquivo zipado na pasta onde direcionei, mas não copia o banco de dados, o arquivo fica vazio.
Alguem sabe por que?
Sera porque tem maquinas na rede ainda logado no banco de dados?
Ou isto não tem nada a ver?
Segue abixo o código como ficou.
- Código:
Option Compare Database
Option Explicit
Public Sub ZipaBanco()
Dim strDate As String, DefPath As String
Dim oApp As Object
Dim FName, FileNameZip As String
Dim strPrefix As String
On Error Resume Next
'Caminho da pasta onde vai ser feito o backup
DefPath = "D:\Sistema_Consulta_Produtos\Backup"
If Right(DefPath, 1) <> "\" Then
DefPath = DefPath & "\"
End If
strDate = Format(Now, "dd-mmm-yyyy_H-mm-ss")
FileNameZip = DefPath & "Backup_" & strDate & ".Zip"
strPrefix = "Pecas_Diseg_be.accdb"
'Caminho do Back End
FName = "D:\Sistema_Consulta_Produtos\" & strPrefix & ".accdb"
On Error Resume Next
CriaNovoZip (FileNameZip)
Set oApp = CreateObject("Shell.Application")
oApp.NameSpace(FileNameZip).CopyHere FName
Call MsgBox("Backup Criado com Sucesso em: " & FileNameZip, vbInformation, "Criação de Backup Zipado")
Set oApp = Nothing
Exit Sub
End Sub
----------------------------------------------------------------------------------------------------------------------------------------
Public Sub CriaNovoZip(sPath)
Dim ofso, arrHex, sBin, i, Zip
On Error Resume Next
Set ofso = CreateObject("Scripting.FileSystemObject")
arrHex = Array(80, 75, 5, 6, 0, 0, 0, _
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
For i = 0 To UBound(arrHex)
sBin = sBin & Chr(arrHex(i))
Next
On Error Resume Next
With ofso.CreateTextFile(sPath, True)
.Write sBin
.Close
End With
Exit Sub
End Sub
Desde ja Agradeço.