ник: osmor
Общая идея наверное должна быть такой.
Если таблицы определяющие: Роли, пользователей, соответствие пользователей Ролям, и доступность контролов разным Ролям (именно ролям, а не пользователям, так проще управлять)
При загрузке формы, делаются доступными контролы доступные Роли текущего пользователя.
реализации могут быть разные. Правильнее всего, наверное, вынести этот функционал в отдельный класс. Но я так понимаю это ПОКА не Ваш случай (со всем уважением).
Тогда функция.
Если не нужно управлять доступностью на уровне записей, а только для формы целиком, то "Вешается" на событие загрузка формы.
В функцию в качестве параметра передается объект Form, текущей формы (ME).
В функции делается запрос к таблице определяющей доступность контролов. С условиями:
- текущая роль пользователя (должна браться из сеанса,пользователь, же авторизуется?)
- название открывающейся формы, его можно получить из переданного объекта
Результат запроса в рекордсет (Recordset)
После этого перебирая записи рекордсета устанавливаете свойства контролов, обратиться к контролам можно через переданных объект формы
frmCurrent.Controls("ИмяКонтрола).НужноеСвойство = ......
Ну вот как-то так