MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Compartilhe

    suel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 52
    Registrado : 06/05/2013

    [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Mensagem  suel em Seg 27 Jan 2014, 20:58

    Boa tarde Senhores,

    Preciso criar um módulo que envie e-mail utilizando o Outlook. No email deve ser gerado a partir de dados de uma tabela. Mas os dados devem ser agrupados por filial e deve ser gerado um email para cada filial com os registros a ela vinculados.

    Exemplo do email:

    À
    Filal BXXXXXXXX, DF – 1xxxx - email1, email2, email3

    Assunto: Solicitação de contrato


    Senhor Gerente,


    1. Solicitamos o envio dos contratos descritos abaixo:

    '''''tabela com dados por filial
    CO_UNO NO_UNO CTR VL_DIV_TOT QTDE_DIAS_ATRASO
    1xxx BXXXXXXXX 8xxxxxxxxxxxxx R$ 92.793,80 195
    1xxx BXXXXXXXX 8xxxxxxxxxxxxx R$ 55.191,03 197

    2. O registro do envio do processo deve ser feito via sistema, aos cuidados de Empregado Resposanvel. Solicitamos colocar no campo ‘observações’ o número do contrato que está sendo enviado.

    3. Pedimos não encaminhar outros contratos que não sejam os mencionados acima. Não temos espaço físico para guardar.

    4. Em caso de não localização de algum contrato, solicitamos seguir as orientações do normativo  XX XXXX.

    5. Agradecemos a atenção e colocamo-nos a disposição para eventuais esclarecimentos.


    Atenciosamente,
                                                                       

    Fulano
    Asssitente
    Matriz

    Cicrano
    Coordenador
    Matriz


    Segue o código em anexo. Ps: não está funcionando


    Grato

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Mensagem  Dilson em Qua 29 Jan 2014, 00:25

    Olá suel,

    Experimente pesquisar na ferramenta de busca do fórum por "outlook" ou "CDO" ou "Email" ou "Exportar", vai lhe mostrar muitas opções inclusive no repositório de exemplos. Dá uma olhadinha e retorne mostrando a onde está a maior dificuldade.

    Abraço.


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    suel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 52
    Registrado : 06/05/2013

    Re: [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Mensagem  suel em Seg 03 Fev 2014, 16:05

    Obrigado pela dica! Consegui resolver o com os módulos do fórum indicados. Mas estou com um problema para formatar os dados na tabela gerada no email a ser enviado. Segue o código e o exemplo da tabela.

    Código:

    TxtHTM = TxtHTM & "<TABLE BORDER=1 style=""border-collapse: collapse"">" '<! Inicia a tabela e coloca uma borda de espessura igual a 1>"
            TxtHTM = TxtHTM & "<TR bgcolor= '#00FFFF'><b><CENTER><TD>Código da Unidade</TD><TD>Nome da Unidade</TD><TD>Nº Contrato</TD><TD>Valor (R$)</TD><TD>Atraso</TD></CENTER></b></TR>"
                Do
                    TxtHTM = TxtHTM & "<TR bgcolor= '#FFFFFF'><CENTER>"
                    TxtHTM = TxtHTM & "<TD>" & rs.Fields("CO_UNO").Value & " </TD>"
                    TxtHTM = TxtHTM & "<TD>" & rs.Fields("NO_UNO").Value & " </TD>"
                    TxtHTM = TxtHTM & "<TD>" & rs.Fields("CTR").Value & " </TD>"
                    TxtHTM = TxtHTM & "<TD>" & rs.Fields("Valor") & " </TD>"
                    TxtHTM = TxtHTM & "<TD>" & rs.Fields("Atraso").Value & " </TD></CENTER>"
                    rs.Edit
                    rs!lido = True
                    rs.Update
                    rs.MoveNext
                    If rs.EOF Then Exit Do
                    If Uno <> rs!CO_UNO Then  'verifica se a filial não mudou
                        Exit Do
                    End If
                Loop Until rs.EOF

    Código da Unidade Nome da Unidade Nº Contrato Valor (R$) Atraso
    xxxx SEM NOME XXXXXXXXXX 81668.8 538
    xxxx SEM NOME XXXXXXXXXX 46560.04 841
    xxxx SEM NOME XXXXXXXXXX 66780.46 650
    xxxx SEM NOME XXXXXXXXXX 75317.88 315

    Gostaria que os valores aparecessem na tabela da seguinte forma: R$ 81,668.80. Oq devo alterar?

    Grato

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Mensagem  Dilson em Ter 04 Fev 2014, 10:21

    Olá,

    Que ótimo que já está em andamento sua solução.

    Já tentou usar a função CDbl, assim:

    CDbl(rs.Fields("Valor"))



    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Mensagem  Dilson em Qua 05 Fev 2014, 01:43

    Olá novamente,

    Aqui a solução para manter o ponto e as virgulas no recordset:

    FormatNumber(rs.Fields("Valor"), 2)


    Se desejar que fique do tipo moeda:

    FormatNumber(rs.Fields("Valor"), 2)
    FormatCurrency(rs.Fields("Valor"))


    Uma observação importante: O nome "Valor" é um nome reservado do access e por isso não deve ser usado. A sugestão é que modifique este nome de campo para outro como por exemplo: ValorX. É altamente recomendado que não use os nomes reservados do access, porque o que costuma acontecer, é o programa não responder ao seu código que está impecavelmente certo.


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    toyebom
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 820
    Registrado : 18/07/2012

    Enviar E-mail baseado em dados de uma tabela

    Mensagem  toyebom em Qua 05 Fev 2014, 01:54

    O amigo Dilson tem razão existem palavras que não devem ser utilizadas podendo criar conflitos, tais como nome numero e outros pelo que sempre que crias um campo na tabela deves colocar algo mais alem da palavra tipo nome1 ou A_numero ou outro.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.

    suel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 52
    Registrado : 06/05/2013

    Re: [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Mensagem  suel em Qua 05 Fev 2014, 17:27

    Muito obrigado pelas dicas e ajuda! Testarei o quanto antes e retornarei.

    Grato

    suel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 52
    Registrado : 06/05/2013

    Re: [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Mensagem  suel em Ter 18 Fev 2014, 20:56

    As alterações deram certo, valeu Dilson, ficou assim:

    Código:
    TxtHTM = TxtHTM & "<TD>" & FormatCurrency(rs.Fields("DividaTotal")) & " </TD>"

    Mas surgiu um novo problema. Acontece que os e-mails não estão sendo enviados automaticamente para algumas destinatários que possuem mais de uma caixa, p.e:
    AxxxxUF - Filial/UF
    AxxxxUF02 - Contratos
    AxxxxUF03 - Cobrança

    Qndo o código se depara com uma situação dessa da erro e encerra a execução. O posso fazer para sanar tal problema?

    Obrigado

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Mensagem  Dilson em Qua 19 Fev 2014, 18:38

    Olhando seu código na #mensagem 3, acho que precisará tirar essa parte:

    If Uno <> rs!CO_UNO Then  'verifica se a filial não mudou
                       Exit Do
                   End If



    Veja que se a filial (unidade) for diferente ele aborta o processamento.


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    suel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 52
    Registrado : 06/05/2013

    Re: [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Mensagem  suel em Qui 20 Fev 2014, 17:40

    :placeholder

    Essa parte do código tá certinha, pois nesse trecho as linhas da tabela são geradas para a mesma filial e qndo muda termina de montar o email e envia. O problema é cmo disse uma mesma filial tem várias caixas postais, mas quero enviar pra a primeiro que é a principal. Porém o outlook não envia e abre um diálogo para que o usuário escolha. Como faço para que essa escolha seja automática e consequentemente o envio.

    Grato

    suel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 52
    Registrado : 06/05/2013

    Re: [Resolvido]Enviar E-mail baseado em dados de uma tabela

    Mensagem  suel em Ter 12 Ago 2014, 16:35

    Ainda não encontrei a resposta, mas a ajuda do tópico me auxiliou bastante.

    Obrigado

      Data/hora atual: Qua 07 Dez 2016, 08:37