OVH Cloud OVH Cloud

Répétition automatique d'actions préventives

2 réponses
Avatar
Antoine M
Salut à tous,
Je suis novice avec Access et voilà ce que je cherche à faire.
J'ai créé un formulmaire d'actions préventives de maintenance qui sont ders
tâches répétitives. Il y a donc les champs suivants :
-la date d'échéance de l'action,
-la date de l'action
-la fréquence de l'action
-le code de la machine
Je souhaiterai que l'enregistrement suivant se crée automatiquement pour la
même machine et que l'échéance de cet enregistrement soit la somme de la
fréquence et de la date de l'action de l'enregistrement précédent

2 réponses

Avatar
Claude cinéphile
Salut Antoine,

Je ne suis plus tout à fait novice sur Access, mais je pratique peu le
visual Basic.
Voici donc une solution "simpliste" que j'ai imaginée pour mon propre compte.

"Gestion d'un planning personnel avec tâches répétitives et prologation
automatique des tâches arrivées à échéance". Le problème est similaire au
tien.

Il faut agir au niveau de la table des tâches et adapter le formulaire selon
que l'on veut afficher ou non les tâches échues.

Phase 0 : ajouter un champ "déja fait", de type Oui/Non dans la table des
tâches.
Phase 1 : une requete Création de table du type ci-dessous (SQL) pour
extraire les enregistrement devant faire l'objet d'une prolongation (critère
de date (probablement échue) et déjà fait =non).
Le résultat de cette requête est une nouvelle table "pour mise à jour" avec
les nouvelles dates d'échéance. Elle est de structure identique à la table
principale.
La date d'échéance est la nouvelle date et le code "déjà fait "e st à Non
SELECT Planning!Date+Planning!FRéquence AS [Date], Planning.[Type d'action],
Planning.Périodicité, Planning.Fréquence, Planning.[Code Maj] INTO [Pour MAJ
Planning]
FROM Planning
WHERE (((Planning.[Code Maj])=0) AND ((Planning.Date)<Date()));

Phase 2 : une requête sur les mêmes critères que la 1 pour mettre "déja
fait" à Oui.
UPDATE Planning SET Planning.[Code Maj] = 1
WHERE (((Planning.[Code Maj])=0) AND ((Planning.Date)<Date()));

Phase 3 : Une requête "ajout" pour ajouter les enregistrement de la table
"pour mise à jour" à la table principale.

Optionnel : l'épuration de la table des tâches pour les anciennes tâches
échues.

Les trois requêtes se lancent par une marco à un moment décidé par toi (fin
de journée, fermeture du formulaire...)

Fais un essais avec une petite table de test de trois ou quatre
enregistrements.
J'espère que celà t'aidera.

Cordialement.

Salut à tous,
Je suis novice avec Access et voilà ce que je cherche à faire.
J'ai créé un formulmaire d'actions préventives de maintenance qui sont ders
tâches répétitives. Il y a donc les champs suivants :
-la date d'échéance de l'action,
-la date de l'action
-la fréquence de l'action
-le code de la machine
Je souhaiterai que l'enregistrement suivant se crée automatiquement pour la
même machine et que l'échéance de cet enregistrement soit la somme de la
fréquence et de la date de l'action de l'enregistrement précédent


Avatar
Claude cinéphile
Pour Antoine,

J'ai oublié le SQL de la phase 3 :
INSERT INTO Planning ( [Date], [Type d'action], Périodicité, FRéquence,
[Code Maj] )
SELECT [Pour MAJ Planning].Date, [Pour MAJ Planning].[Type d'action], [Pour
MAJ Planning].Périodicité, [Pour MAJ Planning].Fréquence, [Pour MAJ
Planning].[Code Maj]
FROM [Pour MAJ Planning];

A bientôt de tes nouvelles.