Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/11/2011, 16h36   #1
Nouveau Membre du Club
 
Inscription : octobre 2009
Messages : 127
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 127
Points : 33
Points : 33
Par défaut Créer un formulaire d'alerte

Bonjour,

Je gère, via ma base access, des contrats d'entretien.

Nous réalisions de 1 à 6 visites d'entretien par an avec 1 ou 2 contrôles spécifiques par /an.
La fiche client contient les renseignements suivants:
nombre de visite annuelle (liste déroulante de la table "Type contrat")
Date de la dernière visite (Table fiche intervention)
Date du dernier contrôle (Table "Nombre contrôle")

Je crée pour chaque entretien une fiche d'intervention en spécifiant "Entretien" (liste déroulante table "Analytique"). Lorsque cet entretien est fait je complète la fiche avec le temps passé, l'opérateur, la date...
Donc j'aimerais créer un formulaire d'alerte mensuelle qui m'indique quels entretiens doivent avoir lieu tel ou tel mois.

Donc j'ai pensé créer une requête ou un code VBA qui dit:
"Si 1 visite/an, date du dernier entretien + 365 jours = prochain visite, Si 2 visites, date du dernier entretien + 180 jours = prochain visite" etc...; "Si un contrôle annuel, date du dernier contrôle + 365 jours = prochain contrôle, si 2 contrôles annuels, date du dernier contrôle + 180 jours = prochain contrôle" (sachant que les contrôles doivent être réalisés dans la mesure du possible en même temps que les entretiens).

Mais je ne vois pas comment m'y prendre, quelqu'un aurait-il une piste à me donner pour que je construise cette alerte qui se déclencherait le 1er lundi du mois et que je pourrais imprimer via un formulaire (lorsqu'elle serait imprimée elle n'apparaitrait plus)?

Merci d'avance
maringot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 18h24   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,


Cela pourrait être :
1re étape : créé un échéancier avec un enregistrement pour la prochaine intervention de chaque contrat.
2e étape : détecter s’il y a lieu de regrouper plusieurs interventions rapprochées pour un même client (ce que tu expliques avec contrôle et entretien) et adapter les deux dates pour qu’elles coïncident.
3e étape afficher (formulaire ou liste).
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 18h39   #3
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 479
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 479
Points : 7 568
Points : 7 568
Tu peux utiliser DateAdd() pour ajouter des jours, des années ou des mois à une date et DateDiff() pour calculer un écart entre 2 dates (Attention, faire des test avec DateDiff() car les résultats peuvent être suprenant).

À partir de là tu devrais facilement pouvoir calculer tes dates.

Un truc du genre

Code sql :
1
2
SELECT [TableEntretient].* FROM TableEntretient WHERE
DateAdd("yyyy",1,[DateEntretient]) beetween Date() AND DateAdd("d",7,Date())

Va te donner tous les entretients fait il y a un an qui doivent être fait dans la semaine. Mais ne te permmettra pas de trouver ceux que tu as manqué et qui n'ont pas été fait dans les délais.

Code sql :
1
2
SELECT [TableEntretient].* FROM TableEntretient WHERE
DateDiff("yyyy",[DateEntretient],Date)>=1

Va te donner tous les entretients qui ont un nan est plus, il conviendrait d'ajouter un critère pour s'assurer que c'est bien le dernier entretient. Un truc avec MAX probablement.

Enfin, un astuce toute bête consiste à créer un champ 'Date de prochaine visite' et soit le faire calculer à la saisie soit l'entrer manuellement.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 14h44   #4
Nouveau Membre du Club
 
Inscription : octobre 2009
Messages : 127
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 127
Points : 33
Points : 33
Bonjour,

Merci pour vos conseils qui m'ont permis de créer cette alerte.

Cordialement,
Maringot
maringot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h10.


 
 
 
 
Partenaires

Hébergement Web