Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

eMail aus Access versenden und dazu verschiedene Mailadressen als Absender auswählen können

261 views
Skip to first unread message

Stefan Paesch

unread,
Feb 22, 2008, 4:21:27 PM2/22/08
to
Moin zusammen!

Wir haben eine Datenbank (A2003, Win XP Pro) in der Wartungsarbeiten
und deren Intervalle verwaltet werden.
Die Wartungstechniker bekommen automatisch generierte eMails als
Erinnerung (DoCmd.SendObject....).
Ich habe in meinem Outlook 2003 zwei eMailkonten.
Erinn...@Wartung.de und meine sonstige (Standart) Mailadresse
Di...@Wartung.de.

Nun ist es lästig und ich vergesse es auch oft, bei Erinnerung die
Mailadresse umzustellen.
Gibt es eine Möglichkeit, das Mailkonto per VBA/API umzustellen und
dann wieder zurück ?
Hat jemand einen anderen Lösungsansatz ?
Ich hab schon mächtig in den Foren gesucht, aber irgendwie waren die
Beispiele oft Links, auf denen ich das Thema dann nicht so richtig
wieder gefunden habe.

Vielen Dank Stefan.

Mark Doerbandt

unread,
Feb 22, 2008, 5:32:09 PM2/22/08
to
Hallo, Stefan,

Stefan Paesch:

also, sag noch mal genauer: Du hast in Outlook zwei Konten und sendest
aus Access die eMails ueber Outlook los? Wie genau machst Du das
jetzt?

Gruss - Mark

--
2. SEK (SQL Server-Entwickler-Konferenz) in Nürnberg:
12./13.4 und 19./20.4.2008 http://www.donkarl.com/SEK

Bitte keine eMails auf Newsgroup-Beiträge senden.

Stefan Paesch

unread,
Feb 22, 2008, 5:44:04 PM2/22/08
to
Hallo Mark,

versendet wird die jeweilige Mail über DoCmd.SendObject ....., True -
das heißt Outlook geht auf und ich schaue noch einmal über die Daten
und dann per senden (manuel) die email weg, vorher von
Standartabsender auf Erinnerung@wartung. de umgestellt (oder eben auch
nicht).

So ist die Datenbank momentan programmiert. Muss aber nicht so laufen.
Wenn es eine Methode gibt, z.B. ohne Outlook, sondern die Erinnerungen
gleich aus Access zu senden ist das auch gut.

Mark Doerbandt

unread,
Feb 22, 2008, 5:52:56 PM2/22/08
to
Hallo, Stefan,

Stefan Paesch:

> Hallo Mark,

btw: antworte doch bitte lieber auf mein als auf Dein Posting, dann
bekomme ich es mit.

> versendet wird die jeweilige Mail über DoCmd.SendObject ....., True -
> das heißt Outlook geht auf und ich schaue noch einmal über die Daten
> und dann per senden (manuel) die email weg, vorher von
> Standartabsender auf Erinnerung@wartung. de umgestellt (oder eben auch
> nicht).

soweit ich weiss, hast Du da keine Moeglichkeit, per VBA das
Versandkonto festzulegen.

Du koenntest es wie folgt machen, was ich aber auch als "Hack" ansehe:

Dim Mail As Outlook.MailItem
Set Mail = OL.Application.CreateItem(olMailItem)
Mail.To = "spamre...@doerbandt.de"
Mail.Subject = Format(Now, "yyyy-mm-dd hh:nn:ss") & " - Test"
Mail.Body = "Demo zu Send Mail using other Account"
Mail.Display
Mail.GetInspector.CommandBars("Standard").Controls(3).Controls(4).Execute
Mail.Send
Set Mail = Nothing

- der "Kniff dabei ist, den Knopf quasi automatisiert zu druecken.

Ab Outlook 2007 gibt es dafuer iirc eine Methode .SendUsingAccount...

Josef Zins

unread,
Feb 23, 2008, 1:38:03 AM2/23/08
to
Hallo zusammen

>
> Nun ist es lästig und ich vergesse es auch oft, bei Erinnerung die
> Mailadresse umzustellen.
> Gibt es eine Möglichkeit, das Mailkonto per VBA/API umzustellen und
> dann wieder zurück ?

Muss es unbedingt Outlook sein ?
Mit postie lässt sich im Aufrufstring alles einstellen
z.B.
varPostie = "c:\Postie\postie.exe -host:smtp.xxxx.de _
-to:emp...@mail.de -from:me...@email.de -s:Termin-Erinnerung _
-file:c:\Terminwarnungen\Msg_Text.txt"
Ergebnis = Shell(varPostie, 1)

Deatils siehe: http://www.infradig.com/postie/

Bei mir funzt das wunderbar

--
Grüsse
Josef Zins

Teile dein Wissen mit anderen. Dies ist eine gute Möglichkeit,
Unsterblichkeit zu erlangen (Dalai Lama)

Stefan Paesch

unread,
Feb 23, 2008, 2:11:46 PM2/23/08
to
Hallo Mark,

