powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Юзеры и роли в Акцесс 2013
11 сообщений из 11, страница 1 из 1
Юзеры и роли в Акцесс 2013
    #39332632
Decabrist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста как сделать разграничение по сабжу?
Какой-то супер защиты не требуется, просто отдельным пользователям надо дать доступ к формам только для чтения, что бы случайно чего не изменили (намеренное вредительство исключено). А в Акцесс 2013 вроде как все это дело почикали.
...
Рейтинг: 0 / 0
Юзеры и роли в Акцесс 2013
    #39332658
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DecabristПодскажите пожалуйста как сделать разграничение по сабжу?
Какой-то супер защиты не требуется, просто отдельным пользователям надо дать доступ к формам только для чтения, что бы случайно чего не изменили (намеренное вредительство исключено). А в Акцесс 2013 вроде как все это дело почикали.
Заведите таблицу "Пользователи" и "Группы"
В таблице "Группы" заведите Администратор Пользователь1 Пользователь2 и т.д.
и в зависимости от группы раздавайте права на Формы,отчеты, Запросы и т.д.
Вот в краце как то так.
...
Рейтинг: 0 / 0
Юзеры и роли в Акцесс 2013
    #39332660
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сильно защищать не надо, сделайте простую формочку для логина имя-пароль, в таблице поставьте уровень доступа каждого пользователя, а в форме, которую нужно защитить проверяйте уровень доступа и выставляйте AllowEdit в зависимости от этого.

Можно и без пароля, просто в таблице поставьте уровень доступа в соответствие имени пользователя, под которым он логинится в операционную систему и получайте его функцией Environ("Username")
...
Рейтинг: 0 / 0
Юзеры и роли в Акцесс 2013
    #39332668
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Decabristотдельным пользователям надо дать доступ к формам только для чтенияОтдельные пользователи - это определённые учётные записи сервиса каталога или просто определённые тела?
...
Рейтинг: 0 / 0
Юзеры и роли в Акцесс 2013
    #39333203
Decabrist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это какую-то глобальную переменную надо задавать в системе?
Т.е. делаю две таблицы. Юзвери и Группы. На запуск базы открывается форма с вводом логина и пароля. После ввода ИД юзера запоминается в переменной и разграничение производится по этой переменной и заданной группы пользователя?
...
Рейтинг: 0 / 0
Юзеры и роли в Акцесс 2013
    #39333204
Decabrist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaDecabristотдельным пользователям надо дать доступ к формам только для чтенияОтдельные пользователи - это определённые учётные записи сервиса каталога или просто определённые тела?

Это конкретные люди. Вообще можно было бы упрощенно обойтись двумя пользователями. Какой-нибудь админ - с правами редактирования. И юзверь - с доступом только для чтения.
Но может быть со временем понадобиться более расширенная версия, так что это лучше в группы вынести.
...
Рейтинг: 0 / 0
Юзеры и роли в Акцесс 2013
    #39333207
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DecabristЭто какую-то глобальную переменную надо задавать в системе?
Т.е. делаю две таблицы. Юзвери и Группы. На запуск базы открывается форма с вводом логина и пароля. После ввода ИД юзера запоминается в переменной и разграничение производится по этой переменной и заданной группы пользователя?
Да, примерно так.
...
Рейтинг: 0 / 0
Юзеры и роли в Акцесс 2013
    #39333210
Decabrist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь за возможно глупый вопрос, но как задать глобальную переменную на уровне всей базы?

Пока за незнанием сделал форму, которую после выбора просто скрываю, а потом думаю сделать так что бы все прочие формы считывали значения полей этой скрытой формы.
...
Рейтинг: 0 / 0
Юзеры и роли в Акцесс 2013
    #39333211
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DecabristИзвиняюсь за возможно глупый вопрос, но как задать глобальную переменную на уровне всей базы?

Пока за незнанием сделал форму, которую после выбора просто скрываю, а потом думаю сделать так что бы все прочие формы считывали значения полей этой скрытой формы.
В 2010 есть замечательная глобальная TempVars называется.
В 2013 она наверно тоже есть.
...
Рейтинг: 0 / 0
Юзеры и роли в Акцесс 2013
    #39333212
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Decabrist,
Просто объявите Public переменную в любом стандартном модуле, значение будет доступно отовсюду. У глобальных переменных, правда, есть неприятная особенность: они теряют свое значение в некоторых случаях. Например, если вы отредактируете определение любой глобальной функции или переменной, выполнение кода будет сброшено. Также это произойдет, если при возникновении необработанной ошибки будет нажата кнопка "остановить". В общем, правильно написанной программе при обычной эксплуатации это не грозит, но просто имейте это в виду при разработке.

Я, например, предпочитаю не использовать глобальные переменные, а использую вместо них публичные функции в стандартных модулях, данные же хранятся в статических переменных вместо глобальных. Эти переменные сохраняют значение между вызовами функций, а если произошел сброс, то значение переменной заново генерируется, что гарантирует и скорость работы, и всегда корректное возвращаемое значение. Вот, например, типичная функция такого вида:
Public Function GetPersonID(Optional blnReset As Boolean = False) As Long
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Public Function GetPersonID(Optional blnReset As Boolean = False) As Long
Dim strOSUser As String
Dim varRes As Variant
Static lngPersonID As Long

If lngPersonID = 0 Or blnReset Then
    'get data from db
    strOSUser = GetOSUserName()
    varRes = DLookup("PersonID", "tbl_Persons", "UserID='" & strOSUser & "'")
    If Nz(varRes, 0) = 0 Then
        MsgBox "Windows user '" & strOSUser & "' not registered in system"
        Exit Function
    End If
    lngPersonID = varRes
End If
GetPersonID = lngPersonID
End Function
...
Рейтинг: 0 / 0
Юзеры и роли в Акцесс 2013
    #39333215
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROIВ 2010 есть замечательная глобальная TempVars называется.
В 2013 она наверно тоже есть
Да, есть и в более старших.

Decabrist,
Забыл про эту возможность, спасибо ROI за напоминание. TempVars не сбрасывается при сбросе выполнения, вполне можно использовать, но лично я ее недолюбливаю из-за отсутствия типизации (это просто коллекция переменных Variant), невозможности выявления ошибок в имени переменной на этапе компиляции и также она несколько осложняет отладку.
Изначально она была предназначена для для макросов, которые я также не люблю и толком не знаю :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Юзеры и роли в Акцесс 2013
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]