Let's start with the very wrong assumption you made:
You wrote "
the records have the date in short date...".
No, they don't. "short date" is only the DISPLAY FORMAT used WITHIN ACCESS itself. Has NOTHING to do with what is stored in the DB. Here, read this:
http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=189
So all you need to do is get the events, in date order, nothing more:
Code:
<%
SQL = "SELECT eventDate, eventText FROM events ORDER BY eventDate " _
& " WHERE DateValue(eventDate) BETWEEN #1/1/2008# AND #12/31/2008# "
Set RS = yourAlreadyOpenConnectionObject.Execute( SQL )
...
%>
You can change the date range (the BETWEEN values) to whatever you need, of course.
And then the rest of it--grouping by months and days--you can do by following the principals of this:
http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=154
Where here the MONTH is the category and the individual days in the month (along with the text, of course) are the subcategories.