| |
|
|
| | Здравствуйте! Помогите пожалуйста, на этом сайте 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 условия можно задать.... | |
| |
| |
| |
|
|
| | За Ваши успехи!!! 
| |
| |
| |