If we consider how windows (for example) handles permissions and rights then maybe we could be on the right path. I don't think you need seperate tables for Directors and Managers. Create a table for storing EmployeeRole which will have three records; "Director", "Manager", "User". Create another table to store the lists of database users. So it will have "User Name", "Role", "DateAdded". To keep things simple assign one role to each user. When the user logs in it will run a function that will reference the EmployeeRole table using DLookup and disable/enable buttons where necessary. Your function will have a list of all the command buttons that it should enable and disable and its paramter will be "Role". You use a Select case to check against that and perform the relevant enable/disable operations. You will need to call this function for everyform that is opened. Or just have a switchboard and disable/enable where necessary. Just a suggestion, what do you think?