Créer avis d'échéance MsgBox sous ACCESS

Résolu
arno51100 Messages postés 17 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 juin 2006 - 21 juin 2006 à 12:18
arno51100 Messages postés 17 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 juin 2006 - 30 juin 2006 à 15:11
Bonjour,

Je débute sous ACCES, je me suis créé une base de données dans laquelle je gère des dates et j'aimerai qu'une MsgBox s'affiche, à l'ouverture de ma base de donnée, pour m'avertir un mois avant l'arrivée d'une échéance ou d'un événement (comme sous outlook par ex ).

pour être clair voici un ex de ce q je voudrai :
dans une table , j'ai  un champ "Nom"  Monsieur X ... et un autre champ "date changement " 01/12/06

j'aimerai qu' à l'ouverture de ma base de donnée, , qu'une MsgBox s'affiche, un mois avant la date précisée,par ex au 01/11/06, et  me signale "Attention Changement"
j'ai réussi à créer la MsgBox grace à un outil trouvé sur le site mais je ne parviens pas à trouver les codes pour paramétrer les conditions d'ouverture de la MsgBox.

merci de vos réponses car je m'en sors pas

30 réponses

arno51100 Messages postés 17 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 juin 2006
23 juin 2006 à 17:04
en fait ca marche pas car qd je clique sur une date du champ "date_chgt_palier" la msgbox s'affiche à chaque fois mais le message change selon la date
ex :si la date c'est le 01/10/2011"c le message "alerte changement... entre cette date 01/10/2001 et aujourdh'ui le..."
par contre si je clique sur autre date par ex le "01/09/2015" ca me mets le meme message "alerte changement... entre ... 01/09/2015" et aujourd'hui le..."
donc ca va pas !
0
erefdatacomputing Messages postés 165 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 24 avril 2018
23 juin 2006 à 18:54
C'est logique !!!

Et si tu cliques sur une date qui est 31 jours avant aujourd'hui ???
je pense que ça doit marcher (pas de message) !!!???

J'explique (ou alors je n'ai pas compris ce que tu cherche à faire ??):

Qu'en on écrit:

If DateDiff("d", Date_Chgt_Palier, Date) <= 30 Then MsgBox ("Alerte Changement de Palier entre cette date " & Date_Chgt_Palier & " et aujourd'hui " & Date)

le test se fait entre 2 dates, aujourd'hui (Date) et le jour cliqué (Date_Chgt_Palier) avec pour consigne de nous alerter quand la différence entre les 2 est <= à 30 jours.
Donc si tu cliques sur le 23/06/2008, il y a -700 jours d'écart (environ) entre cette date et aujourd'hui, donc le résultat est bien <= à 30 d'où le message d'alerte.

le but du jeu maintenant, c'est qu'à l'ouverture de ta table, tu puisse faire le trie entre ceux qui correspondent au test, et ceux qui ne sont pas concernés !!

(Tu n'aurais pas VB6 par hasard ???   le Pb serait déjà réglé !!  car je n'ai jamais pratiqué en VBA !!!)

Est ce que tu peux ouvrir des recordset et faire des requètes SQL pour trier les enregistrements, et les afficher dans une nouvelle table ???

Je comprends vite mais il faut m'expliquer longtemps et tout en détails !!!
0
arno51100 Messages postés 17 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 juin 2006
26 juin 2006 à 14:47
bonjour,

c surement logique mais j'suis paumé en fait !
j'veux le même style de message que sur un agenda outlook par ex  lorque l'on inscrit une tache il y a un rappel à 15 mn, bon ben moi j'veux un rappel à un mois
dc si je comprend bien ta reflexion c'est pas  <=30 ou pas la bonne formule q j'ecris car savoir en juilet 2006 qu'un chgt est prévu en septembre 2008, ca n'a aucun intéret . ce qsui m'interesse c de savoir en juillet 2006 qu'unchgt est prévu pour tellepersonne en aout 2006, un point c'est tout, et en aout 2006 qu'un chgt est prévu pour telle autre personne en septembre 2006, etc...et ce chaque mois.

"Est ce que tu peux ouvrir des recordset et faire des requètes SQL pour trier les enregistrements, et les afficher dans une nouvelle table ???"
je sais pas trop si je peux ou pas faire cela mais en fait je pensais créer une requete sur ma table "évolution" pour que n'apparaissent que les noms des personnes pour qui un changement est à prévoir. mais je suis toujours confronté au même probleme car je ne sais pas quel critére écrire pour limiter les dates à moins d'1 mois lorsque je créé cette requete sous access .
car je pourrai ensuite progammer l'ouverture de cette requete au démarrage de ma BDD et je visualiserai ainsi les noms et date de changement pour le mois suivant .

et faire en sorte qu'un simple changement de couleur apparaisse au niveau du nom et de la date concernés, est ce possible, ce serait moins pratique car sille nombre de pesonnes augmente considérablement je vais avoir une table tres longue, mais si c'est plus simple à réaliserje peux me contenter de cela?

merci
arno
0
erefdatacomputing Messages postés 165 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 24 avril 2018
26 juin 2006 à 20:21
Bonjour !!

