Лучше такое делать не в конце месяца, а в начале. Скажем, при включении программы, срабатывает макрос автоэкзек или загрузочная форма и опрашивается дата. Именно дата, а не месяц, поскольку при переходе через год возникнут проблемы с месяцем. А из даты получить месяц не проблема
If Month(dmax("Дата", "Таблица"))<>Month(date) Then
Currentdb.Execute("Insert Into Таблица Values [Дата]=" & Date & ", [x]=0")
End If
Если же программа работает в режиме 24*7, то должен быть таймер, чтобы отследить перемены