Derek, thank you I really like what you have done, and for taking the time and going into detail as to what I could do, and for adding the explanation notes on the script this will help me with  future DB builds. 

I was planning on hiding any buttons that would allow the roster to be edited.as rosters will be imported by csv
I have reattached again and tried with a hidden Tablegrid on form1. I don't know if I can have the Datepicker select first row and click on line with out using mouse to pull the required data, and keeping the Roster tables more like a backend?  and if this can be done I have other projects that this could be implemented on.   
But you guys are the experts so I'm happy to go with your recommendations.

Regarding ID_Staff key I have edited your Screenshot or is the ID supposed to be Unique?
Thanks for your help

Sorry to be a pain but I have run into two problems

1. Is it possible to have a search from form1 find the result on form2 to and return the value back to form1? I have a date search that I need to find name, finish time and shift notes of person on for a specific shift.

2. I have rosters that will be uploaded as CSV file with persons, name , shift dates and times. I created a table called staff to add persons name and photo. When I check the roster it seems that the photo is not picked up and that I need to add the photo again to every person and for every shift and roster. How do I link each photo to correct person.