In its simplest incarnation you would have only one table:
tblTasks
TaskID autonumber PK
TaskDescription text(255) required
TaskDueDate datetime required?
TaskCompletedDate datetime
Comments memo
Then create a query to show the non-completed ones:
select * from tblTasks
where TaskCompleteDate is null or TaskCompleteDate=dateadd("d", -1, Date())
order by TaskDueDate
You can use this query as the basis for a datasheet form showing the records just completed, and to be completed.
I'm leaving recurring tasks as an exercise for you.