Look at this:
strSQL="SELECT staff.Staff_ID, staff.Staff_Password, staff.First_Name, staff.Staff_Last_Name, staff.Email_Address FROM staff;"
And then compare it to this:
ONE of those is clearly wrong. I'm betting on the SELECT.
You know, there is NO REASON to use "tablename.fieldname" instead of just "fieldname" when there is only one tablename in the query.
So you could have coded that as
strSQL="SELECT Staff_ID, Staff_Password, First_Name, Staff_Last_Name, Staff_Email_Address FROM staff"
(assuming my guess as to the culprit is correct).