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


3 participantes

    [Resolvido]E-mails diferentes a vários destinatários

    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty E-mails diferentes a vários destinatários

    Mensagem  gumz 21/8/2011, 01:45

    Boa noite, amigos de Access

    Estou utilizando um código feito pelo chstream que funciona perfeitamente, sem erro algum. A partir de um formulário com um subform, ele gera um email com os campos selecionados do subform e envia para o email do registro selecionado. Até aí, ótimo, ótimo...! Funciona tudo duma forma mais que perfeita, sem precisar digitar uma linha e enviar para os destinatários só na base do clique.

    Só que os registros estão aumentando e a necessidade de enviar mais e mais e-mails idem. O que me foi solicitado agora é que haja uma caixa de combinação que selecionasse os registros e enviasse para cada um deles um e-mail personalizado através do próprio Outlook, seguindo este mesmo código abaixo. Encontrei um exemplo no repositório, mas ele só envia e-mails padrão e para vários destinatários no mesmo e-mail, o que não é o caso.

    Alguém poderia me dar uma luz nesse sentido? Segue o código, com os créditos do chsestrem.


    'Exemplo para envio de email em forma de Tabela
    'By Charles Sestrem
    'chsestrem@hotmail.com
    '05 de Agosto de 2011

    ' na declaração Geral

    Private Sub SolicitarMaterial_Click()
    Dim StrDestinatario
    Dim StrNomeDest As String
    Dim stDocName As String
    Dim StrMensagem As String
    Dim StImage As String
    Dim OutApp As Object
    Dim OutMail As Object
    Dim rs As DAO.Recordset
    Dim strSQL As String
    Dim txthtm As String

    If fncOutlookInstalado = False Then
    MsgBox "O Outlook não está instalado.", vbInformation, "Aviso"
    Exit Sub
    Else
    If fncOutlookAberto = False Then
    MsgBox "Mantenha o Outlook aberto para ser possível o envio do email.", vbInformation, "Aviso"
    Exit Sub
    'ou force a abertura do outlook
    'Call Shell("outlook.exe", vbMinimizedNoFocus)
    End If
    End If

    'Exportar uma tabela Access diretamente para o Corpo do Email

    txthtm = "<HTML> "
    txthtm = txthtm & "<HEAD>"
    txthtm = txthtm & "<TITLE>Criando Tabelas</TITLE>"
    txthtm = txthtm & "</HEAD>"
    txthtm = txthtm & "<BODY>"
    txthtm = txthtm & "<table width=200 border=0 cellspacing=0 cellpadding=0><tr><td><img src=http://www.site.com.br/email/email.jpg width=589 height=117 /></a></td>"
    txthtm = txthtm & "</tr><tr><td><strong><font color=#555555 font size=2 face=Verdana>Assunto: Contrato</font></strong></td>"
    txthtm = txthtm & "</tr><tr><td><strong><font color=#555555 font size=2 face=Verdana>Cliente: " & [RAZAO] & "</font></strong></td>"
    txthtm = txthtm & "</tr><tr><td><strong><font color=#555555 font size=2 face=Verdana>Contrato: " & [nCONTRATO] & "</font></strong></td>"
    txthtm = txthtm & "<p>"
    txthtm = txthtm & "</tr><tr><td> </td></tr><tr><td><strong><font color=#555555 font size=2 face=Verdana>Prezado(a) Sr.(a) " & [AUTORIZANTE] & "</font></strong></td>"
    txthtm = txthtm & "<p>"
    txthtm = txthtm & "</tr><tr><td> </td></tr><tr><td><font color=#555555 font size=2 face=Verdana>Segue abaixo as especificações de seu contrato:<br></font></font></td>"
    txthtm = txthtm & "<p>"
    txthtm = txthtm & "<BR>"
    txthtm = txthtm & "<p><table width=600 TABLE BORDER=1> "
    txthtm = txthtm & "<TR bgcolor= ""#CFCFCF""><CENTER><TD><strong><font color=#555555 font size=1 face=Verdana>CAMPO1</font></strong></TD><TD><strong><font color=#555555 font size=1 face=Verdana>CAMPO2</font></strong></TD><TD><strong><font color=#555555 font size=1 face=Verdana>CAMPO3</font></strong></TD>"
    txthtm = txthtm & "<TD><strong><font color=#555555 font size=1 face=Verdana>CAMPO4</font></strong></TD><TD><strong><font color=#555555 font size=1 face=Verdana>CAMPO5</font></strong></TD></CENTER></TR>"

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_contratos_fechados WHERE nCONTRATO='" & Me.nCONTRATO & "';")


    ' Inicia o loop para exibir todos os registros

    Do While Not rs.EOF
    txthtm = txthtm & "<TR><! Cria a primeira linha da tabela>"

    txthtm = txthtm & "<TD width=100><font color=#555555 font size=1 face=Verdana>" & rs!CAMPO1 & " </font></TD>"
    txthtm = txthtm & "<TD width=70><font color=#555555 font size=1 face=Verdana>" & rs!CAMPO2 & " </font></TD>"
    txthtm = txthtm & "<TD width=150><font color=#555555 font size=1 face=Verdana>" & rs!CAMPO3 & " </font></TD>"
    txthtm = txthtm & "<TD width=130><font color=#555555 font size=1 face=Verdana>" & rs!CAMPO4 & " </font></TD>"
    txthtm = txthtm & "<TD width=100><font color=#555555 font size=1 face=Verdana>" & rs!CAMPO5 & "</font></TD></TR>"

    rs.MoveNext
    Loop
    txthtm = txthtm & "</TABLE>"
    txthtm = txthtm & "</BODY>"
    txthtm = txthtm & "</HTML>"

    txthtm = txthtm & " <p><font color=#555555 font size=2 face=Verdana>Atenciosamente,</font></p>"
    txthtm = txthtm & " <p><strong><font color=#555555 font size=2 face=Verdana>" & Me.txtUser & "</font></strong><br />"
    txthtm = txthtm & " <strong><font color=#555555 font size=2 face=Verdana>Nome da Empresa</font></strong><br />"
    txthtm = txthtm & " <font color=#555555 font size=2 face=Verdana>(21) 3555-2541</font><br />"
    txthtm = txthtm & "<font color=#555555 font size=2 face=Verdana>email@email.com.br</font><br>"


    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon

    Set OutMail = OutApp.CreateItem(0)
    With OutMail
    .To = "" & [EMAIL] & ""
    .Subject = " - Ct. " & [nCONTRATO] & " - " & [FANTASIA]
    .htmlbody = txthtm ' Corpo do Email
    .display

    End With

    rs.Close

    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

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  criquio 21/8/2011, 02:01

    Olá! Você já deu uma olhada nesse exemplo?

    http://maximoaccess.forumeiros.com/t3878-envio-de-email-por-cdo-com-muito-mais-recursos

    Nele, você pode escolher os emails em uma listbox. Pode seguir o mesmo raciocínio para personalizar o nome e mensagem.


    .................................................................................
    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.

    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 21/8/2011, 04:38

    Olá, criquio! Obrigado pela resposta.

    Estava acertando aqui meu formulário para poder postar aqui. Servirá para o repositório - já tinha sido solicitado quando precisei de ajuda nele - postarei lá depois, como visto aqui: http://maximoaccess.forumeiros.com/t3661-resolvidoobter-varios-registros-em-tabela-e-enviando-por-e-mail-no-outlook

    Bom, baixei o exemplo que você me sugeriu, mas ele trabalha de maneira diferente do que tenho feito.

    Salvei minha base em access 2002-2003 para você poder dar uma olhada. Dei uma limpada no desnecessário e está só com o básico, as funções. Pus uma caixa acima do form que mostra os registros e um botão do lado que envia o email.

    O que gostaria de fazer é poder selecionar vários registros e enviar os mesmos.

    Enquanto isso, testarei enviar o email de forma oculta, talvez. Só precisaria de uma janela de status ou um registro do que foi enviado.

    Eis o link: http://dl.dropbox.com/u/23984788/exemplo_email_tabela2002-2003.zip
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  vieirasoft 21/8/2011, 12:02

    Veja se este exemplo está mais de acordo com o que pretende

    http://dl.dropbox.com/u/8157744/Emailgrupo.rar
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 21/8/2011, 17:55

    Olá, Vieira - boa tarde!

    Bom, eu já havia visto este exemplo - ele envia o mesmo e-mail para todos os destinatários selecionados. E da forma que estou enviando, o form gera um email com os campos personalizados e a listagem do que existe no subform do registro, como uma lista de pedidos. Então, cada e-mail é único e personalizado, não sendo possível enviar o mesmo e-mail para mais de um destinatário.

    Estou testando o Syspen do Harysohn - estou precisando fazer algo na linha deste - de forma que envie os emails para a caixa de saída, da mesma forma personalizada, e salve uma listagem do que foi para lá. Ainda não consegui definir a rotina deste processo todo.

    Se alguém puder auxiliar com qualquer dica, agradeço aqui.
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 21/8/2011, 17:59

    Qual dos exemplos esta a utlizar? sobre o do syspen, qual duvida tem nele?

    Aguardo
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 21/8/2011, 18:14

    Oi, Harysohn

    Baixei o exemplo do Syspen e minha dúvida é como fazer a listagem do que foi enviado. Se você visualizar meu exemplo, verá como os e-mails enviados são únicos.

    O que gostaria de fazer é poder selecionar numa caixa os destinatários e enviar da mesma forma, e-mails únicos. Ainda estou analisando a forma de trabalho do Syspen.
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 21/8/2011, 18:16

    Não entendi sobre selecionar destinatarios e eviar e-mails únicos.. poderia exemplificar uma situação?
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 21/8/2011, 18:20

    Minha situação é a seguinte, Harysohn:

    Cada registro de meu form tem um subform com a listagem do que foi adquirido.

    Clico num botão e envio por e-mail a relação do que foi adquirido com todos os dados do cliente.

    Só que só consigo hoje fazer isto um de cada vez - conforme o número de registro for aumentando, terei que enviar mais e mais e-mails e às vezes até mesmo reenviar-los.

    Gostaria de poder marcar numa lista (como no syspen) os destinatários para os quais desejo enviar e-mails e salvar a data e horário que estes e-mails foram enviados.

    Se puder dar uma olhada em meu exemplo, agradeço!





    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 21/8/2011, 18:26

    No teu exemplo.. tem 2 empresas... para enviar e-mail tem que ir no registro referente e enviar um de cada vez..

    Voce quer que no click do botão envie para as duas empresas ao apenas 1 click?
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 21/8/2011, 18:32

    Exato! Tenho duas empresas neste exemplo. Mas os números vão aumentando e aumentando. Pretendo selecionar, por exemplo, 20 empresas e ele processar o envio das 20 para a caixa de saída do outlook.

    Ou pelo menos, em uma nova janela, novo form, obter essa listagem, ir selecionando um por um e enviando para os clientes marcados, mas com uma lista abaixo do que foi para a caixa de saída.

    O que não consegui ainda foi um caminho para estas caixas de seleção e a caixa de saída...

    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 21/8/2011, 18:38

    O problema ai é que o outlok so envia um email a cada vez... A tela dele é para

    Varios Destinatarios x 1 e-mail...

    No seu caso voce quer enviar..

    Para varios destinatarios, mas com e-mails especificos para cada um...

    O problema é que no outLook voce teria que enviar para uma empresa, clicar em enviar, depois a segunda e enviar e assim sucessivamente...

    Creio não ser possivel pelo outLook...

    Deves conseguir isto atraves do CDO com a seguinte lógica....

    Um recordset com a SQL baseado nas tabelas vunculadas...

    Ao clic do botão envia para o primeiro destinatario do recordset...
    Apos o código.. Move Next... Loop executando todo o código novamente para o registro seguinte do recordset...


    Entendeu?
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 21/8/2011, 18:46

    Compreendo, Harysohn.

    O que intenciono fazer então é: selecionar o registro, clico no botão, envio o email para a caixa de saída do outlook de forma oculta.

    Nisto salvo uma listagem dos emails que foram enviados para a caixa de saída assim como no syspen.

    Eu não preciso de mais rapidez - o envio da forma que está já está muito rápido - a produtividade já aumentou bastante da forma que estou utilizando;

    Só que não tenho um registro do que foi enviado, e abir o outlook e fechar para enviar o que já está correto e não precisa-se digitar mais nada, acaba por ser inútil...

    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 21/8/2011, 19:08

    Amigão.. esta tendo uma pequena confusão ai...


    Você esta falando de 2 problemas...

    1 - Enviar e-mails específicos a mais de um detinatário
    2 - Salva-los em uma caixa de saida assim como no syspen.. Pois bem...

    Terá que resolver um de cad vez pois assim termina por confundir na solução...

    Do jeito que está o teu.. ele abre o outlook e voce tem que clicar em enviar..
    No syspen ele abre o outLook em oculto e o envia para caixa de sida.. deixando o envio por conta do outlook...

    Bem... o que voce pode fazer é adaptar o seu codigo conforme o utilizado no syspen

    Código:
        Call InitializeOutlook
        Set objNewMail = gOLApp.CreateItem(olMailItem)
    With objNewMail
        .Attachments.Add strAnexo1
        .Attachments.Add strAnexo2
        .Attachments.Add strAnexo3
        .To = [emailpara]
        'body.Font = 20
        .body = "Nome: " & Me.cxNome _
        & vbCrLf & "" _
        & vbCrLf & "Email: " & [cxEmailUsuario] _
        & vbCrLf & "" _
        & vbCrLf & [cxCorpo] _
        & vbCrLf & "" _
        & vbCrLf & "Este email foi enviado por © SYSPEN" _
        & vbCrLf & ""
        .Subject = [cxAssunto] & " - " & Date
        .Send
    End With

    E como eu te falei... Ai é com um recordset Fazendo o envio conforme esta ai no codigo acima, no final um Move Next, indo para o registro seguinte (proxima empresa), depois um loop e execut todo o código novamente sacou?

    Assim a cada loop muda a empresa e o e-meil será enviado a cada loop de código, mudando o registro...

    Vou dar um exemplo mais ou menos como seria.. Observe que apenas colocarei parte do código para entender a lógica..


    Suponha que tens o recordet carregado por uma SQL

    SQL - Registro de todas as empresas com seus devidos pedidos...


    Então Imagine algo assim:


    Set rs = db.OpenRecordset(SUASQL)


    Do While Not rs.EOF


    Call InitializeOutlook


    >>>>>>>> Aqui iria o teu códigom obseve que a cada loop mudará os valores no campo de acordo com o registro do rs seguinte

    .Send


    rs.MoveNext
    Else
    Exit Do
    End If

    Loop


    *** o envio para uma tabela de saida, assim como no syspen seria adicionado tambem a cada volta de loop


    Sacou??
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 21/8/2011, 19:49

    Estou compreendendo esta forma que você me passou, Harysohn - muito obrigado pela atenção.

    Vou reorganizar meu código e adaptar ao que você me passou. O que fiquei em dúvida é:

    como selecionar os registros e informar ao sql quais são que devo enviar? Estou estudando esta parte do syspen que tem os selecionadores.

    Continuarei reorganizando estas linhas por aqui e com certeza darei um retorno.








    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 21/8/2011, 19:52

    Eu entendi...

    Porque o recordset conterá todos os registros...
    Talvez criando uma tabela temporária...

    Bem vou pensar sobre como filtrar o recordset apenas para os registros selecionados... Decobrindo uma solução posto aqui

    Saudações
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 21/8/2011, 19:54

    Veja bem... podes utilizar a solução no syspen:

    um Campo Sim/Não...

    e a SQL que popula o recordset com a cláusula WHERE Selecionado =1...

    Ai o recordset apenas conterá os registros que voce selecionou previamente...

    é por ai...
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 21/8/2011, 20:04

    Compreendo!

    Vou continuar estudando o código do syspen e adaptar ao meu form. Com teu auxílio consegui uma linha de raciocínio para minha situação; farei uns rascunhos para definir o que farei.

    Até amanhã tenho uma definição desta situação.

    Saudações e até logo!
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 23/8/2011, 03:15

    Harysohn

    Estive testando e pesquisando por diversas vezes como resolvo estas linhas abaixo como você me sugeriu mas cada vez obtenho um erro diferente. Não consigo fazer o loop.

    Ora obtenho "else sem if", ou "loop sem do".

    Por favor, poderia dar uma verificada no que falta nessas linhas?

    Desde já, agradecendo.

    Private Sub Comando2_Click()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim Rs As DAO.Recordset

    Set Rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_index WHERE Selecionado=-1")
    Do While Not Rs.EOF

    Set OutMail = OutApp.CreateItem(0)
    With OutMail
    .To = "" & [EMAIL] & ""
    .Subject = "Especificações dos Itens - Ct. " & [nCONTRATO] & " - " & [FANTASIA]
    .send

    Rs.MoveNext
    Else
    Exit Do
    End If

    Loop

    End With
    End Sub
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 11:26

    Tente passar o End With ante do Loop..

    com relação ao Loop sem Do é com relação ao End If.. O End If tem que vir antes do Loop.. quanto ao else sem If é por motivo relacionado a posição do IF...Não vi a cláusula if no teu código acima...


    Caso queira envie um pequeno exemplo para que eu possar testar e encontrar uma solução..

    Saudações
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 11:34

    Teste algo assim:

    Private Sub Comando2_Click()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim Rs As DAO.Recordset

    Set Rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_index WHERE Selecionado=-1")

    If rs.RecordCount = 0 Then
    MsgBox "Não existe e-mail selecionado", vbInformation, "Atenção"
    Else

    Do While Not Rs.EOF

    Set OutMail = OutApp.CreateItem(0)
    With OutMail
    .To = "" & [EMAIL] & ""
    .Subject = "Especificações dos Itens - Ct. " & [nCONTRATO] & " - " & [FANTASIA]
    .send

    Rs.MoveNext
    End If
    End With
    Loop
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 23/8/2011, 12:41

    Bom dia, Harysohn!

    Enfim, um sinal do que eu precisava...! Consigo abrir as janelas de email conforme a quantidade de selecionadores marcados.

    Porém, os emails que abrem são os do registro atual, e não dos que selecionei.

    Mudei a ordem de algumas linhas, porque eu obtinha erros.

    O que teria que mudar?



    O atual é o seguinte:

    Private Sub Comando2_Click()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim Rs As DAO.Recordset

    Set Rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_index WHERE Selecionado = -1")
    Do While Not Rs.EOF

    If Rs.RecordCount = 0 Then
    MsgBox "Não existe e-mail selecionado", vbInformation, "Atenção"
    Else
    End If


    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon

    Set OutMail = OutApp.CreateItem(0)
    With OutMail
    .To = "" & [EMAIL] & ""
    .Subject = "Especificações dos Itens - Ct. " & [nCONTRATO] & " - " & [FANTASIA]
    .htmlbody = txthtm ' Corpo do Email
    .display
    '.send

    Rs.MoveNext
    End With

    Loop
    End Sub

    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 12:56

    Nào entendi.. seja mais especifico...

    Ou envie um print do erro ou da tela...

    Saudações
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 13:00

    Teste alterando o valor -1 para 1

    e adicione a seguinte linha no loop para checar se o mesmo percorre todos os registros do recordset conforme a quantidade de selecionados:


    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon

    Set OutMail = OutApp.CreateItem(0)
    With OutMail
    .To = "" & [EMAIL] & ""
    .Subject = "Especificações dos Itens - Ct. " & [nCONTRATO] & " - " & [FANTASIA]
    .htmlbody = txthtm ' Corpo do Email
    .display
    '.send

    MsgBox rs.Recordcount
    Rs.MoveNext
    End With

    Se selecionou 4... a cada loop a msgBox apresentará valores subsequentes...1, 2,3,3 etc..



    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 13:02

    Esse End If está na posição incorreta.. pois está encerrando o if sem antes executar o Restante do código e.. O Else faz parte do If... se encerra o If depois dele não dá certo

    If Rs.RecordCount = 0 Then
    MsgBox "Não existe e-mail selecionado", vbInformation, "Atenção"
    Else
    End If
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 23/8/2011, 13:24

    Alterei o valor de -1 para 1 (não funciona com os selecionados);
    Inseri a linha "MsgBox Rs.RecordCount" (conta perfeitamente os registros)
    troquei o lugar do "end if"

    porém

    obtenho a mesma coisa - mesmo registro para os e-mails

    até pensei que pudesse ser a posição do botão no formulário, então o inseri também no rodapé do form contínuo, mas é a mesma coisa.

    Atualizei o arquivo - se você puder dar uma olhada no que ocorre, agradeço-lhe.

    http://dl.dropbox.com/u/23984788/exemplo_email_tabela2002-2003_Copia.zip
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 13:32

    Voce ta falando do corpo do e-mail?
    Esta saindo a mesma tabela para e-mails diferentes?

    Não entendi
    Explique o erro
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 23/8/2011, 13:51

    Acontece que ele gera a quantidade de e-mails dos registros, porém, não com os dados corretos do registro selecionado.

    Exemplo: se eu selecionar "EMPRESA1" e "EMPRESA2",

    ele abre duas janelas de email, porém somente para a "EMPRESA1"



    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 14:22

    Amigão veja se entende... Fiz apenas para o Código TO =

    Adapte o restante

    Private Sub Comando2_Click()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim Rs As DAO.Recordset
    Dim N As Double

    Set Rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_index WHERE Selecionado = -1")

    If Rs.RecordCount = 0 Then
    MsgBox "Não existe e-mail selecionado", vbInformation, "Atenção"
    Exit Sub
    Else

    Do While Not Rs.EOF

    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon

    Set OutMail = OutApp.CreateItem(0)
    With OutMail

    .To = "" & Rs!EMAIL & ""
    '.Subject = "Especificações dos Itens - Ct. " & [nCONTRATO] & " - " & [FANTASIA]
    '.htmlbody = txthtm ' Corpo do Email
    .display
    '.send

    Rs.MoveNext
    End With

    Loop
    End If
    End Sub
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 14:29

    Entendeu? da forma como estava estava lendo o campo e nao o registro no recordset!!!
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 23/8/2011, 14:30

    Que vacilo o meu.

    Estou testando aqui, caro Harysohn.

    Já retorno.
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 14:32

    Agora amigão.. esses teus campos texto para relacionamento creio não estár certo...

    Te enviarei um que modifiquei isto e dê uma analisada
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 14:41

    Veja os relacionamentos e campo numericos que substitui pelos textos


    http://dl.dropbox.com/u/26441349/Gunmz_23_08_11.rar
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 23/8/2011, 14:54

    Baixei o que você acertou, Harysohn, e funciona muito bem.

    Realmente eu utilizo texto no campo "nContrato" por causa dos zeros à esquerda, que não eram armazenados.

    Daí as relações que tenho no bd principal seguem esse padrão, de texto, mas vou adaptar aos números - mas vou ter que ver esta questão dos zeros à esquerda, que são necessários aqui.

    Por enquanto, estudarei este último que você me passou e o ajustarei para publicá-lo no repositório - agora porei o loop das tabelas dentro do assunto dos e-mails.

    Muitíssimo obrigado pela atenção e paciência - dou o tópico como resolvido. Darei retorno do link para repositório aqui e na sala do tipo.

    Saudações!


    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 23/8/2011, 14:56

    Resolvido!
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 15:15

    Coloque os zeros na mascara.. algo assim...

    O melhor é ter os campos como numéricos

    Saudações e bom trabalho
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 23/8/2011, 15:19

    Sim - isso dos zeros com certeza é o de menos...! Meu problema maior está resolvido em grade parte.

    Só queria saber duma última coisa, aproveitando o final do tópico:

    É possível utilizar duas recordsets numa só chamada?

    Uma recordset (esta que chama os emails) e outra para os itens de cada registro?
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 15:46

    Sim Claro.. nomeie o outro como Rs1 ou o nome que desejar e o declare

    Dim rs1 As DAO.Recordset
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 15:47

    Mas se as tabelas são relacionadas.. melhor utilizar o JoinLeft... ai o recordset contera ja as duas tabelas..
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  gumz 23/8/2011, 16:27

    Consegui, Harysohn!

    Utilizando "dim rs1 As DAO.Recordset", como você sugeriu!

    Finalizarei e postarei no repositório.

    Muitíssimo obrigado!

    Só falta fazer a listagem dos que foram enviados agora, mas isso me basearei no Syspen - havendo dúvidas (com certeza), abro outro tópico...!

    Saudações!
    avatar
    Convidado
    Convidado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Convidado 23/8/2011, 16:36

    Ficamos felizes...
    cheers
    O Fórum agradece o retono

    Conteúdo patrocinado


    [Resolvido]E-mails diferentes a vários destinatários Empty Re: [Resolvido]E-mails diferentes a vários destinatários

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 02:07