Bonjour à tous,
Je suis entrain de mettre en place une base de donnée Access pour la gestion de matériel de prêt.
J'aimerai avoir une alerte par mail lorsque la date de restitution est dépassée.
Auriez-vous des idées?
Bonjour à tous,
Je suis entrain de mettre en place une base de donnée Access pour la gestion de matériel de prêt.
J'aimerai avoir une alerte par mail lorsque la date de restitution est dépassée.
Auriez-vous des idées?
Bonsoir,
regarde ce fil de discussion :
http://www.developpez.net/forums/d12...t-mail-alerte/
Cordialement
si le message est pertinent : un petitsi votre problème est résolu, n'oubliez pas le Tag
Merci
Bonsoir,
Merci pour la réponse mais cela ne correspond pas a mon besoin.
Je voudrais, enfin si possible, recevoir un mail d'alerte dès qu'un article prêté n'a pas été restitué a temps.
Exemple: location d'un dvd date de retour du DVD le 27/03/2013. Toujours pas de restitution du DVD un mail m'avertit que le DVD n'a pas été rendu.
Bonjour,
Je commencerais par faire une requête qui vérifie si un prêt est en retard. Cette requête fonctionnerais "sur minuterie" d'un formulaire menu général ou autre, donc dès que l'application est ouverte tu fais systématiquement la vérification. Si un prêt est en retard tu lance le code suivant:
Naturellement il y a un peu d'ajustement à faire. Exemple: un champ qui test si le message à déjà été envoyer pour ne pas envoyer X fois le même message etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Dim outobj As Outlook.Application Dim outappt As Outlook.MailItem Set outobj = CreateObject("outlook.application") Set outappt = outobj.CreateItem(olMailItem) With outappt .To = Adresse email .Body = Le message que tu veux .Subject = Le sujet du message .Importance = olImportanceHigh 'L'importance du message End With ' Libérez la variable objet Outlook. Set outobj = Nothing
Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
Si tout est OK, n'oubliez pas de cliquer sur
Pour ma requete concernant la date dépassée j'utilise une mise en forme conditionnelle pour l'instant, Cela me surligne en rouge les dates quand elle sont dépassées.
Mais j'aimerais avoir une alerte quand j'ouvre le fichier des dates depassées sur un pop up ou autres, avec la possibilité d'envoyer un mail de rappel toute les 48heures.
Pour ce que tu veux faire la mise en forme conditionnelle ne fera pas l'affaire. C'est bon pour ton formulaire mais ça ne te donne pas la possibilité de rappel.
Un Pop-up pourrait être activé sur l'évènement "Sur ouverture" de ton formulaire. Mais cela ne se fait pas sur une mise en forme conditionnelle. De plus la possibilité d'envoyer un mail tout les 48hres suppose que tu inscrit dans une table l'historique des envoie de mail sinon comment tenir le compte... Pour les envoies de mail c'est comme le code plus haut.
Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
Si tout est OK, n'oubliez pas de cliquer sur
D'accord mais avec quelle requête "date dépassée"? Je n'arrive pas a trouver le code correspondant ...
Supposons ta table tblLocation avec certains champs mais un en particulier "Date_Retour" et aussi "Nom_Locateur"
Cela te renvoie tous les enregistrements qui ont une date de retour avant aujourd'hui. Tu peux avoir un Pop-up qui va te donner le nom des individus qui sont fautifs. Le code pourrait ressembler à ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT tblLocation.* FROM tblLocation WHERE (((tblLocation.Date_Retour)<#" & Date() & "#));"
Pour le reste cela dépend de ce que tu veux faire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Private Sub Form_Load() Dim db As DAO.Database Dim rst As DAO.Recordset Dim strSQL As String, strMessage As String strSQL = "SELECT tblLocation.* FROM tblLocation WHERE (((tblLocation.Date_Retour)<Date()));" strMessage = "" Set db = CurrentDb Set rst = db.OpenRecordset(strSQL) If rst.EOF = False Then While rst.EOF = False If strMessage = "" Then strMessage = rst("Nom_Locateur") Else strMessage = strMessage & Chr(13) & rst("Nom_Locateur") End If rst.MoveNext Wend MsgBox strMessage, vbInformation End If rst.Close Set rst = Nothing Set db = Nothing End Sub
Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
Si tout est OK, n'oubliez pas de cliquer sur
J'ai une erreur de syntaxe. Ma table "Pret" et mon champs date_de_fin:
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT Pret.* FROM Pret WHERE (((Pret.Date_de_fin)<#" & Date() & "#));"
Désolé c'est mon erreur. Dans ta requête pas besoin de mettre # avant et après la fonction Date()
Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
Si tout est OK, n'oubliez pas de cliquer sur
J'ai modifié les #, cependant il me demande d'enlever les " de fin. et des que je lance la requete access me demande d'entrer une valeur à Pret.date_de_fin.
je vien de trouver :
Mainetant je fais en sorte qu'elle ce lance à l'ouverture du fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT Pret.* FROM PretWHERE (((Pret.[Date de fin])<=Date()));
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager