Emails zenden aan alle records in query

Status
Niet open voor verdere reacties.

Harry2010

Nieuwe gebruiker
Lid geworden
2 dec 2010
Berichten
2
Ik heb een access 2000 db met de naam stickerrapport. Deze bevat een selectie-query gebaseerd op een tabel. Velden zijn: datum, inspecteur, voertuig, kenmerk, controledatum, bijzonderheden. Alleen de records met een controledatum ouder dan twee weken worden hierin geselecteerd. Deze query heeft de naam : zenden.
Ik wil in het formulier met de naam Sturen, (dat gebaseerd op de query) een knop maken, waarmee ik individuele emails kan sturen naar de emailadressen in mijn selectiequery via outlook. Ik zag een vba script en ging daar wat mee aan de gang op de knop die ik maakte. Helaas werkte het script niet. De reden is waarschijnlijk dat ik het niet goed snap. Kan iemand mij helpen het script werkend te maken. Oh ja, ik las ook iets over een waarschuwingsmelding die bij elke te verzenden email opnieuw verschijnt. Als dat te omzeilen is wil ik dat ook graag weten.
 

Bijlagen

  • voorbeeld.JPG
    voorbeeld.JPG
    73,5 KB · Weergaven: 27
Je geeft niet overdreven veel informatie, maar toch een poging:

Om mails individueel te verzenden zou je een query moeten open met een recordset in vba, die elk record afzonderlijk opent, de mail verzendt en naar het volgende record gaat. Dat is op zich nog wel te regelen.
Een mail die in één keer alle mails verzendt is uiteraard op dezelfde manier ook te maken.
Zodra je geautomatiseerd mails verzendt, ondervangt Office dit met een waarschuwing, dat een programma een mail probeert te verzenden. Deze melding kun je afvangen met het (gratis) programma ClickYes, zodat je de mails ongestoord kunt verzenden.
Je geeft aan dat je het script al hebt, maar dat het niet werkt. Waar loopt het vast, en kun je het script posten (in Code opmaak :) )
 
vba code

Hier is de code die ik geprobeerd heb.
Alvast bedankt voor je hulp.

Private Sub Email_Output_Click()
'
' Email API Outlook example programming code
' Send email from to Outlook
'
Select Case Me.Email_Output_Option
Case 1
Dim mess_body As String
Dim rst As DAO.Recordset
Dim appOutLook As Outlook.Application
Dim MailOutLook As Outlook.MailItem
Set appOutLook = CreateObject("Outlook.Application")
Set MailOutLook = appOutLook.CreateItem(olMailItem)
Set rst = Form_F_People_Mailings.RecordsetClone
rst.MoveFirst
Do While Not rst.EOF
If IsNull(rst!Email) Then
MsgBox "skipping " & _
Form_F_People_Mailings.LastName & _
" no email address."
GoTo skip_email
End If
mess_body = "Dear " & rst!Salutation & " " & _
rst!LastName & "," & _
vbCrLf & vbCrLf & Me.Mess_Text
Set appOutLook = CreateObject("Outlook.Application")
Set MailOutLook = appOutLook.CreateItem(olMailItem)
With MailOutLook
.To = rst!Email
.Subject = Me.Mess_Subject
.Body = mess_body
If Left(Me.Mail_Attachment_Path, 1) <> "<" Then
.Attachments.Add (Me.Mail_Attachment_Path)
End If
'next line would let MS Outlook API send the note
'without storing it in your sent bin
'.DeleteAfterSubmit = True
.Send
End With
skip_email:
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Case 2
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan