Originariamente inviato da Joe_01
Salve a tutti, stavo realizzando questa semplice ( per voi) applicazione in VBA, ma mi sono bloccato in questi errori.

Vengo al problema, cercando qualche suggerimento da varie parti libri e internet, sono riuscito a mettere insieme questo codice che mi permette di memorizzare degli indirizzi e-mail in una tabella di Access 2010 e poi fare un invio singolo, ovvero ho creato una form con un pulsante che mi avvia le spedizioni.
Il problema è il seguente, se invio 3 o 4 e-mail va tutto bene, se cerco di inviarne per esempio 50 ad un certo punto esce un messaggio e il programma si ferma su (send) dicendo che occorre inserire un destinatario, un CC o un CCn........? (perchè se sta leggendo da un elenco di indirizzi)
Inoltre ho realizzato una query nella tabella dove ho messo l'istruzione nel campo mail "Is null" in modo che dove trova nella tabella il campo senza e-mail la lettura dei record posso continuare.
E questo è il primo problema.
Che tipo di messaggio è?
Si ferma sempre nello stesso punto? Si ferma sempre dopo un numero preciso di invii?

Prova a mettere un MsgBox con 1° argomento il destinatario e 3° argomento (cioè titolo del MessageBox ) il record selezionato.

Originariamente inviato da Joe_01
Il secondo, se mi permettete di formularlo qui, è banale (per voi) vorrei semplicemente conteggiare le e-mail che invio, ho dichiarato una variabile "Tentativi" (tralasciamo il termine) volevo sapere come fare per calcolare quante e-mail vengono effettivamente compilate e spedite........
Ringraziandovi per la sempre validissima professionalità e soprattutto per la pazienza di cui siete dotati, spero in un vostro prezioso suggerimento.
Grazie a tutti


Allego il codice:

Const conPercorso = "\\server\Dati\Documenti\Uboldi\Varie\"
Const conAllegato = "\\server\Dati\Documenti\Uboldi\Varie\Curriculum_2 010.PDF"
Dim rstEmail As New ADODB.Recordset


Dim strNomeAllegato As String
Dim strDestinatario As String
Dim appOutlook As New Outlook.Application
Dim mail As Outlook.MailItem
Dim Tentativi As Integer
Tentativi = 0




Set appOutlook = CreateObject("outlook.application")

DoCmd.OpenQuery "qryEliminaNulliDaEmail"

rstEmail.Open "tbElencoAziende", CurrentProject.Connection, adOpenForwardOnly

'MsgBox rstEmail!Nome & rstEmail![E-Mail]


Do Until rstEmail.EOF

strDestinatario = rstEmail![mail]

If Not strDestinatario = "" Then


Set mail = appOutlook.CreateItemFromTemplate _
(conPercorso & "RicercaLavoro.oft")

With mail
.To = strDestinatario
' .Attachments.Add (conAllegato)
.Send
End With
Set mail = Nothing

End If
rstEmail.MoveNext

If mail.Send Then Tentativi ......................

Loop
MsgBox "Il messaggio è stato inviato correttamente"


End Sub
Non mi ricordo se esiste un metodo per verificare se la mail è stata spedita, in tal caso non è possibile sapere se realmente l'invio è andato a buon fine; per incrementare il contatore basta dichiarare la variabile all'esterno del ciclo Do Until (come hai fatto) e poi aumentare tale valore di +1 alla fine del ciclo:
codice:
Dim contatore as Integer
Do Until .......
'esegui tutte le tue operazioni
contatore = contatore + 1
Loop
Ciao