Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft Access |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] все |
Аллюр Д. Member Откуда: Сообщений: 1843 |
Я не очень понял, что же хочет сделать автор темы, но в Аксесе можно создавать свои классы и в них делать всё, что хочется. В том числе, перехватывать события контролов Private WithEvents fld As Access.ListBox |
||||
4 сен 18, 16:04 [21664291] Ответить | Цитировать Сообщить модератору |
Аллюр Д. Member Откуда: Сообщений: 1843 |
AIzotov, Перечитал все ваши посты в теме и вспомнилась фраза из анекдота - "Ты не мудри, ты пальцем покажи" Бизнес-логика, Enabled, Locked... И при этом "не хочется копаться во всём коде" ![]() Приведите пример (а не абстрактные рассуждения) как вам видится процесс управления доступом к контролам
Аксес вполне нормальная среда разработки, с весьма развитым языком, так что позволяет он очень много. Главное, понять чего хочешь и нагуглить пример реализации ![]() |
||
4 сен 18, 16:12 [21664308] Ответить | Цитировать Сообщить модератору |
AIzotov Member Откуда: Киев, Украина Сообщений: 73 |
Это не ленточная форма. По поводу свойства Tag можно подумать. Условное форматирование, как мне кажется, недостаточно гибкий вариант. Плюс есть органичения - не для всех контролов работает. |
||
4 сен 18, 18:08 [21664500] Ответить | Цитировать Сообщить модератору |
AIzotov Member Откуда: Киев, Украина Сообщений: 73 |
Пример вроде бы привел. Может он и абстрактный, но достаточно точно описывает работу приложения. Процесс управления простой: есть таблица с перечнем всех ролей и их полномочиями по доступу к контролам. После отработки бизнес-логики, приведенной в предыдущем примере, нужно только проверить, разрешен ли данный конкретный контрол текущей роли (найти запись роль-форма-контрол) и запретить/разрешить его. Ну не знаю как по-другому объяснить. |
||
4 сен 18, 18:22 [21664524] Ответить | Цитировать Сообщить модератору |
Predeclared Member Откуда: And God I know I'm one Сообщений: 844 |
>>Ну не знаю как по-другому объяснить. Да все понятно объясняете. |
4 сен 18, 18:46 [21664562] Ответить | Цитировать Сообщить модератору |
ROI Member Откуда: г. Тюмень Сообщений: 1568 |
Дык объясните, что конкретно у вас не получается? А так на событие открытие формы вешаете обработчик доступа и делайте с вашими контролами что хотите PS: я не думаю что обрабатывать нужно все ваши 100 форм. |
||||
5 сен 18, 05:18 [21664942] Ответить | Цитировать Сообщить модератору |
AIzotov Member Откуда: Киев, Украина Сообщений: 73 |
[quot ROI]
На данный момент у меня не получается объяснить задачу, чтобы ВСЕ поняли. Все остальное получается. |
||
5 сен 18, 09:13 [21665064] Ответить | Цитировать Сообщить модератору |
Аллюр Д. Member Откуда: Сообщений: 1843 |
Тогда вы объясните непонимающим ![]() |
||
5 сен 18, 10:23 [21665169] Ответить | Цитировать Сообщить модератору |
Аллюр Д. Member Откуда: Сообщений: 1843 |
Если некий контрол уже имеет Enable=False, то повторное Enable=False ему не повредит. Если бизнес-логика запрещает давать этому контролу Enable=True, то надо либо хранить информацию об этом запрете, как уже предлагали в Tag (заполняется, например, в событии Open формы), либо каждый раз запрашивать из таблицы ролей. В некую унифицированную процедуру передавать имя формы и имя контрола и делать выборку по этим условиям, дополним id роли текущего пользователя. Минимизировать усилия по допиливанию форм, скорее всего, сильно не получится. Чуть выше я писал про собственный класс, но ради отслеживания одного события After_Update - овчинка не стоит выделки. Так что я бы просто прошёлся вручную по всем нужным контролам и дописал вызов общей функции |
||||
5 сен 18, 10:36 [21665192] Ответить | Цитировать Сообщить модератору |
ROI Member Откуда: г. Тюмень Сообщений: 1568 |
Дык я же это и предлагал https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1301929&msg=21662817 |
||
5 сен 18, 10:49 [21665206] Ответить | Цитировать Сообщить модератору |
Predeclared Member Откуда: And God I know I'm one Сообщений: 844 |
Так что тут объяснять? Легкого и/или "красивого" решения этой задачи пока не нарисовывается. Остается только посочувствовать ТС, так он вроде как не за этим сюда пришел. Не? |
||||
5 сен 18, 13:29 [21665592] Ответить | Цитировать Сообщить модератору |
alecko Member Откуда: Башкирия Сообщений: 424 |
так то есть функция поиска в модулях,формах, запросах и пр.(где то на форуме было упоминание) найти те события, да добавить в них forms(frmname).Module.InsertLines (numberLines, "call NewFunction(Activecontrol.name)") а там уж дело техники... |
5 сен 18, 13:49 [21665642] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] все |
Все форумы / Microsoft Access | ![]() |