réponds à cette question SVP !!!

Et si tu cliques sur une date qui est 31 jours avant aujourd'hui ???
je pense que ça doit marcher (pas de message) !!!???

rappel:   If DateDiff("d", date_du_jour, date_d'échéance) <= 30 Then MsgBox "échéance Ok !!"

Je comprends vite mais il faut m'expliquer longtemps et tout en détails !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arno51100 Messages postés 17 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 juin 2006
28 juin 2006 à 10:44
salut !
pour répondre à ta question , g changé toutes les dates pour les mettre antérieurement à plus de 31 jours d'ajdi, et là je n'ai aucun message.
mais en meme tps je vois pas trop l'intéret... car cela signifie que les dates sont passées... et que j'ai manqué l'échéance ....
ou alors tu as qqch derriere la tete et tu sais comment faire mtnt. 

petite question, dans la formule il faut mettre "date_du_jour" ou tout simplement "date" ?
0
erefdatacomputing Messages postés 165 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 24 avril 2018
29 juin 2006 à 00:27
Salut !!!
Récapitulons:

si j'ai bien compris ,   dans ta BDD tu as une colonne qui contient des dates futures d'échéance ???  ce que tu appelles:
                                  date_d'échéance

et tu veux faire à chaque fois que tu ouvres ta BDD un test pour savoir si Aujourd'hui (donc Date) est à moins de 30 jours de la date d'échéance ?

Donc la fomule est la suivante:

If DateDiff("d", Date, date_d'échéance) <= 30 Then MsgBox "échéance Ok !!"

Normalement, si dans ta BDD tu as dans la colonne date_d'échéance par exemple : 01/08/2006 , aujourd'hui tu n'auras pas de message, ni demain, par contre, dès que tu seras à moins de 30 jours du 01/08/2006, le message apparaittra et ce pour toujours (sauf si tu lui mets une 2ème limite) ....

si ce n'est pas le cas , alors là, j'y perd mon latin, ou bien il y a une subtilité qui m'échappe !!!

Je comprends vite mais il faut m'expliquer longtemps et tout en détails !!!
0
arno51100 Messages postés 17 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 juin 2006
29 juin 2006 à 11:40
salut !

c tout à fait ca !
et à mon avis si la Msgbox apparraissait toujours c parce que j'avais une date au 01/06/06 et a priori tu dis que le message apparaittra pour tjs à moins de lui mettre une 2nde  limite, ce pourrait être par ex au plus tard 2 jours apres cette date d'échéance, ainsi si g bien compris la msgbox s'affichera chaque jour à partir de j-30 jusque j+2 c bien cela ?
par ex : date d'échéance dans ma collonne au 1/09/06 : affichage de la msgbox à partir du 2/08/06 et jsq'ua 03/09/06 !
si c possible cela me convient.
pour fixer la seconde limite, faut il utiliser "between .... and" ? ou alors ya + simple car j'avais déja essayé mais il me marquait une erreur de compilation ou de syntaxe, je sais plus exactement.

merci de ton aide

Arno
0
arno51100 Messages postés 17 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 juin 2006
29 juin 2006 à 17:23
c bon ca marche ! merci bcp !
par contre il me reste un détail à régler car pour l'instant l'intéret de la msgbox est relatif en effet je suis obligé de cliquer dans mon formulaire sur la ligne de la personne concernée pour qu'elle s'affiche ! c plutot pas normal non?!?!
j'ai créé la procédure évenementielle sur "activation" du formulaire et pourtant pas sur "click" du champ "date d'échéance" de ce même formulaire.
car là je suis obligé de faire ligne par ligne donc autant que je regarde les dates 1 à 1
j'suis sur qu'on approche de la solution, peut etre qu'il faut créé l'évenement sur autre chose que sur activation, j'ai essayé "réception focus" et sans effet !
si on ne parvient pas à ce q la msgbox s'affiche automatiquement des l'ouverture du formulaire sans etre obligé de cliquer sur chaque ligne,(et l'idéal serait même que dans la msgbox apparaisse le ou les noms des personnes concernées...) peut etre qu'il serait plus judicieux de mettre un code couleur différent pour les dates concernées au moins je visualiserai les changements à venir
qu'en pense tu?
merci bcp
arno
0
erefdatacomputing Messages postés 165 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 24 avril 2018
29 juin 2006 à 23:59
Hello Arno....

Comme je te l'ai signalé, je n'ai jamais programmé en VBA !!
Je travaille sous VB6 !!!
Si tu étais toi aussi sous VB6, le problème serait déjà résolut !!
Je pense qu'il est possible de faire une recherche automatique dès l'ouverture de ta table.
Pose le question sur le site, en précisant que tu es en VBA, et que tu voudrais faire une recherche automatique dès l'ouverture de la table.

Désolé de ne pas pouvoir faire mieux !!!
et bon courage !!

Je comprends vite mais il faut m'expliquer longtemps et tout en détails !!!
0
arno51100 Messages postés 17 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 juin 2006
30 juin 2006 à 15:11
merci bcp tu m'a déja pas mal avancé !
0
Rejoignez-nous