MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    Inserir vários emails em campo de formulário

    avatar
    joseantonio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 142
    Registrado : 18/07/2011

    Inserir vários emails em campo de formulário Empty Inserir vários emails em campo de formulário

    Mensagem  joseantonio 2/4/2013, 01:04

    Tenho um código que busca os emails dos clientes em uma consulta chamada "qryClientesNome" e cola no campo "Me.txPara" para enviar os e-mail em lote, essa função esta funcionando normalmente porém quando tem uma grande quantidade de e-mails não busca todos acho que é por conta do tamanho de caractere do campo "Me.txPara". Nesse caso o que devo fazer para trazer todos os emails selecionados?

    Veja o código:

    Desde já agradeço.

    Código:

    Private Sub buscaemail()

    Dim rs As DAO.Recordset
    Dim StrEMail

    If IsNull([nomeform]) Then
        MsgBox "Informe o cliente!", vbInformation, "SisClinica - Filtro Publicidade"
    End If
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM qryClientesNome WHERE (Empresa) = '" & Me.nomeform.Value & "';")


    Do While Not rs.EOF
      StrEMail = StrEMail + rs![Endereço de Email] & ";"
    rs.MoveNext
    Loop

    Me.txPara = StrEMail

    rs.Close
    Set rs = Nothing
    End Sub
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    Inserir vários emails em campo de formulário Empty Re: Inserir vários emails em campo de formulário

    Mensagem  criquio 2/4/2013, 01:59

    Grande quantidade quer dizer exatamente quantos emails? A função não busca todos os emails ou não envia para todos os buscados? Há um limite de email que pode ser enviado, geralmente 100 por hora. Caso esteja falando de mais de cem emails, pode ser necessário dividir em quantidades de 100 ou menos.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    joseantonio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 142
    Registrado : 18/07/2011

    Inserir vários emails em campo de formulário Empty Re: Inserir vários emails em campo de formulário

    Mensagem  joseantonio 2/4/2013, 02:14

    são 800 emails, como faço para dividir de 100 em 100?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    Inserir vários emails em campo de formulário Empty Re: Inserir vários emails em campo de formulário

    Mensagem  criquio 2/4/2013, 13:01

    Pode ser fazendo um Loop por todos os emails e contando-os ou, o que acho melhor em questão de performance, incluir um campo na tabela com o Status de enviado ou pendente e ir pegando de 100 a 100 e dando um intervalo entre um lote e outro.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    joseantonio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 142
    Registrado : 18/07/2011

    Inserir vários emails em campo de formulário Empty Re: Inserir vários emails em campo de formulário

    Mensagem  joseantonio 2/4/2013, 13:12

    Mas o meu problema esta em selecionar os email, copiar para o campo "txPara" onde o código irá buscar os emails deste campo para então enviar através do código abaixo:

    Primeiro ele seleciona e trás os emails para o campo "txPara", através do código "selecionaemail", depois de selecionado ele envia para o outlook todos os email do campo "txPara" atraves do código btEnviar_Click, onde o outlook se encarregará de enviar para todos, meu problema esta em selecionar, ou seja, acho que devido a grande quantidade não esta conseguindo trazer todos os emails da consulta, como posso fazer um Loop nesse caso?



    Código:

    Private Sub selecionaemail()
    Dim rs As DAO.Recordset
    Dim StrEMail

    If IsNull([nomeform]) Then
        MsgBox "Informe o cliente!", vbInformation, "SisClinica - Filtro Publicidade"
    End If
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM qryClientesNome WHERE (Empresa) = '" & Me.nomeform.Value & "';")


    Do While Not rs.EOF
      StrEMail = StrEMail + rs![Endereço de Email] & ";"
    rs.MoveNext
    Loop

    Me.txPara = StrEMail

    rs.Close
    Set rs = Nothing
    End Sub


    Código:

    Private Sub btEnviar_Click()
    Dim objOut As Outlook.Application
    Dim objMail As Outlook.MailItem
    Dim objContas As Outlook.Accounts
    Dim objAnexo As Outlook.Attachments
    Dim strCaminho As String

    On Error GoTo TrataErro
    '------------------------------------
    'Cancela envio de email caso não haja
    'o destinatário
    '------------------------------------
    If Len(Me!txPara & "") = 0 Then
        MsgBox "Selecione o e-mail dos fornecedores e clique em Atualiza E-mail", vbInformation, "SisClinica"
        Me!txPara.SetFocus
        Exit Sub
    End If
    '------------------------------
    'Ativa o outlook e o formulário
    'de envio
    '------------------------------
    Set objOut = New Outlook.Application
    Set objMail = objOut.CreateItem(olMailItem)
    Set objAnexo = objMail.Attachments
    '---------------------------------------------------------------------------
    'Preenche o formulário de envio
    'fncLerArquivo - função que Lê o arquivo de origem e grava no corpo do email
    'fncLocalBd - função que captura o local do banco de dados
    '---------------------------------------------------------------------------
    With objMail
        .To = Me!txPara 'Para forn1
        .CC = Nz(Me!txCc, "") 'Com cópia forn2
        .BCC = Nz(Me!TxCco, "") 'Com cópia oculta, forn3
        Select Case Me!TipoMensagem
            Case 1 'Html
                .BodyFormat = olFormatRichText
                .HTMLBody = Me!txMensagem & IIf(Len(Me!txAssinatura & "") = 0, "", "<br><br>" & fncLerArquivo(fncLocalBD & "\assinaturas\" & Me!txAssinatura.Column(1)))
            Case 2 ' Texto
                .BodyFormat = olFormatPlain
                .Body = Me!txMensagem & vbNewLine & vbNewLine & IIf(Len(Me!txAssinatura & "") = 0, "", fncLerArquivo(fncLocalBD & "\assinaturas\" & Me!txAssinatura.Column(1)))
            Case 3 'Propagandas
                If Len(Me!Lista.Column(1) & "") = 0 Then
                    MsgBox "Selecione a propaganda da lista...", vbInformation, "Aviso"
                    GoTo Sair
                End If
                .BodyFormat = olFormatHTML
                .HTMLBody = fncLerArquivo(fncLocalBD & "\propagandas\" & Me!Lista.Column(1))
            Case 4 'relatórios
                Me!txAnexo.RowSource = ""
                Select Case Me!QuadroFormato
                    Case 1 'pdf
                        strCaminho = fncLocalBD & "\enviados\" & Me!Lista & ".pdf"
                        DoCmd.OutputTo acOutputReport, Me!Lista.Column(1), acFormatPDF, strCaminho, 0
                    Case 2 'snp
                        strCaminho = fncLocalBD & "\enviados\" & Me!Lista & ".snp"
                        DoCmd.OutputTo acOutputReport, Me!Lista.Column(1), acFormatSNP, strCaminho, 0
                    Case 3 'html
                        strCaminho = fncLocalBD & "\enviados\" & Me!Lista & ".htm"
                        DoCmd.OutputTo acOutputReport, Me!Lista.Column(1), acFormatHTML, strCaminho, 0
                    Case 4 'rtf
                        strCaminho = fncLocalBD & "\enviados\" & Me!Lista & ".rtf" '
                        DoCmd.OutputTo acOutputReport, Me!Lista.Column(1), acFormatRTF, strCaminho, 0
                    Case 5 'Xls
                        strCaminho = fncLocalBD & "\enviados\" & Me!Lista & ".xls"
                        DoCmd.OutputTo acOutputReport, Me!Lista.Column(1), acFormatXLS, strCaminho, 0
                End Select
                Select Case Me!QuadroFormato
                    Case 1, 2, 4, 5
                        Me!txAnexo.AddItem strCaminho & ";" & Me!Lista, 0
                        .BodyFormat = olFormatPlain
                        .Body = "Segue lista anexa"
                    Case 3 ' html no corpo do email
                        .BodyFormat = olFormatHTML
                        .HTMLBody = fncLerArquivo(strCaminho)
                End Select
        End Select
        .Subject = Nz(Me!txAssunto, "Financeiro") 'assunto
        '---------------------------------
        'Adicionando os anexos
        '---------------------------------
        For j = 1 To Me!txAnexo.ListCount
            objAnexo.Add Me!txAnexo.Column(0, j - 1), olByValue, 1, Me!txAnexo.Column(1, j - 1)
        Next
        '--------------------------------------------------------
        'Altera conta de envio conforme seleção do controle conta
        '---------------------------------------------------------
        .SendUsingAccount = objOut.Session.Accounts(Me!txContas.Value) 'seleciona a conta que enviará o email
        '.Display 'exibe o formulário de email
        .Send 'envia o email
    End With
    MsgBox "Mensagem enviada...", vbInformation, "Aviso"

    Sair:
        '------------------------
        'Limpa a memória
        '------------------------
        Set objAnexo = Nothing
        Set objMail = Nothing
        Set objOut = Nothing
        Exit Sub
       
    TrataErro:
        Select Case Err.Number
            Case 2487
                MsgBox "Selecione o relatório da lista...", vbInformation, "Aviso"
            Case 2282
                MsgBox "Os formatos PDF e XLS não estão disponíveis." & Chr(10) & Chr(13) & Chr(10) & Chr(13) & _
                "Atualize o office com o pacote SP2...", vbInformation, "Aviso"
            Case Else
                MsgBox Err.Number & vbCrLf & Err.Description
        End Select
        Resume Sair:
    End Sub
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    Inserir vários emails em campo de formulário Empty Re: Inserir vários emails em campo de formulário

    Mensagem  criquio 2/4/2013, 13:30

    Então será enviado um email só para todos da lista e não um email para cada um, certo? Problemas de quantidade de caracteres não deve ser, pois um campo texto suporta mais de 65 mil caracteres. A questão deve estar na quantidade de emails inseridas, aonde voltamos para a possibilidade de se dividir em lotes.

    Agora, uma dica: não insira os endereços todos no campo Para, pois fica deselegante um usuário receber um email com uma lista enorme de emails no cabeçalho da mensagem. E é ruim para os outros usuários ter o seu endereço de email visível a tantos outros usuários. Uma boa prática seria você colocar o email do remetente no campo Para e utilizar o campo "Cópia oculta(CCO)" para inserir os emails de destino.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    joseantonio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 142
    Registrado : 18/07/2011

    Inserir vários emails em campo de formulário Empty Re: Inserir vários emails em campo de formulário

    Mensagem  joseantonio 2/4/2013, 13:45

    Eu quero enviar um único email para todos da lista, seria email marketing, já tenho o campo CC e CCO.

    Então porque será que o código selecionaemail não esta trazendo todos os emails para o campo "txPara"? como faço para dividir em lotes na hora de buscar os emails?
    avatar
    joseantonio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 142
    Registrado : 18/07/2011

    Inserir vários emails em campo de formulário Empty Re: Inserir vários emails em campo de formulário

    Mensagem  joseantonio 4/4/2013, 17:00

    Alguem pode me ajudar?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    Inserir vários emails em campo de formulário Empty Re: Inserir vários emails em campo de formulário

    Mensagem  criquio 4/4/2013, 21:36

    Esse campo txPara é vinculado á tabela? Se for, tem que ver o tipo dele na tabela. Para mais de 255 caracteres, precisa utilizar Memorando. Mas não deve ser esse o caso, acredito.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    joseantonio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 142
    Registrado : 18/07/2011

    Inserir vários emails em campo de formulário Empty Re: Inserir vários emails em campo de formulário

    Mensagem  joseantonio 5/4/2013, 00:22

    O campo nao tem vinculacao e do tipo nao acoplado, como posso resolver?

    Conteúdo patrocinado


    Inserir vários emails em campo de formulário Empty Re: Inserir vários emails em campo de formulário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 00:45