Date Sql/VBA

moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007 - 24 sept. 2007 à 10:08
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 25 sept. 2007 à 11:38
Bonjour tout le monde, j'ai un petit problèmedans la formation d'une base de données, je m'explique:

dans une base de données de 50 tables environs, un champ DTMAJ (date de mise a jour) est present dans chaqu'une de ces tables, je voudrais executer cette requete:

Set lRecordset = CurrentDb.OpenRecordset("SELECT * FROM " & lRecordsetTable("nomTable") & " where DTMAJ < #" & Month(mdDateMiseAJour) & "/" & Day(mdDateMiseAJour) & "/" & Year(mdDateMiseAJour) & "#", dbOpenDynaset)

lRecordsetTable("nomTable") est la liste des nom de toutes les tables de ma base de données

mdDateMiseAJour est une variable de type date (en VBA) qui a la valeur "30/12/2003"

mon probleme c'est que dans cetraine table je trouve des valeurs (dans le chap DTMAJ) comme "01/01/2000" et donc la requete marche pour ce cas, et pour d'autre table je trouve des valeur comme "01/01/2000 10:30:00" et dans ce cas ma requete sera vide....

comment je pourrai faire la même requete mais généralisé pour toutes les tables??
j'espère que j'ai été clair dans mes explications.
merci d'avance

6 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
24 sept. 2007 à 11:38
Essaie comme ceci pour voir
Set lRecordset =
CurrentDb.OpenRecordset("SELECT * FROM " & lRecordsetTable("nomTable") & " where CLng(DTMAJ) < CLng(mdDateMiseAJour)", dbOpenDynaset)

MPi²
0
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
24 sept. 2007 à 12:18
ya un truc qui va pas dans cette requete, DTMAJ est un champ dans une table on ne peut lui appliqué CLng non?
0
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
24 sept. 2007 à 15:48
personne n'a une reponse pour ma question???
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
24 sept. 2007 à 23:38
As-tu essayé ?
Une date n'est qu'un Long formaté

MPi²
0

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

Posez votre question
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
25 sept. 2007 à 09:24
oui oui j'ai essayer et ça na pas marché, dans ta requete tu utilise le CLng comme si c'etait une fonction de SQL et non pas de vba
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
25 sept. 2007 à 11:38
Sous quel logiciel travailles-tu ? sous Access exclusivement ?
Et où mets-tu ta requête ? dans une procédure ou dans l'utiltaire de requête d'Access ?

Je viens de faire un test dans l'utilitaire de requête d'Access avec cette requête, et ça me retourne les résultats escomptés...(?)
SELECT * FROM tbID where CLng(DateNaissance) > CLng(#1959-11-23#)

DateNaissance étant un champ Date, formaté comme la date inscrite entre les ##

En passant par une procédure VBA, ça devrait fonctionner aussi bien. Autrement, je ne vois pas.

MPi²
0
Rejoignez-nous