Galera, boa noite. Gostaria da ajuda dos amigos para verificar se é possível ou não fazer o que busco. Utilizo o Código abaixo para enviar o e-mail de relatório via cdo por meio de um botão localizado no meu formulário. Primeiramente eu gero o PDF do relatório na pasta especifica, também por meio de um botão da seguinte forma:
Private Sub btn_gerar_rel_Click()
Dim strArquivo As String
Dim StrLocal As String
strArquivo = "" & Me.idDetCont & "_" & "" & Me.cbo_Cliente.Column(1) & ".pdf"
StrLocal = CurrentProject.Path & "\Vendas_Enviadas\" & strArquivo
DoCmd.OutputTo acOutputReport, "Rel_vendas", acFormatPDF, StrLocal
End Sub
Sendo assim é salvo o Nº do pedido e o nome do cliente concatenado.
Gostaria de saber se existe como ao clicar no botão "email" que o sistema localizasse, dentro da pasta em questão, esse cliente gerado, visto que todo processo é feito com a venda na tela, ou seja, com os dados do cliente carregados no formulário. Nesse exemplo que encontrei, na linha que carrega o arquivo (.AddAttachment CurrentProject.Path & "\Vendas_Enviadas\33_MARCOS AURELIO" & ".pdf") sempre tem o nome já pré definido visto que aparentemente sempre é enviado o mesmo relatório.
O que preciso é fazer a venda e enviar o e-mail da mesma por meio desse processo. Não sei como carregar da pasta, o arquivo referente a venda ou mesmo se isso é possível.
Se alguém puder dar uma forçam fico grato.
Segue código do envio do e-mail.
Private Sub btn_email_Click()
Dim Mens As Object
Dim Config As Object
Set Mens = CreateObject("CDO.Message")
Set Config = CreateObject("CDO.Configuration")
With Config
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = meuemail@gmail.com
.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "minha senha"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.Update
End With
Set Mens = New CDO.Message
With Mens
Set .Configuration = Config
'Inserimos o nome ou um título de quem envia
.From = "xxx"
.Sender = "meuemail@gmail.com"
.BodyPart.Charset = "utf-8"
.Subject = Me.cbo_Cliente.Column(1)
.TextBody = Me.cbo_Cliente.Column(1)
.To = "email_de_quem_recebe@gmail.com"
'Com a instrução abaixo, enviamos anexos
'Podemos enviar vários arquivos, sendo um por linha
.AddAttachment CurrentProject.Path & "\Vendas_Enviadas\MARCOS 33_MARCOS AURELIO" & ".pdf"
.Send
End With
Set Mens = Nothing
Set Config = Nothing
End sub
Private Sub btn_gerar_rel_Click()
Dim strArquivo As String
Dim StrLocal As String
strArquivo = "" & Me.idDetCont & "_" & "" & Me.cbo_Cliente.Column(1) & ".pdf"
StrLocal = CurrentProject.Path & "\Vendas_Enviadas\" & strArquivo
DoCmd.OutputTo acOutputReport, "Rel_vendas", acFormatPDF, StrLocal
End Sub
Sendo assim é salvo o Nº do pedido e o nome do cliente concatenado.
Gostaria de saber se existe como ao clicar no botão "email" que o sistema localizasse, dentro da pasta em questão, esse cliente gerado, visto que todo processo é feito com a venda na tela, ou seja, com os dados do cliente carregados no formulário. Nesse exemplo que encontrei, na linha que carrega o arquivo (.AddAttachment CurrentProject.Path & "\Vendas_Enviadas\33_MARCOS AURELIO" & ".pdf") sempre tem o nome já pré definido visto que aparentemente sempre é enviado o mesmo relatório.
O que preciso é fazer a venda e enviar o e-mail da mesma por meio desse processo. Não sei como carregar da pasta, o arquivo referente a venda ou mesmo se isso é possível.
Se alguém puder dar uma forçam fico grato.
Segue código do envio do e-mail.
Private Sub btn_email_Click()
Dim Mens As Object
Dim Config As Object
Set Mens = CreateObject("CDO.Message")
Set Config = CreateObject("CDO.Configuration")
With Config
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = meuemail@gmail.com
.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "minha senha"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.Update
End With
Set Mens = New CDO.Message
With Mens
Set .Configuration = Config
'Inserimos o nome ou um título de quem envia
.From = "xxx"
.Sender = "meuemail@gmail.com"
.BodyPart.Charset = "utf-8"
.Subject = Me.cbo_Cliente.Column(1)
.TextBody = Me.cbo_Cliente.Column(1)
.To = "email_de_quem_recebe@gmail.com"
'Com a instrução abaixo, enviamos anexos
'Podemos enviar vários arquivos, sendo um por linha
.AddAttachment CurrentProject.Path & "\Vendas_Enviadas\MARCOS 33_MARCOS AURELIO" & ".pdf"
.Send
End With
Set Mens = Nothing
Set Config = Nothing
End sub
Última edição por FilipeFaria em 13/7/2017, 00:27, editado 1 vez(es)