Gustav Brock
Gustav at cactus.dk
Tue Apr 15 12:56:34 CDT 2008
Hi all Just a reminder should you need to create a list of dates for a period, present or future, in pure SQL. Here is how to create a dynamic list of dates for up to one year from any date. Create two small tables, tblDays with Integer values from 1 to 31, and tblMonth with Integer values from 1 to 12. Use these in a query with a Cartesian (multiplying) join as shown. <sql> PARAMETERS Date1 DateTime, Date2 DateTime; SELECT DISTINCT DateSerial( Year([Date1]), Month([Date1])-1+[tblMonth]![Month], Day([Date1])-1+[tblDays]![Day]) AS DateOfPeriod FROM tblDays, tblMonth WHERE DateSerial( Year([Date1]), Month([Date1])-1+[tblMonth]![Month], Day([Date1])-1+[tblDays]![Day]) Between [Date1] And [Date2]; </sql> A note: If you prefer, you can of course use tblDays with an alias for tblMonths as well by filtering on 1 to 12, thus using one table only. In that case a more neutral name than Day should be given the field holding the values. Or you could create a general purpose query, qdyMonth: SELECT [Day] As Month FROM tblDays WHERE [Day] Between 1 And 12 and use that for tblMonth. /gustav