Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Пользователи и ограничения  [new]
Xmelnoff
Member

Откуда:
Сообщений: 111
Друзья, подскажите реально ли заблакировать определенные кнопки на открываемой форме в зависимости от пользователя.

Доступ к базе (в моем случае) ограничен тремя типами
- администратор
- оператор
- склад
Эти позиции занесены в таблицу на против каждой указывается пароль.
Код на форму такой:
Option Compare Database
Option Explicit
Dim X

Private Sub Form_Load()
    DoCmd.Restore
    X = "Пароли"
    Me!ФИО.RowSource = "SELECT DISTINCTROW " & X & ".[Код], " & X & ".[ФИО], " & X & ".[Пароль] FROM " & X & ";"
End Sub

Sub ФИО_AfterUpdate()
    RecordSource = X
    Me.RecordsetClone.FindFirst "[Код] = " & Me![ФИО]
    Me.Bookmark = Me.RecordsetClone.Bookmark
    DoCmd.GoToControl "Пароль"
End Sub

Private Sub Кнопка22_Click()
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Вы ввели неверный пароль!"
Style = vbOKOnly + vbExclamation
Title = "Внимание!!!"
      
     If Me![Пароль] = Me![Контроль] Then
        If Me![КонтрольФИО] = "Администратор" Then
            DoCmd.OpenForm "Меню_админ"
        ElseIf Me![КонтрольФИО] = "Оператор" Then
            DoCmd.OpenForm "Меню_оператор"
        ElseIf Me![КонтрольФИО] = "Склад" Then
            DoCmd.OpenForm "Проверка оплаты счета"
        End If
       
        DoCmd.Close acForm, "Вход"
     Else
        Response = MsgBox(Msg, Style, Title, Help, Ctxt)
        Me![Пароль].Value = ""
        Me![Пароль].SetFocus
    End If
     
End Sub

Как видно из кода, у меня на каждого пользователя заведена отдельная "форма-меню", в которых отсутствуют определенные поля и кнопки.
Так, вот...нельзя ли ограничиться одной формой, но при этом задать параметры на блокировку определенных полей и кнопок.
26 янв 06, 17:40    [2291527]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи и ограничения  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Можно!
В открываемую форму посредством OpenArgs передать параметр - код юзера, а на открытии этой формы прочитать параметер и в зависимости от него спрятать или показать, заблокировать или разблокировать объекты формы.

Удачи!
26 янв 06, 17:49    [2291588]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи и ограничения  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Xmelnoff
задать параметры на блокировку определенных полей и кнопок
'запрет выбора элемента
Me("Кнопка").Enabled = False
'блокировка элемента
Me("Поле").Locked = True
26 янв 06, 17:49    [2291590]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи и ограничения  [new]
принять во внимание
Guest
что если под этой кнопкой выполняется действие с базой - типа вставить/выбрать/обновить.

То скрывать что-либо вовсе необязательно.

Достаточно раздать права на соответствующие объекты базы данных (запросы, запуск форм, на которые нет разрешения и т.д.)
кнопка останется видимой, но запрещаемое действие не произойдет, явно дав ошибку исполнения с указанием на отсутствие необходимых прав.

предложение такое - вы сначала закодируйте обязательно со скрытием - открытием кнопок и т.д.
потом обязательно решите тему простым распределением прав.
хотя бы попробуйте.

обязательно найдите разницу как в объеме кодирования, так и в общем времени решения вопроса.

после этого самостоятельно решите, при каких обстоятельствах какой линии поведения вы будете в дальнейшем следовать.
26 янв 06, 18:00    [2291637]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи и ограничения  [new]
Xmelnoff
Member

Откуда:
Сообщений: 111
Rivkin Dmitry
Можно!
В открываемую форму посредством OpenArgs передать параметр - код юзера, а на открытии этой формы прочитать параметер и в зависимости от него спрятать или показать, заблокировать или разблокировать объекты формы.

Удачи!


Не соображу каким образом это сделать :(
Если Вам не трудно, приведите код передачи и чтения передаваемых параметров.
26 янв 06, 18:08    [2291668]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи и ограничения  [new]
Xmelnoff
Member

Откуда:
Сообщений: 111
Все - справился :)
26 янв 06, 20:48    [2292227]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи и ограничения  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Rivkin Dmitry
В открываемую форму посредством OpenArgs передать параметр - код юзера

Зачем??? Функция CurrentUser и так доступна откуда угодно.
26 янв 06, 20:59    [2292254]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи и ограничения  [new]
Xmelnoff
Member

Откуда:
Сообщений: 111
возникла проблема

значение параметра "юзер" из формы 1 в форму 2 я передал - заблокирова все что было нужно, но в этом случае первая форма игнорирует команду на закрытие 8-|
Private Sub Кнопка22_Click()
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Вы ввели неверный пароль!"
Style = vbOKOnly + vbExclamation
Title = "Внимание!!!"
      
     If Me![Пароль] = Me![Контроль] Then
        If Me![КонтрольФИО] = "Администратор" Then
            DoCmd.OpenForm "Меню_админ"
        ElseIf Me![КонтрольФИО] = "Оператор" Then
        ' посредством OpenArgs передаем параметр код пользователя
            DoCmd.OpenForm "Меню_админ", , , , , acDialog, "Оператор"
        ElseIf Me![КонтрольФИО] = "Склад" Then
            DoCmd.OpenForm "Проверка оплаты счета"
        End If
       
     DoCmd.Close acForm, "Вход"

     Else
        Response = MsgBox(Msg, Style, Title, Help, Ctxt)
        Me![Пароль].Value = ""
        Me![Пароль].SetFocus
    End If
     
End Sub

Но это пол беды, форма 2 становится всегда поверх всех остальных, открываемых из нее, т.е. у меня из формы 2 по двойному клику должна открываться справочная форма, которая в сложившейся ситуации прячется за ней :(
Как-ндь это можно исправить?
26 янв 06, 21:41    [2292329]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи и ограничения  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Вы открыли форму в режиме диалога:
Xmelnoff
DoCmd.OpenForm "Меню_админ", , , , , acDialog, "Оператор"
Все ваши удивления из-за этого.
26 янв 06, 21:48    [2292341]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи и ограничения  [new]
Xmelnoff
Member

Откуда:
Сообщений: 111
Karfaqen
Вы открыли форму в режиме диалога:
Xmelnoff
DoCmd.OpenForm "Меню_админ", , , , , acDialog, "Оператор"
Все ваши удивления из-за этого.


исправил на acNormal
Спасибо, что в очередной раз ткyули меня носом в мои недоглядки :)
26 янв 06, 21:58    [2292372]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить