Requete Sql avec date du jour automatique!

Résolu
Bull_0125 Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
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

Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
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.
0
Bull_0125 Messages postés 111 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
Merci de ta réponse !
J'essaye tout de suite !
A+
0
Bull_0125 Messages postés 111 Date d'inscription   Statut Membre Dernière intervention  
 
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 :/
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

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

Ex:

WHERE at.date_at>now()-90

Bonne suite
0
Bull_0125 Messages postés 111 Date d'inscription   Statut Membre Dernière intervention  
 
Re,
Ok j'essaye
0
Bull_0125 Messages postés 111 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Ok, je regarde.

A+
0
Bull_0125 Messages postés 111 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

Merci beaucoup :)
0

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

Posez votre question
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
0
Bull_0125 Messages postés 111 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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+
0
Bull_0125 Messages postés 111 Date d'inscription   Statut Membre Dernière intervention  
 
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.. :/
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,
Que vous le vouliez ou pas, si vous utilisez plus d'une table, il y a INNER JOIN!!!!!!!!
0
Bull_0125 Messages postés 111 Date d'inscription   Statut Membre Dernière intervention  
 
Re,
Oui oui pas de soucis .. D'habitude je fait mes jointures : Table.cléprimaire= table.Cléetrangere mais pourquoi pas apprendre inner join
0