Requete Sql avec date du jour automatique!

Résolu/Fermé
Messages postés
111
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
5 juillet 2012
-
Messages postés
16203
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 janvier 2022
-
Bonjour,

J'ai besoin de votre aide avec une requête SQL

Je vous explique, Je créer un UserForm (ValidAction) sous VBA-Excel Qui me sert pour valider (Dire quelles sont effectuées car on a une date de délai et une date de réalisé) des actions afin d'éviter d'autres accidents (Réparer la pièce, Rangement dans autres boîtes, etc...) donc j'ai créer des champs de recherches qui m'alimente une ListBox (ListBoxDetail) en mettant une requete SQL derriere pour m'afficher que les Accidents (AT) dont les actions ne sont pas encore réalisé. Et maintenant mon maître de Stage voudrais que d'une part le type de recherche et d'alimentation de la ListBox reste le même et que en plus, lorsque l'utilisateurs click sur un bouton cela nous affiche dans la ListBox que les Accidents (AT) dont la date d'accident et la date du jour sont supérieur à 3 mois (soit 90 jours...) Et là ! C'est le drame je suis bloquéé je n'ai jamais fait ça !

Si vous pouvez m'aider ce serai avec grand plaisir ! HELP ME PLEASE !
Bull_0125

5 réponses

Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
202
Si je comprend bien ta demande, tu veux savoir quelle est la syntaxe a utiliser en SQL pour récupérer la date du jour - 3 mois ?

Si oui : SELECT (GETDATE() - 90) --Affichera la date d'il y a 90 jours par rapport au jour courant.

Tu n'a plus qu'a intégrer le (GETDATE() - 90) dans ta clause de requête.
Messages postés
111
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
5 juillet 2012

Bonjour
Merci de ta réponse !
J'essaye tout de suite !
A+
Messages postés
111
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
5 juillet 2012

Re,
J'ai essayer plusieurs requete :
SELECT DISTINCT  GETDATE() - 90),at.num_at, at.Date_at, T.code_type, at.nom_at, at.prenom_at, C.nom_centre, UP.nom_up, UEP.nom_uep, AT.Nom_Equipe, M.nom_manager
FROM [at], TypeBless AS T, Managers AS M, Centre AS C, UP, UEP, Actions AS A
WHERE (((T.num_type)=[AT].[num_type])
AND ((M.num_manager)=[AT].[num_manager]) 
AND ((C.num_centre)=[AT].[num_centre]) 
AND ((UP.num_up)=[AT].[num_up]) 
AND [AT].num_at=((A.num_at)) 
AND ((UEP.num_uep)=[AT].[num_uep])) 
AND nom_centre ='PMT'
And Realise Is null


SELECT DISTINCT  at.num_at, at.Date_at, T.code_type, at.nom_at, at.prenom_at, C.nom_centre, UP.nom_up, UEP.nom_uep, AT.Nom_Equipe, M.nom_manager
FROM [at], TypeBless AS T, Managers AS M, Centre AS C, UP, UEP, Actions AS A
WHERE (((T.num_type)=[AT].[num_type])
AND ((M.num_manager)=[AT].[num_manager]) 
AND ((C.num_centre)=[AT].[num_centre]) 
AND ((UP.num_up)=[AT].[num_up]) 
AND [AT].num_at=((A.num_at)) 
AND ((UEP.num_uep)=[AT].[num_uep])) 
AND nom_centre ='PMT'
And Realise Is null
and at.date_at in (Select (GETDATE() - 90) from at);


SELECT DISTINCT  at.num_at, at.Date_at, T.code_type, at.nom_at, at.prenom_at, C.nom_centre, UP.nom_up, UEP.nom_uep, AT.Nom_Equipe, M.nom_manager
FROM [at], TypeBless AS T, Managers AS M, Centre AS C, UP, UEP, Actions AS A
WHERE (((T.num_type)=[AT].[num_type])
AND ((M.num_manager)=[AT].[num_manager]) 
AND ((C.num_centre)=[AT].[num_centre]) 
AND ((UP.num_up)=[AT].[num_up]) 
AND [AT].num_at=((A.num_at)) 
AND ((UEP.num_uep)=[AT].[num_uep])) 
AND nom_centre ='PMT'
And Realise Is null
and at.date_at  >= (GETDATE() - 90);


Mais rien ne marche :/
Messages postés
16203
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 janvier 2022
1 580
Bonjour,

GETDATE() n'existe pas en sql ACCESS. Prendre Now().

Ex:

WHERE at.date_at>now()-90

Bonne suite
Messages postés
111
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
5 juillet 2012

Re,
Ok j'essaye
Messages postés
111
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
5 juillet 2012

re,

Dans une table Action j'ai le champs Réalisé , et je veux les AT (Accidents) dont les actions ne sont pas Realiser donc le champ IS NULL et que la date_at a plus de 90 jours par rapport a la date d'aujourd'hui
Messages postés
16203
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 janvier 2022
1 580
Re,

Ok, je regarde.

A+
Messages postés
111
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
5 juillet 2012

Re,

Merci beaucoup :)
Messages postés
16203
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 janvier 2022
1 580
Re,

SELECT AT.date_at, Actions.realise, ACTION_AT.num_at, ACTION_AT.num_action
FROM [AT] INNER JOIN (Actions INNER JOIN ACTION_AT ON Actions.num_action = ACTION_AT.num_action) ON AT.num_at = ACTION_AT.num_at
WHERE (AT.date_at<=Now()-90) AND (Actions.realise Is Null);


A adapter suivant vous besoins

Bonne uite
Messages postés
111
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
5 juillet 2012

Re,

Je veux pas passé pour un c** mais je ne comprend pas INNER JOIN.. Pour ma part je dois ouvrir que Actions et AT
BDD : http://ww38.toofiles.com/fr/oip/documents/mdb/accidents.html
Messages postés
16203
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 janvier 2022
1 580
Re,

Je veux pas passé pour un c** mais je ne comprend pas INNER JOIN..

Petit plaisantin. Vous faites evoluer votre base au fur et a mesure que vous avancez dans vos problemes. Donc n'ayant pas eu la derniere mise a jour, je vous ai fourni une requete en fonction de ce que j'avais.
Je regarde avec votre derniere (j'espere) mise a jour.

A+
Messages postés
111
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
5 juillet 2012

Re,
Désolé je l'ai changé hier car Dans mon MCD j'avai pour la relation AT => Actions : 0,N et Actions <=AT : 1,1 Donc pas besoin de table Intermédiaire.. :/
Messages postés
16203
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 janvier 2022
1 580
Re,
Que vous le vouliez ou pas, si vous utilisez plus d'une table, il y a INNER JOIN!!!!!!!!
Messages postés
111
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
5 juillet 2012

Re,
Oui oui pas de soucis .. D'habitude je fait mes jointures : Table.cléprimaire= table.Cléetrangere mais pourquoi pas apprendre inner join