Colegas, estou usando o código abaixo do JPaulo para zipar arquivo e preciso enviar este arquivo por e-mail no mesmo evento.
Já tentei por Docmd.sendoject mas não funcionou.
O Avelino tem um tutorial que usa as ferramentas do Outlook, mas a empresa não tem Outlook nos computadores, usa o Windows Live Mail.
Existe solução pelo Docmd.sendobject ou outra, por favor?
Public Sub ZipaBanco()
'JPaulo Maximo Access
Dim strDate As String, DefPath As String
Dim oApp As Object
Dim FName, FileNameZip
Dim strPrefix As String
On Error Resume Next
DefPath = Application.CurrentProject.Path 'Caminho da pasta onde estα o banco a zipar
If Right(DefPath, 1) <> "\" Then
DefPath = DefPath & "\"
End If
strDate = Format(Now, "dd-mmmm-yyyy_hh-mm")
FileNameZip = DefPath & "Backup_" & strDate & ".zip"
strPrefix = "SeuBanco" 'Nome do banco que vai ser zipado
'FName ι o caminho da pasta onde vai ficar o banco zipado.
'neste exemplo vai ficar junto ao proprio banco
'Se o seu Ms Access for anterior ao 2007,
'deve alterar a extenηγo de .accdb para .mdb
FName = Application.CurrentProject.Path & "\" & strPrefix & ".accdb"
On Error Resume Next
CriaNovoZip (FileNameZip)
Set oApp = CreateObject("Shell.Application")
oApp.NameSpace(FileNameZip).CopyHere FName
MsgBox "Criado com Sucesso em: " & FileNameZip
Set oApp = Nothing
Exit Sub
End Sub
Public Sub CriaNovoZip(sPath)
'Criado pelo meu amigo e colega Raw do Canadα
'Adaptado por JPaulo Maximo Access
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
Agradeço desde já!
At
MPS
Já tentei por Docmd.sendoject mas não funcionou.
O Avelino tem um tutorial que usa as ferramentas do Outlook, mas a empresa não tem Outlook nos computadores, usa o Windows Live Mail.
Existe solução pelo Docmd.sendobject ou outra, por favor?
Public Sub ZipaBanco()
'JPaulo Maximo Access
Dim strDate As String, DefPath As String
Dim oApp As Object
Dim FName, FileNameZip
Dim strPrefix As String
On Error Resume Next
DefPath = Application.CurrentProject.Path 'Caminho da pasta onde estα o banco a zipar
If Right(DefPath, 1) <> "\" Then
DefPath = DefPath & "\"
End If
strDate = Format(Now, "dd-mmmm-yyyy_hh-mm")
FileNameZip = DefPath & "Backup_" & strDate & ".zip"
strPrefix = "SeuBanco" 'Nome do banco que vai ser zipado
'FName ι o caminho da pasta onde vai ficar o banco zipado.
'neste exemplo vai ficar junto ao proprio banco
'Se o seu Ms Access for anterior ao 2007,
'deve alterar a extenηγo de .accdb para .mdb
FName = Application.CurrentProject.Path & "\" & strPrefix & ".accdb"
On Error Resume Next
CriaNovoZip (FileNameZip)
Set oApp = CreateObject("Shell.Application")
oApp.NameSpace(FileNameZip).CopyHere FName
MsgBox "Criado com Sucesso em: " & FileNameZip
Set oApp = Nothing
Exit Sub
End Sub
Public Sub CriaNovoZip(sPath)
'Criado pelo meu amigo e colega Raw do Canadα
'Adaptado por JPaulo Maximo Access
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
Agradeço desde já!
At
MPS