Erinnerungsfunktion in MS Access 2007

Hallo liebe Experten,

folgende Problemstellung:
Ich habe in MS Access 2007 eine Datenbank erstellt in der verschiedene Hintergrundinformationen über Personen eingesehen werden können. Einige dieser Informationen sind z.B. die Anzahl und Art von Schulungen. Wenn es eine ist, die in regelmäßigen Abständen wiederholt werden muss, ist das Datum angegeben an dem die nächste Schulung/Unterweisung durchgeführt werden muss.

Nun möchte ich gerne wissen, ob es möglich ist eine Art Erinnerungsfunktion über VBA-Programmierung einzufügen. Das heißt ich habe ein Formular in dem in einem Feld ein zukünftiges Datum aus einem Datenblatt zu sehen ist und auch geändert werden kann. Kann man hier nun evtl. eine Aktion auslösen, wenn das erwähnte Zieldatum z.B. nur noch genau 2 Wochen entfernt ist. Vielleicht einen Farbumschlag im Formular oder ist es gar möglich eine Mail automatisch zu versenden, mit einem benutzerdefinierten Text?

Ich freue mich über jede Hilfe! Danke im Voraus!

Freundlichen Gruß,
Alpollo

Moin, Alpollo,

schreib „if Datum1 > Datum2 + 14 then …“ oder irgendetwas in der Art, mehr braucht’s nicht. Fragt sich nur noch, wohin das zu schreiben wäre - also in welchem Ereignis der Code unterzubringen wäre. Kann aus der Ferne aber niemand sagen.

Normalerweise bringt man solche Prüfungen beim Start der Datenbank unter. Such Dir die fraglichen Teilnehmer raus, indem Du ihr Schulungsdatum mit dem Tagesdatum vergleichst und rufe bei passender Differenz die geeignete Aktion auf.

Gruß Ralf

Danke für die Antwort. Ich werde es einmal ausprobieren, vielleicht komme ich damit ja der Lösung einen großen Schritt näher.

Gruß,
Alpollo

Hallo,

Diese oder aehnliche Problemstellungen habe ich wie folgt geloest:

Eine VBA Funktion in der die entsprechenden Dateneintraege selektiert werden.
Fuer die gefunden Daten dann mittels Outlook-Objekt (oder MAPI) entsprechende EMail geniereren ,ewt, zusaetzlich in Outlook ein Aufgabe anlegen mit Zieldatum.

Diese Funktion beim Anwendungstart oder auf Knopfdruck aufrufen.

Brauchbare Code-Beispiele fuer die Verwendung des Outlook-Objekts gibt es im Netz zu hauf, aber darauf achten das sie fuer deine Office-Version passt. Die MAPI-Beispiel funktionieren unter Office 2007/2010 nicht mehr wirklich.

Tschau
Peter

Hallo,
vielen Dank für die Antwort. Ich werde dann mal nach verwendbaren Codebeispielen suchen.

Hallo,
ich verwende diesen Code um Emails aus Access heraus zuversenden.
Problem war bei mir das ich es betrieblich einsetzten wollte und unsere IT abteilung vieles geblockt hat, aber mit dem unterstehenden Code kommen die Mails durch. evtl hilts dir ja weiter:smiley: wenn nicht dann nicht :wink:

Code:

Public Sub SendeEmail()
Dim strSQL As String
Dim rs As DAO.Recordset
Dim db As DAO.Database

Dim intStufe As Integer
Dim lngNr As Long
Dim booSend As Boolean
Dim i As Integer

Dim olApp As Outlook.Application
Dim olNamespace As Namespace
Dim objMailItem As MailItem
Dim objFolder As MAPIFolder

Set db = CurrentDb
db.Execute „qry_anfuegen“, 128 'Neue Rückmeldungen in die Email-Liste aufnehmen

Set rs = db.OpenRecordset(„qry_email_senden“, dbOpenDynaset) 'alle anstehenden Emails

If Not rs.BOF Then
rs.MoveLast
rs.MoveFirst

For i = 1 To rs.RecordCount
intStufe = rs!Stufe

'Erste Email nach 14 Tagen der Erfassung
If IsNull(rs!SendeDatum) Then
rs.Edit
rs!SendeDatum = Date
rs.Update
booSend = False
Else
lngNr = rs!enr
rs.AddNew
rs!Stufe = intStufe + 1
rs!SendeDatum = Date
rs!enr = lngNr
rs.Update
booSend = True

End If

If booSend Then
Set olApp = CreateObject(„Outlook.Application“)
Set olNamespace = olApp.GetNamespace(„MAPI“)
Set objFolder = olNamespace.GetDefaultFolder(olFolderInbox)
Set objMailItem = objFolder.Items.Add(olMailItem)

With objMailItem
.To = „Empfänger@ oder über Recordset“ 'den holen wir uns später noch ins Recordset
.Subject = „Test-Mail“ & intStufe + 1 & vbCrLf & rs!pname & " " & rs!vorname
.Body = „Mail-Routine“ & intStufe + 1 & „!!! Erinnerung an den Kompetenznachweis von Herrn " & _
" vielen Dank- Testmail“
'.Display
'.Send
End With

olApp.ActiveWindow
SendKeys „%s“
Set objMailItem = Nothing
End If
rs.MoveNext
Next i
Else
rs.Close
Set rs = Nothing

End If
End Sub

Bitte schön und viel erfolg noch.

Gruß
Fizzo361