> Du koenntest es wie folgt machen, was ich aber auch als "Hack" ansehe:
>
> Dim Mail As Outlook.MailItem
> Set Mail = OL.Application.CreateItem(olMailItem)
> Mail.To = "spamre...@doerbandt.de"
> Mail.Subject = Format(Now, "yyyy-mm-dd hh:nn:ss") & " - Test"
> Mail.Body = "Demo zu Send Mail using other Account"
> Mail.Display
> Mail.GetInspector.CommandBars("Standard").Controls(3).Controls(4).Execute
> Mail.Send
> Set Mail = Nothing
>
> - der "Kniff dabei ist, den Knopf quasi automatisiert zu druecken.

*** danke für den Tipp, ist auf jeden Fall ein Ansatz

> Ab Outlook 2007 gibt es dafuer iirc eine Methode .SendUsingAccount...

*** da wir beabsichtigen, mittelfristig auf Office 2007 umzusteigen
wäre iirc evtl. dann eine Alternative ? Gibt es dazu irgendwo
Informationen (außer OH).

Ich stoße momentan schnell an meine Grenzen, da ich mich erst seit ca,
1 Jahr mit VBA beschäftige. Da bin ich immer froh, wenn ich "Idioten"
sichere Beschreibungen finde.

Auf jeden Fall vielen Dank für Deine/Eure Hilfe.

Gruß Stefan


Mark Doerbandt

unread,
Feb 24, 2008, 6:57:58 AM2/24/08
to
Hallo, Stefan,

Stefan Paesch:

> SendUsingAccount

http://msdn2.microsoft.com/en-us/library/bb207787.aspx

Stefan Paesch

unread,
Feb 24, 2008, 7:44:50 AM2/24/08
to
Hallo Mark,

vielen Dank für den Tipp. Ich habe den Code auf meinem privaten
Rechner ausprobiert (Office 2007, Win XP pro).

Da gibt es eine Fehlermeldung beim kompilieren " For Each oAccount In
Application.Session.Accounts"

Session - Methode oder Datenobjekt (Schlüsselwort) nicht gefunden.

Fehlt noch irgendein Verweis ? Eingebunden sind:

Visual Basic For Applications
MS Access 12.0 Object Library
OLE Automation
MS Office 12.0 Access database engine Object Library
MS Outlook 12.0 Object Library

Viele Grüße Stefan.

Thomas Möller

unread,
Feb 24, 2008, 8:31:01 AM2/24/08
to
Hallo Stefan,

Stefan Paesch <google...@paesch.com> schrieb:


> vielen Dank für den Tipp. Ich habe den Code auf meinem privaten
> Rechner ausprobiert (Office 2007, Win XP pro).
>
> Da gibt es eine Fehlermeldung beim kompilieren " For Each oAccount In
> Application.Session.Accounts"
>
> Session - Methode oder Datenobjekt (Schlüsselwort) nicht gefunden.

wenn Du diesen Code in Access laufen lässt, dann bezieht sich
"Application" auf die Access-Application. Was Du brauchst ist eine
Variable, der Du die Outlook-Application zuweist.

HTH
--
Thomas

Homepage: www.Team-Moeller.de

Mark Doerbandt

unread,
Feb 24, 2008, 8:40:05 AM2/24/08
to
Hallo, Stefan,

Stefan Paesch:

> Da gibt es eine Fehlermeldung beim kompilieren " For Each oAccount In
> Application.Session.Accounts"

mit Application ist dabei eine Outlook.Application gemeint - die
Access-Application kennt die Session ja nicht.

Versuche mal:

Dim oApp As Outlook.Application
Dim oAccount As Outlook.Account
Dim oMail As Outlook.MailItem

Set oApp = CreateObject("Outlook.Application")
For Each oAccount In oApp.Session.Accounts
If oAccount.AccountType = olPop3 Then
Set oMail = oApp.CreateItem(olMailItem)
oMail.Subject = "Sent using POP3 Account"
oMail.Recipients.Add ("som...@example.com")
oMail.Recipients.ResolveAll
oMail.SendUsingAccount = oAccount
oMail.Send
End If
Next
Set oApp = Nothing

Günter Gerold

unread,
Feb 24, 2008, 1:42:50 PM2/24/08
to
Hallo Stefan,

falls es nicht erforderlich ist, daß die gesendeten Mails in Outlook zu
sehen sind, kannst du auch einen SMTP-Mailer wie Blat verwenden.
Guckst du hier:
http://www.blat.net/examples/MSAccess_class.html


Stefan Paesch

unread,
Feb 26, 2008, 11:31:58 AM2/26/08
to

Günter Gerold schrieb:
> Hallo Stefan,
>
> falls es nicht erforderlich ist, da� die gesendeten Mails in Outlook zu


> sehen sind, kannst du auch einen SMTP-Mailer wie Blat verwenden.
> Guckst du hier:
> http://www.blat.net/examples/MSAccess_class.html

Vielen Dank Euch allen, werde ich alles durchprobieren.

0 new messages