ENVIAR CORREOS A TODOS LOS DESTINATARIOS DE LA BASE
Publicado por Javier (71 intervenciones) el 22/02/2017 18:44:17
Hola programadores, me gustaría poder enviar mediante outlook correo electrónico a todos los destinatarios de mi base de datos ,consigo generar correctamente el correo incluso con adjuntos para un destinatario , aquí os pongo mi código para un destinatario que SI FUNCIONA:
A continuación os pongo el código que NO ME FUNCIONA, para enviarle el correo a todos los registros de la base de datos
CREO QUE EL FALLO ESTÁ en el recorset , por eso os lo he puesto en negrita, ¿donde está el fallo? alguien lo sabe?
EDITO: comentar que el campo CORREO ELÉCTRÓNICO en mi base es un campo de texto, y que este código da como resultado en mi base de datos, la apertura de outlook pero sin destinatarios
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub Comando16_Click()
Call sendmail
End Sub
Sub sendmail()
Dim oOutlook As Outlook.Application
Dim oEmailItem As MailItem
On Error Resume Next
Err.Clear
Set oOutlook = GetObject(, "Outlook.Application")
If Err.Number <> 0 Then
Set oOutlook = New Outlook.Application
End If
Set oEmailItem = oOutlook.CreateItem(olMailItem)
With oEmailItem
.To = Me.CORREO_ELECTRÓNICO
.CC = ""
.Subject = "CORREO DE LA EMPRESA"
For n = 0 To Me.Lista14.ListCount - 1
.Attachments.Add (Me.Lista14.ItemData(n))
Next n
.Display
End With
Set oEmailItem = Nothing
Set oOutlook = Nothing
End sub
A continuación os pongo el código que NO ME FUNCIONA, para enviarle el correo a todos los registros de la base de datos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Private Sub Comando18_Click()
Dim oOutlook As Outlook.Application
Dim oEmailItem As MailItem
Dim rs As Recordset
Dim customerEmail As String
On Error Resume Next
Err.Clear
Set oOutlook = GetObject(, "Outlook.Application")
If Err.Number <> 0 Then
Set oOutlook = New Outlook.Application
End If
Set oEmailItem = oOutlook.CreateItem(olMailItem)
With oEmailItem
Set rs = CurrentDb.OpenRecordset("Select * from ALUMNOS")
If rs.RecordCount > 0 Then
rs.MoveFirst
Do Until rs.EOF
If IsNull(rs!CORREO_ELECTRÓNICO) Then
rs.MoveNext
Else
customerEmail = customerEmail & rs!CORREO_ELECTRÓNICO & ";"
.To = customerEmail
rs.MoveNext
customerEmail.Type = olTo
End If
Loop
Else
MsgBox " NADIE TIENE EMAIL"
End If
Set rs = Nothing
.CC = ""
.Subject = "PRUEBA DE Academia"
For n = 0 To Me.Lista14.ListCount - 1
.Attachments.Add (Me.Lista14.ItemData(n))
Next n
.Display
End With
Set oEmailItem = Nothing
Set oOutlook = Nothing
End Sub
CREO QUE EL FALLO ESTÁ en el recorset , por eso os lo he puesto en negrita, ¿donde está el fallo? alguien lo sabe?
EDITO: comentar que el campo CORREO ELÉCTRÓNICO en mi base es un campo de texto, y que este código da como resultado en mi base de datos, la apertura de outlook pero sin destinatarios
Valora esta pregunta
0