Как создать форму выскакивающую при входе, в которой бы была проверка по паролю для пользователя.
Суть в том, что бы создать форму выскакивающую при входе, в которой бы были поле выпадающего списка для выбора сотрудника, поле для ввода пароля и соответственно кнопка "ОК". Но это не просто форма для безопасности. Еще должна быть привязка к должности пользователя. Так, после подтверждения правильности ввода данных, должна открываться форма со множеством подчиненных форм и кнопок на отчеты и запросы, при чем эта форма должна быть разной для каждой должности. Таким образом, получается что будет создан пользовательский интерфейс при этом не закрывая, так сказать, исходный код, но по большому счету, любому пользователю будет незачем просматривать все отчеты, фомы и запросы базы в поисках непонятно чего, так как у него все будет нужно у него перед глазами.
Самое первое что нужно, так это таблица с сотрудниками (или пользователями) со столбцами где указаны их имя, должность и пароль.
Потом создаем новую форму с помощью конструктора. Внешне можно настраивать как угодно, но обязательно должно быть поле с выпадающим списком, текстовое поле для ввода пароля и кнопка подтверждения. Вот что получилось у меня
Чтобы форма открывалась сразу же при запуске базы данных, необходимо
Для MS Access 2003
В окне БД - Сервис->Параметры запуска->Вывод формы/страницы..... Выбирайте, какую форму хотите запускать при открытии БД...
Для MS Access 2007
В окне БД - Сервис->Параметры запуска->Вывод формы/страницы..... Выбирайте, какую форму хотите запускать при открытии БД...
Соответственно для поля выпадающего списка нужно сделать привязку "источника строк" к полям таблицы "Персонал" (ну или пользователи) и выбрать такие поля как ID (уникальный номер для каждого сотрудника), Имя (в нашем случае поле называется ФИО) и Должность
При желании можно также выставить сортировку по интересующему полю, либо по ID, тогда пользователи будут отображаться по мере поступления на работу, можно по Имени, а можно сделать сортировку по должностям.
Далее выделяем кнопку "ОК" в конструкторе и ищем поле в событиях "Нажатие кнопки", выбирая [Процедура обработки событий] переходим в Visual Basic и прописываем следующий сценарий для кнопки, который будет работать по клику:
Private Sub cmdLogin_Click() 'cmdLogin - это имя кнопки для которой пишется сценарий
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Сотрудники") 'Сотрудники - указываем с какой таблицей будет работать сценарий
With rst
If IsNull(Me.cboCurrentEmployee.Value) Then 'Условие если поле выпадающего списка на момент клика пустое, то
MsgBox "Ошибка входа! Выберите пользователя."
Exit Sub
Else:
.FindFirst ("ID=" & Me.cboCurrentEmployee.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
PS код уже с комментариями относительно его содержания
Собственно как бы все, задумка реализована. Теперь чтобы создать действительно пользовательский интерфейс нужно создать актуальные и необходимые формы для каждой должности и вставить в необходимую часть кода указанного выше.