Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: TeleTobi am Februar 07, 2006, 15:42:00

Titel: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: TeleTobi am Februar 07, 2006, 15:42:00
Hallo Zusammen,

ich habe eine Access Tabelle wo ich ein Feld [EMail] und ein Feld [End Datum] habe. Wie realisiere ich mein Problem, wenn das End Datum erreicht ist, dass an die EMail Adresse automatisch eine Nachricht verschickt wird.

Bitte keine Antworten wie: Mit Docmd.SendObject. Das weiß ich mittlerweile auch. Ich weiß nur nicht ob ich ein Makro oder Modul brauche, wie sowas automatisch geprüft wird.

Ich hoffe Ihr könnt mir bei meinem Problem helfen.


Vielen Dank schonmal!


Gruß
TeleTobi
Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: DF6GL am Februar 07, 2006, 15:48:22
Hallo,

und WANN (bei welchem DB-Vorgang) soll das geprüft/durchgeführt werden?

Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: TeleTobi am Februar 08, 2006, 08:33:32
Guten Morgen DF6GL,

sagen wir einmal am Tag, entweder wenn die DB geöffnet wird oder, ich weiß nicht ob das möglich ist, automatisch im Hintergrund von Access einmal am Tag.

Gruß
TeleTobi


Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: DF6GL am Februar 08, 2006, 11:51:29
Hallo,

Beim Öffnen der DB:

Im Makro "Autoexec" rufst Du eine Funktion auf (fktSendEMails), die in einem Standardmodul als Public deklariert ist:


Public Function fktSendEMails ()

Dim rs as Dao.Recordset
Set rs=Currentdb.Openrecordset("select EMail , EmailStatus from tblTabelle where EndDatum <=Date() and EMailStatus <> 'Sent'",dbopendynaset)

Do until rs.Eof
docmd.Sendobject ........,rs!EMail,...
rs.Edit
rs!EMailStatus="Sent"
rs.Update
rs.Movenext
Loop

rs.Close
set rs=Nothing

End Funktion
Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: TeleTobi am Februar 08, 2006, 13:41:58
Hallo DF6GL,

danke für Deine Hilfe. Mein Modul schaut im Moment wie folgt aus. Rufe ich jetzt unter "Autoexec" RunCode meine Funktion fktSendEMails auf, schließe Access und starte es neu kommt: The expression your entered has a function name that MS Access can´t find.

Weißt du rat?

Außerdem, kommt beim Debuggen:

strSubject = " Notice for QTS ID: " & rs![QTS ID]
strEMailMsg = " Please have a look at the Job " & rs![QTS ID]

dort ein Fehler.



Public Function fktSendEMails()

Dim rs As DAO.Recordset
Dim strSubject As String
Dim strEMailMsg As String

Set rs = CurrentDb.Openrecordset("SELECT [QTS ID], Email FROM [Corrective Activity] WHERE Ready <=Date() and Status <> 'Complete'", dbopendynaset)

strSubject = " Notice for QTS ID: " & rs![QTS ID]
strEMailMsg = " Please have a look at the Job " & rs![QTS ID]
Do Until rs.EOF

'EMAIL USER DETAILS & ATT REPORT
DoCmd.SendObject , , acFormatRTF, rs!EMail, , , strSubject, strEMailMsg, False, False
rs.Edit
rs!Status = "Complete"
rs.Update
rs.MoveNext
Loop

rs.Close
Set rs = Nothing

End Function



Vielen Dank für Deine Hilfe!


Gruß
TeleTobi
Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: DF6GL am Februar 08, 2006, 14:50:41
Hallo,

stimmen denn die Namen der Tabelle und der Felder?
Weiterhin, Ist der Verweis auf die DAO3.6 Library gesetzt?



Außerdem solltest Du bei Referenz außerhalb der Schleife auf einen DS erst testen, ob überhaupt welche vorhanden sind und auch mal im VBA-Editor unter Debuggen/Kompilieren die DB durch checken.

.
.
Set rs = CurrentDb.Openrecordset("SELECT [QTS ID], Email FROM [Corrective Activity] WHERE Ready <=Date() and Status <> 'Complete'", dbopendynaset)

if not rs.eof then
strSubject = " Notice for QTS ID: " & rs![QTS ID]
strEMailMsg = " Please have a look at the Job " & rs![QTS ID]
end if

Do Until rs.EOF
.
.
Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: TeleTobi am Februar 09, 2006, 08:06:15
Guten Morgen DF6GL,


vielen vielen Dank für Deine Hilfe! Das Programm läuft soweit.

Nur eine kleine Frage habe ich noch. Es tritt ein Problem auf, wenn ich mein Status Feld nach Versand der E-Mail mit einem Wert überschreiben will:

Item Not found in this Collection:


rs.Edit
rs!Status = "Complete"
rs.Update


Kannst du mir bitte noch die korrekte Syntax dafür sagen? Ich habe schon gegoogelt aber die anderen Möglichkeiten funktionieren auch nicht.

Aber aufjedenfall danke für deine super hilfe!! Echt Klasse von Dir!

* Kaffee ausgeb *


Gruß
TeleTobi

Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: DF6GL am Februar 09, 2006, 09:20:03
Hallo,

das Feld muß in der Select-Liste bei Openrecordset mit aufgeführt werden, sonst ist es ja im Recordset nicht enthalten.



PS: Ja danke! Soll ich Dir meine Kontonummer geben?

Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: TeleTobi am Februar 09, 2006, 09:36:40
Mensch! es liegt immer an den einfachen Dingen :)

Danke! für Deine Hilfe. Lass dich nicht unterkriegen! Das mit dem Geld ist so ne Sache *g* Reicht der Kaffee :D Bussi könnte ich auch noch geben  ;)



Gruß
TeleTobi
Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: DF6GL am Februar 09, 2006, 10:21:54
Hallo,

und wo bekomm ich den Kaffee her? Du kannst ja vorbeikommen, dann klappt das auch mit dem Bussi ,=)
  :-*
Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: RayBan am September 08, 2011, 18:28:19
Bevor ich ein neues Thema erstelle, greif ich erstmal auf den alten Schinken hier zurück :)

Wie schaut es denn aus, wenn meine Datenbank durchgehend geöffnet ist?
Kann man automatisch permanent überprüfen lassen, ob ein EndDatum erreicht wird?
Titel: Re: Automatischer EMail Versand bei erreichen von Datum.
Beitrag von: database am September 08, 2011, 18:39:14
Hallo,

das wäre m.E. möglich, wenn ein bestimmtes Formular immer wieder geöffnet wird.
Dort könnte dann im Ereignis 'Beim Anzeigen' der entsprechende Code untergebracht werden.

Ähnlich wäre es möglich beim Klicken auf eine bestimmte Schaltfläche, die immer wieder betätigt werden muss um eine Aktion in der DB auszuführen.

Man müsste es versuchen, wie es sich mit einem Timer auf einem versteckt geöffneten Formular verhält - das Formular wird beim Starten der DB automatisch geöffnet und verborgen.  
Ist nur so eine Idee - wie gesagt könnte man mal versuchen ob das funktioniert.

p.s. wäre es trotz allem besser immer ein neues Thema zu eröffnen, da es sich ja nicht um die gleiche Problematik handelt  ;)