Как создать контрольный список в MS Access, который меняет условное форматирование - PullRequest
0 голосов
/ 11 апреля 2019

Я создаю базу данных для обслуживания осветительных приборов, каждый из которых имеет свой уникальный серийный номер.У меня уже есть документ Excel со всеми этими данными, но я хочу создать лучшую систему для управления данными.

Идея состоит в том, что каждый раз, когда я обслуживаю единицу, у меня появляется новая работа #, и я заполняю контрольный список и вводю примечания для этой работы.Я создал таблицу № задания с колонками для серийного №, полученной даты, даты завершения, заметок и т. Д. Я также создал форму задания, которая включает в себя всю необходимую информацию для этого задания №.Теперь у меня вопрос, как создать относительно эффективные контрольные списки, которые изменяют цвет фона текстового поля.

Для первой части мне нужно иметь выпадающий список с различными моделями освещения на выбор (каждый источник света имеет свой набор тестируемых наборов функций), который, в зависимости от выбранной модели, будет отображаться/ создать контрольный список, содержащий около 25 элементов, который является уникальным для этой модели.
Затем, когда все флажки установлены для этого конкретного контрольного списка, мне нужен цвет фона текстового поля («Единица хороша?»)изменить с красного на зеленый.Эти контрольные списки должны быть привязаны к заданию # / record #, и мне любопытно, есть ли относительно простой / эффективный способ сделать это.

В настоящее время у меня около 150 рабочих мест, и со временем оно будет только увеличиваться.Я предпочитаю избегать VBA, если это возможно, но при необходимости некоторые указатели или рекомендуемые учебники будут очень полезны.

Я создал базовую таблицу и форму, но пока не смог выяснить, как составлять контрольные списки.

Любая помощь здесь будет чрезвычайно признательна.Я рад предоставить любую дополнительную информацию / документы, если это необходимо.

1 Ответ

0 голосов
/ 12 апреля 2019

Да, это возможно, и это может быть сделано без VBA (хотя требуются макросы).

  1. Во-первых, вам нужно создать еще пару таблиц. Я делаю предположение, что вы работаете только с одной моделью освещения на работу (несколько моделей возможно, но более сложно). Вам нужно будет создать три таблицы (две, если у вас уже есть таблица для ваших моделей освещения).
    • Light_Models будет содержать информацию о моделях освещения, которые вы обслуживаете, включая их уникальный серийный номер.
    • Model_Checklist_Defaults будет содержать значения контрольного списка по умолчанию для каждой модели освещения
    • Job_Checklist будет содержать значения контрольного списка для конкретной работы, основанные на обслуживаемой вами модели освещения (в этом случае несколько моделей освещения в работе добавят сложности). Когда вы создаете задание для конкретной модели освещения, вам необходимо скопировать соответствующие значения из Model_Checklist_Defaults в Job_Checklist (это можно сделать, создав запрос и вызвав его из макроса, я не буду описывать это здесь).

Эти таблицы необходимо связать следующим образом Изображение отношений . Я включил только минимальные столбцы, вы можете добавлять больше по мере необходимости.

  1. Вам необходимо создать форму для представления вашего контрольного списка и, при необходимости, других подробностей работы. Эта форма предполагает, что вы уже создали работу и выбрали модель освещения, но вы можете изменить форму, чтобы создать работу и контрольный список за один шаг.

    Пример формы ( Изображение формы ) имеет текстовое поле jobNumber, которое идентифицирует текущее задание, colorField, цвет фона которого изменяется на основе контрольного списка, и подчиненную форму, которая представляет данные в таблице Job_Checklist, отфильтрованные с помощью Текстовое поле jobNumber (эта фильтрация связана со связанными полями в подчиненной форме Изображение свойства ).

  2. Последним этапом является настройка цвета фона colorField и настройка макроса в форме, jobNumber и подчиненной формы, чтобы обновлять colorField при нажатии / снятии флажков.

    Этот макрос необходимо установить в нескольких местах ( Изображение макроса ):

    • Событие OnLoad формы: это гарантирует, что colorField обновляется на основе контрольного списка при открытии формы (например, в случае закрытия и повторного открытия)

    • Событие jobNumber AfterUpdate: в этом поле обновляется подчиненная форма контрольного списка при изменении его значения, поэтому необходимо каждый раз перепроверять значения контрольного списка

    • событие OnExit подчиненной формы: это событие вызывается после того, как вы щелкнули в подчиненной форме (например, отметили флажок), а затем щелкнули другое поле в главной форме. Это событие фиксирует фактические изменения флажка.

...