|
|
|
| Здравствуйте! Помогите пожалуйста, на этом сайте http://hiprog.com/index.php?option=com_content&task=view&id=251661592&Itemid=35 узнал о таком способе авторизации, только не могу разобратся как написать или как разграничить права в этой проге и вообще?
Dim Какие_права As String
Dim Каой_пароль As String
Поле3.SetFocus
Какие_права = ""
Каой_пароль = ""
Каой_пароль = DFirst("Значение", "Пароль")
If Mid(Каой_пароль, 4, 2) & Mid(Каой_пароль, 7, 2) = Nz(Me!Поле3) Then
Какие_права = "Пользователь"
End If
If Mid(Каой_пароль, 11, 2) & Mid(Каой_пароль, 15, 3) = Nz(Me!Поле3) Then
Какие_права = "Администратор"
End If
If Какие_права <> "" Then
MsgBox "Вы входите в программу с правами - " & Какие_права
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "Руфат декабрь"
Else
Кнопка26_Click
End If
End Sub
вот, тут как и куда вписать, чтоб юзер не мог открывать таблицы или фомы? или удалять что либо из таблиц. | |
|
| |
|
|
|
|
Данный пример предназначен исключительно для ознакомления с методами работы в ACCESS, и не может быть использован для защиты реального приложения.
|
Эти права для разграничения доступа к формам, отчётам и к конкретным полям на формах.
При открытии формы (Load)
проверяется кто входит и можно ли ему открыть эту форму
If Какие_права = "Администратор" Then "Милости просим"
Else
"Идите Вы мимо"
End if | |
|
| |
|
|
|
| ничерта не получается, может посоветуете как можно это провернуть? может есть более легкий способ....
при вводе :
If Какие_права = "Администратор" Then "Милости просим"
Else
"Идите Вы мимо"
End if
пишет ошибку...после Then, ругается на "" | |
|
| |
|
|
|
| Эх, маладеж....
If Какие_права = "Администратор" Then msgbox ("Милости просим")
далее заход на форму
Else
msgbox("Идите Вы мимо")
End if | |
|
| |
|
|
|
| спасибо, согласен про молодеж, учимся
А не подскажите как юзеру отключить изменения в формах? и как прописать, чтоб какие то формы юзер видел а какие то нет?
Заранее благодарю !!!! | |
|
| |
|
|
|
| Для этого придется завести систему ролей и приписывать каждого юзера к определенной роли. При открытии считывается роль юзера, и в зависимости от роли, (select case-ом) делать enabled =false соответсвующим контролам. По аналогии - разрешать или нет открытие различных форм ( Это лучше реализовать путем высвечивания соответствующих пунктов меню для перехода по формам) | |
|
| |
|
|
|
| Вы не внимательно читали предыдущие объяснения......
роль - это можно праваюзвера
If Какие_права = "Администратор" Then
-форму открыть можно, править всё можно
Else
-форму открыть можно, но править ничё нильзя
End if
И пример Вы не внимательно разобрали - всё описано вроде бы доходчиво.........
ну вот ещё пример:
If Какие_права = "Администратор" Then
Me![NOMER].Locked = False
Me![Поле254].Locked = False
Me![Поле256].Locked = False
Me![COMENT].Locked = False
Me![TELEFON].Locked = False
Me![SVID].Locked = False
Me![ИННН].Locked = False
Me![NDATE].Locked = False
Me![ODATE].Locked = False
Me![NAM].Locked = False
Else
Me![NOMER].Locked = True
Me![Поле254].Locked = True
Me![Поле256].Locked = True
Me![COMENT].Locked = True
Me![TELEFON].Locked = True
Me![SVID].Locked = True
Me![ИННН].Locked = True
Me![NDATE].Locked = True
Me![ODATE].Locked = True
Me![NAM].Locked = True
End If | |
|
| |
|
|
|
| я только начал учить этот язык )))))
If Какие_права = "Администратор" Then
-форму открыть можно, править всё можно - как это написать??? если фома наз. ОбщееДек.
Else
-форму открыть можно, но править ничё нильзя- и как записать править нельзя?
End if
пробую так...
If Какие_права = "Администратор" Then
MsgBox "Добро пожаловать Админ"
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "Общее.Дек"
Me![Компания].Edit = False
Else
MsgBox "Код Админа"
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "Общее.Дек"
Me![Компания].Edit = True
но не получается | |
|
| |
|
|
|
|
| вроде все вписал, только объясните мне пожалуйста, про after_update и BeforeUpdate ведь на сколько я понял мне это нужно будет....
заранее всем огромное спасибо!
If Какие_права = "Администратор" Then
Me![Компания].Edit = True
Else
Me![Компания].Edit = False
End If
End Sub
еще пишет : невозможна блокировка элемента управления пока его изменения не сохранены | |
|
| |
|
|
|
| Если пользователи, у вас уже "в наличии", то Сервис-Защита-Разрешения и меняем права доступа к таблицам, с которыми работают формы. | |
|
| |
|
|
|
| я пробовал это...по сети не действует...только для моего компа, а если входить через другой комп пропускает не спрашивая )))) | |
|
| |
|
|
|
| А вы добавили сетевых пользователей в базу? | |
|
| |
|
|
|
| If Какие_права = "Администратор" Then
Me![Компания].Setfocus
Me![Компания].Locked = False
Else
Me![Компания].Setfocus
Me![Компания].Locked = True
End If
End Sub | |
|
| |
|
|
|
| Прикол в том, что он не определяет кто я? для него нет разницы какой я пароль ввожу, админа или пользователя
выдает то, что после else (при любом вводимом пароле) ... т.е блокирует поле и выдает MsgBox "НЕТ ПРАВ!!!!!" как я иписал для не админа
Private Sub Form_Load()
If Какие_права = "Администратор" Then
Me![Компания].SetFocus
Me![Компания].Locked = False
Else
Me![Компания].SetFocus
Me![Компания].Locked = True
MsgBox "НЕТ ПРАВ!!!!!"
End If
End Sub | |
|
| |
|
|
|
| Прикрепите сюда свою базу, сжав её архиватором -
мы посмотрим, что у Вас и как у Вас. | |
|
| |
|
45 Кб. |
|
| Заранее благодарю! | |
|
| |
|
29 Кб. |
|
| Вот посмотрите, Василий. | |
|
| |
|
|
|
|
| Просто эту заметку я написал (Авторизация средствами Access)
- потому и знаю ответ.
А как Вы планируете удалять строки?
Есть несколько вариантов:
Удалять запросом
Удалять с помощью DAO
Удалять прям на форме выделяя и нажимая Delete
Взависимости от выбранного - будет и ответ........ | |
|
| |
|
|
|
| я думаю через форму будет легче:
"Удалять прям на форме выделяя и нажимая Delete", чтоб юзер не мог удалять строки....
и если вас не затруднит, написать также как можно вообще блокировать вход юзеру на форму заранее благодарю! | |
|
| |
|
31 Кб. |
|
|
и если вас не затруднит, написать также как можно вообще блокировать вход юзеру на форму заранее благодарю!
| Видимо вот так: | |
|
| |
|
31 Кб. |
|
|
чтоб юзер не мог удалять строки....
|
Можно вот так | |
|
| |
|
|
|
| отлично! огромное вам спасибо!!!!! | |
|
| |
|
|
|
| и последнее, если не трудно конечно
можно ли чтоб юзер не мог редактировать то что ввел админ но свое мог? | |
|
| |
|
|
|
| тада надо в таблицу, где правят добавить поле , где будет писаться админ правил или юзер правил.
И уже ориентируясь на енто поле сравнивая его с текущим вошедшим - разрешать, либо запрещать править................. | |
|
| |
|
|
|
| мда....непотяну я этого пока, мож современем....спасибо огромное | |
|
| |
|
|
|
| потянешь -
Вы просто ленитеся......
Добавить поле в таблицу - дело не хитрое.
Дать полю имя - тоже не трудно. Например такое имя -"КТО"
Затем в форме будет строчка
Me!KTO= Какие_Права
вот и всё........... | |
|
| |
|
|
|
| Спасибо Вам, все получилось | |
|
| |
|
|
|
| Это выглядит как отписька | |
|
| |
|
|
|
| не реально получилось, начинаю потехоньку понимать.... как вы и сказали создал поле "Кто" а в форме вывел:
Private Sub Компания_AfterUpdate()
Me!кто = Какие_права
End Sub
вот и все ))))
а можно ли провернуть еще и, что то вроде такого?
If [Проплата] = Отказник Then
[Компания] BackColor или backfont = ED1C24
End If
??? | |
|
| |
|
|
|
|
а можно ли провернуть еще и, что то вроде такого?
If [Проплата] = Отказник Then
[Компания] BackColor или backfont = ED1C24
End If
???
|
А попробовать самому?
Поверьте, ответ получите быстрее, чем на форуме. Не бойтесь эксперименитровать - акс это не минное поле, и программер может ошибаться сколько угодно раз. | |
|
| |
|
|
|
| согласен, просто я совсем новичек, только начал изучать, и уверен что если бы не час я бы вообще до этого не допер, за что ему огромное спасибо...мне бы хотябы узнать, а направление правильное? | |
|
| |
|
|
|
| Верной дорогой идете, товарищ (с) В.И.Ленин | |
|
| |
|
|
46 Кб. |
|
| ребята помогите кручусь гдето близко а попасть не могу
Private Sub Form_Load()
If [Проплата] = Отказник Then
Me.Компания.BackColor = &H10FF01
End If
где ошибка? | |
|
| |
|
|
|
| А напишите
Private Sub Form_Load()
If [Проплата] = Отказник Then
Me.Компания.BackColor = 255
End If
А ваще то надо условное форматирование Вам пробовать........ | |
|
| |
|
23 Кб. |
|
| вот так посмотрите | |
|
| |
|
|
|
| Private Sub Form_Load()
If [Проплата] = "Отказник" Then
Me.Компания.BackColor = 255
End If | |
|
| |
|
|
|
| я не совсем понимаю как делать форматирование, можете объяснить?
Все разобрался!!!! огромное спасибо!!!!!
Жаль тока что только 3 условия можно задать.... | |
|
| |
|
|
|
| За Ваши успехи!!! | |
|
| |