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