Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / авторизация для входа в Access / 7 сообщений из 7, страница 1 из 1
15.06.2019, 22:05
    #39826870
SerafimaT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация для входа в Access
Помогите разобраться. Прям срочно очень нужно!
имеется база данных. в ней таблица сотрудники (логин, ФИО, должность, отдел). Подразумевается что в зависимости от отдела в котором работает сотрудник, будут открываться разные формы. Если входит сотрудник отдела тех. поддержки, то открывается форма "ИсполнителиМакет", если остальные "ПользователиМакет". Реализовано это на входной форме, где выбирается логин, фио и при нажатии кнопки ок открывается необходимая форма.
вылетает ошибка "Run-time error '3070': "(логин)" не распознается ядром СУБД Microsoft Access как допустимое имя поля или выражение" в строчке .FindFirst "[Логин]=" & Me.Логин_поле.Value .
С чем это может быть связано???

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Private Sub Вход_Click()
Dim rst As dao.Recordset

Set rst = CurrentDb.OpenRecordset("Сотрудники", dbOpenSnapshot) 'Сотрудники - указываем с какой таблицей будет работать сценарий
With rst
 If IsNull(Me.Логин_поле.Value) Then 'Условие если поле выпадающего списка на момент клика пустое, то
    MsgBox "Ошибка входа! Выберите пользователя."
    Exit Sub
    Else:
   .FindFirst "[Логин]=" & Me.Логин_поле.Value 'Если поле не пустое, то производится поиск на соответствие с данными таблицы Сотрудники
           If .NoMatch Then ' Если нет совпадений, то
           MsgBox "Ошибка входа! О данном пользователе нет информации в БД."
           Exit Sub
           End If
    
    DoCmd.Close 'Команда на закрытие текущей формы, в данном случае формы входа
       Select Case .Fields("Отдел").Value
       Case "Отдел технической поддержки"
       DoCmd.OpenForm "ИспонителиМакет"
       Case Else
       DoCmd.OpenForm "ПользователиМакет"
       'отбор по полю должность и команда открытие указаной формы для соответсвующей должности
       End Select

 End If
 End With
rst.Close
Set rst = Nothing
End Sub



При чем нашла очень похожую базу, там работает все, а у меня ругается. В чем проблема понять не могу.
...
Рейтинг: 0 / 0
15.06.2019, 22:11
    #39826871
SerafimaT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация для входа в Access
Код из чужой базы

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Private Sub Кнопка7_Click()
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("Сотрудники", dbOpenDynaset) 'Сотрудники - указываем с какой таблицей будет работать сценарий
 With rst
 If IsNull(Me.Комбинированная2.Value) Then 'Условие если поле выпадающего списка на момент клика пустое, то
 MsgBox "Ошибка входа! Выберите пользователя."
 Exit Sub
 Else:
 .FindFirst ("Код Сотрудника=" & Me.Комбинированная2.Value) 'Если поле не пустое, то производится поск на соответствие с данными таблицы Сотрудники
 If .NoMatch Then ' Если нет совпадений, то
 MsgBox "Ошибка входа! О данном пользователе нет информации в БД."
 Exit Sub
 Else:
 If Me.Поле_для_пароля.Value <> .Fields("Пароль").Value Then 'Условие для сравнения введенных данных в поле для пароля с колонкой пароль в таблице "Сотрудники"
 MsgBox "Пароль неправильный или не соответствует имени пользователя"
 Exit Sub
 End If
 If IsNull(Me.Поле_для_пароля.Value) Then ' Условие для ошибки в случае, если поле для пароля не заполненное
 MsgBox "Вы не ввели пароль!"
 Exit Sub
 End If
 DoCmd.Close 'Команда на закрытие текущей формы, в данном случае формы входа
 Select Case .Fields("Должность").Value
 Case "Директор"
 DoCmd.OpenForm "Кнопочная форма"
 Case "Менеджер по продажам"
 DoCmd.OpenForm "Кнопочная форма"
 Case "Бухгалтер"
 DoCmd.OpenForm "Кнопочная форма" 'отбор по полю должность и команда открытие указаной формы для соответсвующей должности
End Select
 End If
 End If
 End With
rst.Close
Set rst = Nothing
End Sub
...
Рейтинг: 0 / 0
15.06.2019, 22:12
    #39826872
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация для входа в Access
Возможно требуется строковое значение
Код: vbnet
1.
.FindFirst "[Логин]='" & Me.Логин_поле & "'"
...
Рейтинг: 0 / 0
15.06.2019, 23:04
    #39826876
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация для входа в Access
Не "вкурю":а зачем все эти заморочки с RS?
почему не проще,как-то так:
Код: vbnet
1.
2.
3.
4.
5.
6.
per=Dcount("*","tbl","отдел='" & me.отдел & "' and логин='" & me.логин & "'")
If per=1 then
DoCmd.OpenForm "form1"
Else
DoCmd.OpenForm "form2"
End If

ну и естессно отдел/логин составной ключ в таблице
...
Рейтинг: 0 / 0
15.06.2019, 23:15
    #39826878
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация для входа в Access
пардоньте-забыл
If per=1 and Me.отдел = "тех.поддержка" then
DoCmd.OpenForm "form1"
Else
DoCmd.OpenForm "form2"
End If
...
Рейтинг: 0 / 0
16.06.2019, 09:57
    #39826908
SerafimaT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация для входа в Access
mds_world,
не помогло. ругается на синтаксическую ошибку
...
Рейтинг: 0 / 0
16.06.2019, 10:02
    #39826911
SerafimaT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация для входа в Access
mds_world,
Извини, заработало. Спасибо большое
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / авторизация для входа в Access / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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