... Assinatura do site por 3 anos + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$182,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Enviar e-mail automaticamente aos clientes

Usuário Samuel:

É um prazer fazer parte deste site.

Estou a alguns dias tentando fazer com que o meu sistema de emissão de Ordem de Serviços, através do botão enviar e-mail, pelo número da Ordem de Serviços, que é filtrado, converta o relatório referente à Ordem de Serviços em PDF e anexe no Outlook. Busque o e-mail do cliente e então envie o PDF ao referido cliente.

Sei que é pedir demais, mas ainda não tenho tanta experiência em programação assim. Conto com a sua ajuda.

Suporte:

Samuel, fiz um pequeno exemplo para você testar.  Atente para os comentários no código oferecido.

Nota: Você tem que criar a pasta chamada enviados, no mesmo local em que você copiar este exemplo.

Para maiores detalhes sobre o uso do código proposto, clique AQUI e leia o meu artigo:

Segue o código utilizado no exemplo:

Private Sub btEnviarEmail_Click()
Dim strArquivo As String
Dim strLocal As String
Dim objOut As Object
Dim objmail As Object
Dim objAnexo As Object

Const olMailItem = 0
Const olByValue = 1

'---------------------------------------------
'Carregando a coleção do Outlook
'Similar ao abrir o Outlook
'---------------------------------------------
Set objOut = CreateObject("Outlook.application")
'--------------------------------------------------------------
'Abrindo o formulário de e-mail para inserir os itens de e-mail
'Similar ao clicar no botão NOVO do Outlook
'--------------------------------------------------------------
Set objmail = objOut.CreateItem(olMailItem)
'------------------------------------------------------------
'Abrindo a opção anexo
'Similar ao clicar no botão ANEXO do Outlook
'------------------------------------------------------------
Set objAnexo = objmail.Attachments
'----------------------------------------------------------------------------
'Indico o nome do arquivo PDF e o local que será gravado.
'Neste exemplo, gero os nomes dos arquivos, aproveitando o número da OS,
'ficando com o seguinte aspecto: OS00001.pdf, OS00002.pdf,...
'----------------------------------------------------------------------------
strArquivo = "OS" & Format(Me!idOs, "00000") & ".pdf"
strLocal = CurrentProject.Path & "\enviados\" & strArquivo
'----------------------------------------------------------------------------
'Abre o relatório filtrado e oculto, de acordo com a OS selecionada.
'----------------------------------------------------------------------------
DoCmd.OpenReport "rltOs", acViewPreview, , "Idos=" & Me!idOs, acHidden
'----------------------------------------------------------------------------
'Gera o PDF do relatório, através do comando OutputTo.
'O mecanismo do Access reconhece que o relatório solicitado pelo OutputTo
'já está aberto e então, o OutputTo usará o relatório já aberto e filtrado.
'----------------------------------------------------------------------------
DoCmd.OutputTo acOutputReport, "rltos", acFormatPDF, strLocal
'---------------------------------------------
'Fecha o relatório que está oculto
'---------------------------------------------
DoCmd.Close acReport, "rltos"
'-------------------------------------------------------------
'Adiciona o arquivo PDF no anexo, capturado da pasta enviados
'-------------------------------------------------------------
objAnexo.Add strLocal, olByValue, 1

'----------------------------------------------
'Preenche o e-mail com as informações necessárias
'-----------------------------------------------
objmail.Subject = "Ordem de Serviços"
objmail.Body = "Segue anexo sua Ordem de Serviços, aberta recentemente"
objmail.To = DLookup("email", "tblClientes", "idcliente = " & Me!IdCliente)

'----------------------------------------------------------------------
'Mostra o formulário de envio de e-mail
'para enviar o e-mail automático, altere esta linha para: objmail.send
'-----------------------------------------------------------------------
objmail.Display 

'-------------------------------------------------------
'Tudo já foi entregue ao Outlook, então podemos esvaziar
'a memória do computador usada pelas variáveis objeto.
'-------------------------------------------------------
Set objAnexo = Nothing
Set objmail = Nothing
Set objOut = Nothing

End Sub

Download


 

 


Não há comentário

Envie seu comentário: