Supportnet / Forum / Datenbanken
Serienmailversand
Frage
Hi zusammen
Habe aus dem Internet eine kompakte DB für den Versand von Serienmails aus Access heruntergeladen. Das ganze läuft eigentlich genau so, wie ich mir es vorstelle. Nur ein kleines Problem habe ich und zwar möchte ich noch ein Attachment den Mails hinzufügen. Ich bin nun schon zwei Tage am tüfteln und komme einfach nicht drauf, wie ich das ganze anstelle, da ich keine grosse Ahnung von VBA oder so habe. Wer könnte mir da weiterhelfen ? Schicke Euch die DB gerne zu.
Vielen herzlichen Dank für Eure Hilfe.
Greetings
Cello
Antwort 1 von Marie
Schau mal hier:
http://groups.google.de/groups?q=access+serienmail+attachment&hl=de&lr=&ie=UTF-8&oe=UTF-8&selm=%23JrP7AD%23AHA.1256%40tkmsftngp05&rnum=3
Gru0 Marie
http://groups.google.de/groups?q=access+serienmail+attachment&hl=de&lr=&ie=UTF-8&oe=UTF-8&selm=%23JrP7AD%23AHA.1256%40tkmsftngp05&rnum=3
Gru0 Marie
Antwort 2 von Cello
Hi Marie
Vielen Dank für Deine Hilfe. Hab mir alles angeschaut und mein möglichstes getan. Aber irgendwie klappt das ganze nicht. Da ich eben keine grosse Ahnung von VBA usw. habe, stehe ich ziemlich am Berg und komme nicht weiter. Anbei habe ich mal den Code beigefügt. Vielleicht kann mir ja da jemand weiterhelfen.
Zum voraus schon mal vielen herzlichen Dank.
Cello
Private Sub SendMail_Click()
On Error GoTo SendMail_Error
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strMail As String
Dim i As Integer, k As Integer, Anz As Integer
DoCmd.RunCommand acCmdSaveRecord ' erst mal den DS speichern!
Set db = CurrentDb
Set rs = db.OpenRecordset("Select * FROM qryMailing IN '" & DBPfad & "MailingDaten.mdb" & "'", dbOpenSnapshot)
If rs.RecordCount = 0 Then
MsgBox "Keine Datensätze in Mailingliste vorhanden!", vbOKOnly + vbCritical, "Mailingliste"
GoTo SendMail_Exit
End If
If IsNull(Me!Betreff) Then
MsgBox "Kein Betreff vorhanden!", vbOKOnly + vbCritical, "Serienmail"
GoTo SendMail_Exit
End If
If IsNull(Me!Mailingtext) Then
MsgBox "Kein Mailingtext vorhanden!", vbOKOnly + vbCritical, "Serienmail"
GoTo SendMail_Exit
End If
rs.MoveLast ' rs füllen
rs.MoveFirst ' und wieder auf 1.DS
Anz = rs.RecordCount ' Anzahl der DS
i = 1 ' Startwert für Anzeige
k = Me!txtStatusBar.Width - Me!txtStatusPercent.Width ' Bereich für Balkenanzeige
Call InitStatus(Anz, k)
Do While Not rs.EOF
strMail = rs!Firma1 & " " & rs!Firma2 ' Starte mit Firma1 + 2
strMail = strMail & vbCrLf & vbCrLf ' Leerzeilen
strMail = strMail & rs!AnredeBriefText & " " & rs!Nachname & "," ' individuelle Anrede
strMail = strMail & vbCrLf & vbCrLf & vbCrLf ' Leerzeilen
strMail = strMail & Me!Mailingtext ' das eigentliche Mailing
'MsgBox strMail
DoCmd.SendObject , "", "", rs!EMail, "", "", Me!Betreff, strMail, Me!Ansehen, ""
Call SetStatus(i) ' Balkenanzeige setzten
i = i + 1 ' Status increm.
CommandBars("Web").Visible = False
rs.MoveNext
Loop
MsgBox "Fertig!" & vbCrLf & vbCrLf & Anz & " Mailings erstellt", vbOKOnly + vbInformation, "Serienmail"
Call ResetStatus(Me) ' Statusanzeige löschen
rs.Close
db.Close
SendMail_Exit:
Set rs = Nothing
Set db = Nothing
Exit Sub
SendMail_Error:
Select Case Err.Number
Case 2046
Resume Next
Case 3024
MsgBox "Datenbank MailingDaten.mdb nicht gefunden.", vbOKOnly + vbCritical, "Serienmail"
Case Else
MsgBox "Fehler Nr. " & Err.Number & vbCrLf & Err.Description, vbOKOnly + vbCritical, "Serienmail"
End Select
Resume SendMail_Exit
End Sub
Vielen Dank für Deine Hilfe. Hab mir alles angeschaut und mein möglichstes getan. Aber irgendwie klappt das ganze nicht. Da ich eben keine grosse Ahnung von VBA usw. habe, stehe ich ziemlich am Berg und komme nicht weiter. Anbei habe ich mal den Code beigefügt. Vielleicht kann mir ja da jemand weiterhelfen.
Zum voraus schon mal vielen herzlichen Dank.
Cello
Private Sub SendMail_Click()
On Error GoTo SendMail_Error
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strMail As String
Dim i As Integer, k As Integer, Anz As Integer
DoCmd.RunCommand acCmdSaveRecord ' erst mal den DS speichern!
Set db = CurrentDb
Set rs = db.OpenRecordset("Select * FROM qryMailing IN '" & DBPfad & "MailingDaten.mdb" & "'", dbOpenSnapshot)
If rs.RecordCount = 0 Then
MsgBox "Keine Datensätze in Mailingliste vorhanden!", vbOKOnly + vbCritical, "Mailingliste"
GoTo SendMail_Exit
End If
If IsNull(Me!Betreff) Then
MsgBox "Kein Betreff vorhanden!", vbOKOnly + vbCritical, "Serienmail"
GoTo SendMail_Exit
End If
If IsNull(Me!Mailingtext) Then
MsgBox "Kein Mailingtext vorhanden!", vbOKOnly + vbCritical, "Serienmail"
GoTo SendMail_Exit
End If
rs.MoveLast ' rs füllen
rs.MoveFirst ' und wieder auf 1.DS
Anz = rs.RecordCount ' Anzahl der DS
i = 1 ' Startwert für Anzeige
k = Me!txtStatusBar.Width - Me!txtStatusPercent.Width ' Bereich für Balkenanzeige
Call InitStatus(Anz, k)
Do While Not rs.EOF
strMail = rs!Firma1 & " " & rs!Firma2 ' Starte mit Firma1 + 2
strMail = strMail & vbCrLf & vbCrLf ' Leerzeilen
strMail = strMail & rs!AnredeBriefText & " " & rs!Nachname & "," ' individuelle Anrede
strMail = strMail & vbCrLf & vbCrLf & vbCrLf ' Leerzeilen
strMail = strMail & Me!Mailingtext ' das eigentliche Mailing
'MsgBox strMail
DoCmd.SendObject , "", "", rs!EMail, "", "", Me!Betreff, strMail, Me!Ansehen, ""
Call SetStatus(i) ' Balkenanzeige setzten
i = i + 1 ' Status increm.
CommandBars("Web").Visible = False
rs.MoveNext
Loop
MsgBox "Fertig!" & vbCrLf & vbCrLf & Anz & " Mailings erstellt", vbOKOnly + vbInformation, "Serienmail"
Call ResetStatus(Me) ' Statusanzeige löschen
rs.Close
db.Close
SendMail_Exit:
Set rs = Nothing
Set db = Nothing
Exit Sub
SendMail_Error:
Select Case Err.Number
Case 2046
Resume Next
Case 3024
MsgBox "Datenbank MailingDaten.mdb nicht gefunden.", vbOKOnly + vbCritical, "Serienmail"
Case Else
MsgBox "Fehler Nr. " & Err.Number & vbCrLf & Err.Description, vbOKOnly + vbCritical, "Serienmail"
End Select
Resume SendMail_Exit
End Sub

