moudz84
Messages postés64Date d'inscriptionmardi 5 septembre 2006StatutMembreDernière intervention27 septembre 2007
-
24 sept. 2007 à 10:08
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 24 sept. 2007 à 11:38
Essaie comme ceci pour voir
Set lRecordset =
CurrentDb.OpenRecordset("SELECT * FROM " & lRecordsetTable("nomTable") & " where CLng(DTMAJ) < CLng(mdDateMiseAJour)", dbOpenDynaset)
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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.