There are 2 parts to consider - the database (Access) part and the script (VBA) part:
1. Database part: you need at least 2 tables, for example:
First table called 'shift' that contains 2 fields: 'shift_id' (primary key), 'shift_desc'
that stores the patterns, e.g.
shift_id = 1, shift_desc= 'Sunday IN Monday IN Tuesday IN Wednsday OFF Thursday OFF Friday IN Saturday IN'
Second table called 'employee_shift' that contains at least 2 fields: 'employee_id' (primary key), 'employee_shift_id' (foreign key to 'shift_id' in the 'shift' table), etc
employee_id = '1'
employee_shift_id = 1
etc
That should be suffice for the database part.
2. As for generating the shift roster, that should be done by the script (you are using VBA) based on the business rules mentioned in your question.
Last but not least, you should learn database design in order to really understand how databases are designed and work, start from
Introduction to database design[
^]