В следующих разделах показано, как использовать формы сотрудников и как программировать их. Имена объектов предоставляются, чтобы их можно было легко изучить в базе данных Northwind 2.0 Starter Edition.
Ниже приведены важные сведения об использовании формы списка сотрудников.
-
Начиная с меню main, при выборе сотрудников в меню слева отображается список сотрудников (sfrmMainMenu_EmployeeList) в рабочей области справа.
-
Идентификатор каждого сотрудника — это гиперссылка для открытия записи этого сотрудника во всплывающей форме для изменения сведений о нем.
-
Чтобы добавить нового сотрудника, нажмите кнопку Добавить сотрудника в правой части строки заголовка, чтобы открыть новую запись сотрудника во всплывающей форме (sfrmEmployeeDetail_OrderList), чтобы добавить сведения о нем.
Ниже приведены важные сведения об использовании всплывающей формы сведений о сотрудниках:
-
Всплывающее окно сведений о сотрудниках (frmEmployeeDetail) позволяет редактировать и добавлять записи сотрудников.
-
Для всех сотрудников требуются три поля: Имя, Фамилия и Должность.
-
Сообщения об ошибках Access по умолчанию предупреждают вас о том, что один или несколько не завершены, прежде чем пытаться сохранить запись сотрудника. Проверка не применяется к другим полям, таким как адрес электронной почты и номера телефонов. Пользователи несут ответственность за правильное форматирование, например (000) 000–000. Проверка доступа по умолчанию в раскрывающемся списке для заголовков ограничивает записи списком предварительно выбранных значений. Вы можете снова добавить новые заголовки, используя поведение Access по умолчанию для элементов управления полями значений. При выборе раскрывающегося списка в форме отображается значок правки.
-
Изображения сотрудников хранятся в таблице в виде поля вложения. Вы добавляете новые изображения или изменяете существующие образы, используя поведение Доступа по умолчанию для полей вложения.
-
Если сотрудник создал заказы, в подчиненной форме в правой части всплывающего окна сведений о сотрудниках перечислены эти заказы в режиме таблицы.
-
Любой существующий заказ для этого сотрудника можно изменить, щелкнув идентификатор заказа с гиперссылкой в подформе Orders (sfrmOrderDetails).
Формы сотрудников используют как VBA, так и внедренные макросы в элементах управления в формах для выполнения базовой логики. Они содержат два автономных макроса и несколько внедренных макросов.
Список сотрудников
-
Форма "Список сотрудников" (sfrmMainMenu_EmployeeList) получает данные из простого запроса qryEmployeeList (из свойства RecordSource ). Рекомендуется использовать форму ввода данных на запросе с одной таблицей.
-
Элементы управления в форме списка сотрудников включены, то есть их можно выбрать и заблокировать, то есть они доступны только для чтения.
-
Поле Title, основанное на многозначном поле, является раскрывающимся списком или полем со списком. Его источником строк является список значений, что означает, что доступные необязательные элементы содержатся непосредственно в этом поле. Для свойства Limit to List задано значение "Да", так как эта форма не предназначена для редактирования. Многозначное поле включается только в качестве иллюстрации функции, а не в качестве рекомендации.
-
В списке сотрудников (sfrmMainMenu_EmployeeList) две процедуры Sub для событий Key Up и Key Down реагируют на перемещение курсора пользователя в представлении таблицы. Они определяют направление перемещения курсора (влево, вправо, выше или ниже) и вызывают функции VBA, которые перемещают фокус на соответствующий элемент управления.
-
Вы изменяете существующие записи сотрудников и добавляете новые в форму сведений (frmEmployeeDetail).
-
Форму сведений о сотрудниках из списка сотрудников можно открыть в виде редактируемой всплывающей формы двумя способами:
-
Выбрав EmployeeID, который будет отображаться в виде гиперссылки, откройте форму сведений о сотрудниках и отфильтруйте ее только по этой записи сотрудника.
-
Щелкнув метку Добавить сотрудника в заголовке формы, чтобы открыть форму сведений о сотрудниках и переместить фокус на новую запись. Все текущие записи находятся в источнике записей формы.
Обратите внимание, что два подхода могут по-разному влиять на производительность. Фильтрация формы по одной записи сводит к минимуму объем данных, передаваемых из таблицы. При использовании небольшого набора записей разница может быть не заметной.
-
Сведения о сотрудниках
-
Форма сведений о сотруднике (frmEmployeeDetail) получает данные из простого запроса qryEmployeeDetails (из свойства RecordSource формы). Рекомендуется основывать форму ввода данных на запросе с одной таблицей.
-
Предложение SELECT в qryEmployeeDetails использует подстановочный знак звездочки (*) для выбора всех полей в таблице, в то время как предложение SELECT в qryEmployeeList содержит конкретные поля. Использование подстановочного знака позволяет получать новые поля в базовой таблице без дополнительного редактирования запроса. Это невозможно со списком определенных полей. Список определенных полей ограничивает набор записей только теми полями, которые необходимы в форме только для отображения. Ваша конструкция должна основываться на рассмотрении того, какой подход больше подходит для вашего требования, хотя предпочтение должно отдаваться подходу, который, скорее всего, потребует дальнейшего обслуживания, то есть использование подстановочного знака.
-
Элементы управления в форме сведений о сотрудниках включены и не заблокированы, то есть их можно выбрать и изменить.
-
Поле Title, основанное на многозначном поле, является раскрывающимся списком или полем со списком. Его источником строк является список значений, что означает, что доступные необязательные элементы содержатся непосредственно в этом поле. Для свойства Limit to List задано значение "Нет", так как эта форма предназначена для редактирования. Для добавления или редактирования заголовков используется встроенный метод Access, поэтому код не требуется. Многозначное поле включается только в качестве иллюстрации функции, а не в качестве рекомендации.
-
Вы можете изменить существующие и новые записи сотрудников в форме сведений.
-
Форму сведений о сотрудниках из списка сотрудников можно открыть в виде редактируемой всплывающей формы двумя способами:
-
Выбрав EmployeeID, который будет отображаться в виде гиперссылки, откройте форму сведений о сотрудниках и отфильтруйте ее только по этой записи сотрудника.
-
Щелкнув метку Добавить сотрудника в заголовке формы, чтобы открыть форму сведений о сотрудниках и переместить фокус на новую запись. Все текущие записи находятся в источнике записей формы.
-
-
Фильтрация формы по одной записи сводит к минимуму объем данных, передаваемых в форму из таблицы. При использовании небольшого набора записей, например выборки данных, разница может быть не заметной.
-
Элемент управления подчиненной формы (sfrmEmployeeDetail_OrderList) справа от элемента Personal Information отображает заказы для выбранного в данный момент сотрудника (если таковые есть). Подчиненная форма в элементе управления подчиненной формы перенацеливается из раздела Заказы . Встроенные свойства Access LinkMasterFields/LinkChildFields элемента управления подчиненной формы синхронизируют и фильтруют записи, отображаемые для каждого сотрудника.
-
В сведениях о сотрудниках (frmEmployeeDetail) две процедуры Sub в форме On Current Event и On Close Event реагируют на эти события:
-
На текущем отображает или скрывает метку Добавить сотрудника в зависимости от того, является ли текущая запись существующей или когда она является записью для нового сотрудника, запущенного, но еще не сохраненного.
-
При закрытии выполняет два действия по обслуживанию. Он повторно запрашивает набор записей в подчиненной форме сведений о сотрудниках, чтобы обновить любые дополнения или изменения, внесенные в форму сведений. Он повторно синхронизирует отображение количества сотрудников в меню main путем вызова этого макроса.
-
Макросы
macMainMenu_UpdateSubs Этот макрос является автономным и выполняется при возникновении определенных событий, включая формы сотрудников. В macMainMenu_UpdateSubs подмакросы группируются в соответствии с функциями, к которым они применяются. Для сотрудников submacro синхронизирует количество записей сотрудников с счетчиком, отображаемым в меню main.
Внедренные макросы Формы сотрудников в основном управляются внедренными макросами, содержащимися в форме и редактируемыми только из формы. В списке сотрудников (sfrmMainMenu_EmployeeList):
-
Гиперссылка EmployeeID Если щелкнуть EmployeeID в форме списка сотрудников, откроется форма Сведения о сотрудниках и будет выбрана выбранная запись сотрудника.
-
Добавление метки сотрудника Нажатие кнопки Добавить сотрудника открывает форму сведений о сотрудниках (frmEmployeeDetail) и задает фокус на новую запись.
-
Сведения о сотрудниках Нажатие кнопки Добавить сотрудника в заголовке сохраняет текущую запись и задает фокус на новую запись.