USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Erro ao enviar e-mail com loop acessando bd access
Pedro Henrique
não registrado
ENUNCIADA !
Postada em 23/04/2008 20:45 hs   
Primeiro gostaria de parabenizar todos que fazem parte desse espaço, pois, o mesmo fala com sabedoria.

É o seguinte, tenho um projeto em VB6 que envia e-mail MAPI. Até aí tudo bem, só que preciso enviar um e-mail para vários destinatários atráves de um loop. Trocando por miúdos, tenho um banco de dados em access que contém o nome a empresa e o e-mail do contato. Gostaria de fazer um loop(ou algo do tipo) que selecionasse todos os funcionarios da empresa
   
João Carlos jr.
RIBEIRÃO PRETO
SP - BRASIL
Postada em 24/04/2008 18:36 hs            
Pedro antes de tudo cadastre-se no forum, e coloque mais detalhado qual o erro que está dando ou qual é a sua duvida, possuo um projeto assim, posso te axiliar no que precisa.
 
 
Flw
 
T+
 
 

João Carlos Junior

Administrador de Redes - Windows 2003 Srv, Linux

    Desenvolvedor Visual Basic 6.0 com Access, SQL Server, VB .Net e Crystal Reports X

Iniciante em C# e ASP .NET

     
tecp
PORTO ALEGRE
RS - BRASIL
ENUNCIADA !
Postada em 25/04/2008 13:58 hs            
João, muito obrigado pela força. Já me cadastrei.
 
O meu problema é o seguinte, tenho um form no VB6 que envia e-mail MAPI. Até aí tudo bem, consigo enviar e-mail normalmente para um determinado destinatario. O que eu preciso agora é enviar esse mesmo e-mail para vários contatos que estão no meu banco de dados(access). Nesse banco tenho nome, empresa e o endereço de e-mail do contato. Tenho uma ComboBox que tem os nomes das empresas e gostaria que ao selecionar a empresa "x" nessa Combo, tivesse um loop que enviasse um e-mail para todos os os contatos dessa empresa. E se possível mostrasse na tela quantos e-mails foram enviados.
 
O código do botão de envio que tenho é esse:
 
Private Sub cmdenviar_Click()
  
Dim SQL As String
Dim cont As String
   
    BD.Open "provider=microsoft.jet.oledb.4.0;" & _
    "Data source=c:CONTATOS.mdb;" & _
    "persist security info=false;"
   
    SQL = "select * from CONTATOS"
    RS.Open SQL, BD, 3, 3
     
      MAPISession2.SignOn
      MAPIMessages2.SessionID = MAPISession2.SessionID
  
       
   While Not RS.EOF
       
   
      MAPIMessages2.Compose
      MAPIMessages2.RecipAddress = txt_destino.Text
      MAPIMessages2.MsgSubject = txt_assunto.Text
      MAPIMessages2.MsgNoteText = txt_mensagem.Text
     
        If txt_anexo <> Empty Then
           '______Tipo de dados a ser anexado
            MAPIMessages2.AttachmentType = mapData
           '______Endereço do anexo
            MAPIMessages2.AttachmentPathName = txt_anexo.Text
        End If
     
       
      MAPIMessages2.Send
     
 
End Sub
 
Aí é que esta o meu problema.
Desde já agradeço muito por você ter se disposto a me ajudar.
Abraço!
 
 
   
Fábio
não registrado
Postada em 25/04/2008 14:10 hs   
Não está faltando um loop no seu while?
     
tecp
PORTO ALEGRE
RS - BRASIL
Postada em 25/04/2008 14:18 hs            
Fábio,
Sim, esqueci de colocar o Wend no final. Mas, não é isso ainda...
Algum comando que pegue os e-mails dos contatos da empresa "x" lá do banco e comece a enviar o e-mail para todos eles é que está faltando.
Muito obrigado pela resposta. Abraço!!!
 
O código do botão de envio que tenho é esse:
 
Private Sub cmdenviar_Click()
  
Dim SQL As String
Dim cont As String
   
    BD.Open "provider=microsoft.jet.oledb.4.0;" & _
    "Data source=c:CONTATOS.mdb;" & _
    "persist security info=false;"
   
    SQL = "select * from CONTATOS"
    RS.Open SQL, BD, 3, 3
     
      MAPISession2.SignOn
      MAPIMessages2.SessionID = MAPISession2.SessionID
  
       
   While Not RS.EOF
       
   
      MAPIMessages2.Compose
      MAPIMessages2.RecipAddress = txt_destino.Text
      MAPIMessages2.MsgSubject = txt_assunto.Text
      MAPIMessages2.MsgNoteText = txt_mensagem.Text
     
        If txt_anexo <> Empty Then
           '______Tipo de dados a ser anexado
            MAPIMessages2.AttachmentType = mapData
           '______Endereço do anexo
            MAPIMessages2.AttachmentPathName = txt_anexo.Text
        End If
     
       
      MAPIMessages2.Send
     
  Wend 

 
End Sub
     
João Carlos jr.
RIBEIRÃO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 25/04/2008 18:25 hs            
Faça o seguinte no seu código:
 
Dim SQL As String
Dim cont As String
Dim I As Integer
     I = 0
    BD.Open "provider=microsoft.jet.oledb.4.0;" & _
    "Data source=c:CONTATOS.mdb;" & _
    "persist security info=false;"
   
    SQL = "select * from CONTATOS"
    RS.Open SQL, BD, 3, 3
     
      MAPISession2.SignOn
      MAPIMessages2.SessionID = MAPISession2.SessionID
  
   Rs.MoveMin ( M o v e f i r s t ) coloquei, pois o form muda o nome f i r s t  e coloca min
        
   While Not RS.EOF
       
   
      MAPIMessages2.Compose
      MAPIMessages2.RecipAddress = txt_destino.Text
      MAPIMessages2.MsgSubject = txt_assunto.Text
      MAPIMessages2.MsgNoteText = txt_mensagem.Text
     
        If txt_anexo <> Empty Then
           '______Tipo de dados a ser anexado
            MAPIMessages2.AttachmentType = mapData
           '______Endereço do anexo
            MAPIMessages2.AttachmentPathName = txt_anexo.Text
        End If
     
       
      MAPIMessages2.Send
       I= I + 1
       Rs.MoveNext

  Wend 
 
Msgbox " Foram enviados: " & I & " e-mails ! ", vbInformation
 
Fazendo isso o ponteiro vai para o primeiro registro e cada passada no while o ponteiro vai para o próximo até o ultimo e ao sair da rotina irá mostrar uma mensagem de quantos e-mail foram enviados.
 
Espero te lhe ajudado.
 
Flw
 
T+
 
 

João Carlos Junior

Administrador de Redes - Windows 2003 Srv, Linux

    Desenvolvedor Visual Basic 6.0 com Access, SQL Server, VB .Net e Crystal Reports X

Iniciante em C# e ASP .NET

TÓPICO EDITADO
 
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página