Mail perVBA ausACCESS anOUTLOOK...verzögert!

hi leute,

großes problem und ich komm nicht weiter - bitte helft mir:

  • ich habe ein funktionierende datenbank mit geburtsdaten von
    kunden
  • per button erstellt mir access in outlook eine mail und zeigt diese
    an
  • es wird automatisch eine übermittlungsverzögerung (auf den
    genauen geburtstag) in outlook programmiert

jetzt versendet outlook aber nur wenn der pc auch an ist (exchange-
server; nicht anders lösbar)

WIE KANN ICH DIE ÜBERMITTLUNGSVERZÖGERUNG SO
PROGRAMMIEREN; DASS DIESE NUR DANN VON ACCESS AN
OUTLOOK ÜBERMITTELT WIRD; WENN ES SICH BEI DIESEM TAG
UM EINEN WERKTAG (MO-SA) HANDELT???

hier mein aktueller vba-code:

Private Sub EMailButton_Click()
Dim Applikation As New Outlook.Application
Dim Mail As Outlook.MailItem
Set Mail = Applikation.CreateItem(olMailItem)
Mail.To = Me![Email]
Mail.Subject = Me![Betreff]
Mail.Attachments.Add „bilddatei.jpg“, jpg, 1, „ort“
Mail.HTMLBody = „“ & Me![mailtext]
Mail.DeferredDeliveryTime = Me![GebtagDJ]
Mail.SentOnBehalfOfName = „[email protected]

Mail.Display
End Sub

lieben dank für eure hilfe.
sascha

ps: und falls ihr noch wisst wie ich in die email auch ein bild
einfügen (nicht anhängen! das hab ich schon) kann dann bitte nur
her mit den ideen :smile:

Hi Sascha,

Mach doch einfach eine Schleife von wegen
If Weekday(Now) = …
Und dann dein Code

Das sollte doch schon reichen wenn ich dich richtig verstanden habe.

Gruß
Marco

hi Marco,

wo genau Bau ich das ein?

hab den Code auch nur mit Mühe und Not zusammengebaut und kenn mich da nicht so aus :smile:

danke

Hi,

Versuchs mal so:

Private Sub EMailButton_Click()
Dim Applikation As New Outlook.Application
Dim Mail As Outlook.MailItem
If Weekday(Now) > 1 then
Set Mail = Applikation.CreateItem(olMailItem)
Mail.To = Me![Email]
Mail.Subject = Me![Betreff]
Mail.Attachments.Add „bilddatei.jpg“, jpg, 1, „ort“
Mail.HTMLBody = „“ & Me![mailtext]
Mail.DeferredDeliveryTime = Me![GebtagDJ]
Mail.SentOnBehalfOfName = „[email protected]

Mail.Display
End If
End Sub

Gruß
Marco

Hallo Sascha,

ich würde den Aufruf der Sub EMailButton_Click() einfach in eine If-Abfrage packen:

If weekday(Date) vbSunday then
EMailButton_Click()
End If

Ansonsten die If-Abfrage einfach vor der .Sent-Anweisung vor dem Versenden der E-Mail.

Ich hoffe, es klappt…

Das Bild muss man ggf. in den HTMLBody einbinden, habe ich aber noch nicht probiert. Ich denke, es sollte klappen, wenn der Body einfach um erweitert wird?
Die genauen Angaben beim -Tag vielleicht unter SelfHTML nachlesen (Google).

sorry, hier kann ich nicht weiterhelfen.

SUPER !

hat geklappt — VIIIIELEN DANK!!

hab den code jetzt so programmiert und es klappt:

Private Sub EMailButton_Click()

Dim Applikation As New Outlook.Application
Dim Mail As Outlook.MailItem
Set Mail = Applikation.CreateItem(olMailItem)
If Weekday(GebtagDJ) = 1 Then
Mail.To = Me![Email]
Mail.Subject = Me![Betreff]
Mail.Attachments.Add „C:…jpg“, jpg, 1, „ort“
Mail.HTMLBody = „“ & Me![mailtext]
Mail.SentOnBehalfOfName = „emailaddy“
Mail.Display
End If
If Weekday(GebtagDJ) > 1 Then
Mail.To = Me![Email]
Mail.Subject = Me![Betreff]
Mail.Attachments.Add „C:…jpg“, jpg, 1, „ort“
Mail.HTMLBody = „“ & Me![mailtext]
Mail.DeferredDeliveryTime = Me![GebtagDJ]
Mail.SentOnBehalfOfName = „emailaddy“
Mail.Display
End If
End Sub

Hi,

Darf ich dir einen Verbesserungsvorschlag für deinen Code machen.

Vor der letzten End If Zeile
Solltest du folgendes einfügen:
Set Mail = Nothing

Das sorgt dafür das der Outlook Prozess via VBA korrekt beendet wird…

Gruß
Marco

Hi Sascha, sorry, da kann ich Dir nicht weiterhelfen. Viel Glück beim Weitersuchen.
MfG MwieMichel

Hallo!
Es gibt eine Form des Datums, die eine Tageszählung ab Anfang darstellt (dateseriell?). Wenn Du diesen Wert durch 7 teilst und nimmst den Rest ( ich glaube (x mod 7), dann erhälst du einen Wert für jeden wochentag, damit kannst du dann steuern; also

if (date+y mod 7) > 4 then „wochenende“

den wert für y mußt Du ausprobieren

gruß
wolframn