I am working on the design and eventually development of a rotating shift calendar in access 2007 OR excel 2007. I am biased, so I believe that access 2007 is the better option due to querying etc.
Work week defined as Friday to Thursday for on call and Monday-Friday for regular work week.
-User input of overtime/on call availability
-Listing shifts required with multiple shifts per day based on role within company
-Listing book shifts based on rotating shift
-Ability to recalculate rotating shift from a certain date (e.g. initially there was 8 employees on an 8 week rotation, but two quit and one was hired so now as of the quit date and hire date we need to recalculate rota based on 7 employee 7 week rotation.
-need the ability to have certain users hard coded in so that they always are on the same rotation and the same days regardless of employees being hired and leaving, requiring recalculation. additionally, when the recalculation of the booking happens, those hard coded employees shifts should not be altered at all and new bookings should work around the hard coded individuals.
Structure of database so far:
Roles (of employees function in company / scheduled shift)
Groups (main division of business units within business)
Departments (subgroups of groups)
Availability (employee-submitted availability for on call / OT shifts)
worksched (required shifts)
ShiftSched (booked shifts)
workshiftanalysis (query that compares worksched and shiftsched, determining shift overage and underage for booking)
-best way in vba to autopopulate shift bookings against worksched based on date, role, and shift ( day or night). Idea: base order on ID in employee schedule, checking last employee to work on that shift rotation and then just cycling through IDs as they grow.
-structure alterations of database
-best way to display this data, considering that there could be up to 8 roles (groups of shifts) going with up to 60 people.
Thank you so much in advance. I would like to design this with scalability in mind, so I would prefer not to just generate a table and have users locked in place.
Thank you so much to the whole community for helping.