2015-11-23 2 views
-1

Je suis en train de créer une base de données pour mon travail qui comprend des informations de base sur la flotte de véhicules de l'entreprise. J'ai créé la base de données et la première page qui comprend des variables telles que la voiture, la couleur, la date, la date fiscale, etc.Email automatique dépendant de la date dans Microsoft Access

Je dois d'une manière ou d'une autre avoir l'accès détecter quand la date du MOT d'une voiture de société est due et email quelqu'un pour les informer que la date est à venir en comparant la date du jour avec la date entrée dans le champ de la date du MOT. Quelque chose comme, si la date d'aujourd'hui est une semaine avant la date du MOT, envoyer un e-mail à quiconque pour les informer que cela est dû.

J'ai besoin que cela se produise automatiquement, je prévois d'ouvrir et de rafraîchir la feuille tous les jours donc pas besoin d'être particulièrement sophistiqué et le faire sans Access étant ouvert, j'ai juste besoin d'effectuer cette tâche sans traîner les pages et des pages de données.

+0

Pourquoi la balise Excel sur la question lorsqu'il s'agit principalement d'accès? Cette balise devrait être la première ... –

Répondre

1

Vous pouvez le faire au lancement. Il suffit d'écrire une requête qui sélectionne les enregistrements que vous voulez. Parcourez ensuite la requête et envoyez un e-mail à chaque personne, puis assurez-vous d'avoir un champ appelé "EmailSent" que vous mettez à jour à True afin de ne pas leur envoyer d'e-mail le jour suivant (en supposant que vous souhaitez simplement écrivez-les une fois).

Vous probablement voulez un peu VBA le long de ces lignes:

Dim db as Database 
Dim rec as Recordset 

Set db = CurrentDB 
Set rec = db.OpenRecordset("SELECT * FROM MyQueryName") 

Do while rec.EOF = False 
    'Loop through each record, send them an email 
    'Add code to send email here 
rec.MoveNext 

'Now update the table so these guys don't get emailed again 
dim MySQL as String 
MySQL = "UPDATE MyQueryName SET EmailSent = 'True'" 
DoCmd.RunSQL MySQL 

Ce qui précède est tout « Aircode » et est non testé, mais devrait vous mettre dans la bonne direction.

Assurez-vous simplement que EmailSent = False est une condition dans votre requête.

+0

... et pour que le code envoie l'email via CDO, voir la réponse correspondante [ici] (http://stackoverflow.com/a/19594875/2144390). –