I do not believe Jet (the database engine Access uses) supports table-level triggers, so you'll need to use a macro or VBA code in a form to trigger the extra record.
You don't need a complex set of expressions or even VBA to sort Access date values by specific components, such as month or year. Use DatePart() and sort on its results. When grouping date values at ...