Este é um desafio para avançados em Access, difícil para mim eheheh.
Tenho uma BD que filtra e manda os e-mails do filtro para o Outlook tudo para o mesmo campo Bcc .
O Outlook só pode mandar de 50 a 50 e-mails e pretendia fazer isso no código VB da BD.
Alguém ajuda?
Private Sub btn_emails_Click()
'----------------------------------------------
'Criando as variáveis que irão assumir as
'propriedades e métodos das classes do outlook
'----------------------------------------------
Dim OutApp As Object
Dim OutMail As Object
Dim rst As DAO.Recordset
Dim strDestinatarios
Set rst = Me![subformA].Form.RecordsetClone
'----------------------------------------------
'informa se o Outlook está instalado antes de iniciar o processo de envio do email
'----------------------------------------------
If fncOutlookInstalado = False Then
MsgBox "O Outlook não está instalado...", vbExclamation
Exit Sub 'Aborta o procedimento
Else
If fncOutlookAberto = False Then
'força a abertura do Outlook
Call Shell("Outlook.exe", vbMinimizedNoFocus)
'gera uma mensagem para o usuário, que o Outlook está a abrir.
DoCmd.OpenForm "AVISO"
End If
End If
'---------------------------------------------
'Carregando a coleção do Outlook
'Similar ao abrir o Outlook
'---------------------------------------------
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
'------------------------------------------------------------
'Abrindo o formulário de email para inserir os itens de email
'Similar ao clicar no botão NOVO do Outlook
'------------------------------------------------------------
Set OutMail = OutApp.CreateItem(0)
'-----------------------------------------------------------------------
'Passando os valores do formulário FILTRAR para os itens de email
'-----------------------------------------------------------------------
Do Until rst.EOF
strDestinatarios = strDestinatarios & rst("EMAIL") & ";"
rst.MoveNext
Loop
On Error Resume Next
strDestinatarios = Left(strDestinatarios, Len(strDestinatarios) - 1)
On Error Resume Next
With OutMail
.To = ""
.BCC = strDestinatarios 'mandar vários mas o destinário ver somente o seu email enviado
.Display
End With
If strDestinatarios = 0 Then
MsgBox ("Não tem e-mail"), vbInformation
End If
'-------------------------------------------------------
'esvaziar a memória do computador usada pelas variáveis objeto.
'-------------------------------------------------------
Set OutMail = Nothing
Set OutApp = Nothing
rst.Close
Set rst = Nothing
End Sub
Última edição por alpedro em 16/4/2016, 02:28, editado 2 vez(es)