Calculer date d'échéance selon autre table

Résolu/Fermé
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 - 7 déc. 2016 à 21:57
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 - 8 déc. 2016 à 00:49
Bonjour,

Dans ma BDD Access, j'ai une table (T_liste_formations) et une autre table, avec les dates de période de paie (T_Paies).

J'aimerais, dans T_liste_formation, calculer un champ pour l'échéance d'un relevé à produire, en fonction de la date de formation. Ou encore, dans une requête... en fait, je ne sais pas trop où, ni comment effectuer le calcul.

Champs impliqués :
T_liste_formation!Date_formation
T_Paies!Lundi_approb_rel

Ce que je souhaite, c'est que selon la date de la formation, le résultat soit le lundi de la prochaine période d'approbation des relevés (soit aux 2 semaines).

J'espère être claire!

(Au cas où, un exemple :
Lundi approbation : 2016-11-28; 2016-12-12; 2016-12-26; 2017-01-09; ...
Alors si date de la formation = 2016-12-09, résultat = 2016-12-12
Si date de la formation = 2017-01-02, résultat = 2017-01-09, etc.)


Merci de me venir en aide!

1 réponse

yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474
Modifié par yg_be le 7/12/2016 à 23:27
J'ai supposé que tu voulais, pour chaque date de formation, trouver la date de paie suivante. Suggestion :
SELECT Date_formation, min(Lundi_approb_rel) as echeance
FROM T_liste_formation,  T_Paies where Lundi_approb_rel>Date_formation
group by Date_formation;
Cela donne quoi?
0
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 40
8 déc. 2016 à 00:35
Merci de cette réponse rapide!

Très, très bonne piste. Sans être experte en VBA, ce que j'en comprends me semble logique...

Questions :
1. Où dois-je insérer le code? Dans la T_liste_formations? Dans un module? Autre?
2. Pourquoi ça ne fonctionne pas? (J'ai eu plusieurs messages d'erreur.)

Voici comment j'ai d'abord finalisé le code :
Sub CalculEcheance()

SELECT Date_formation, min(Lundi_approb_rel) as echeance
FROM T_liste_formations, T_Paies WHERE Lundi_approb_rel>Date_formation
group by Date_formation;

End Sub


(J'ai corrigé le nom de la table, il manquait un "S" (ma faute)!)

Puis j'avais des messages d'erreur que j'ai fini par régler partiellement, à coups de recherche web, pour donner :

Sub CalculEcheance()

Dim strSQL As String

strSQL = "SELECT Date_formation, DMin(Lundi_approb_rel,T_Paies) as echeance"
strSQL = "FROM T_liste_formations, T_Paies WHERE lundi_approb_rel>Date_formation"
strSQL = "group by Date_formation"

End Sub


Maintenant, je n'ai plus de message de bogue, mais rien ne s'exécute.
J'ai mis le code dans un module pour l'instant, ne sachant où l'insérer.

Où est mon erreur? Que dois-je faire?

Mes tables sont en relation (Date_formation >>> Lundi_approb_rel), est-ce correct? (ou superflu?)
0
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 40 > ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020
Modifié par ButteDuLac le 8/12/2016 à 00:50
Ha, ha, ha!!!!
C'est de moi que je ris!
Je viens de comprendre... c'est le code SQL à mettre en création de requête, mode d'affichage SQL!
Je pensais que c'était une macro!!!! Grand dieu!

Oh, la, la!

Merci!!!!!!!! :) :D :) (et petit bonhomme gêné, je ne sais pas comment!)
0