Выберите любой раздел ниже, чтобы узнать об управлении компаниями в Northwind Developer Edition.
Примечание: На эту страницу ссылается Access Developer Showcase Edition
В Northwind Starter Edition клиент является единственным типом компании. В выпуске Developer Edition мы расширили этот раздел, включив клиентов, грузоотправителей и поставщиков.
Мы также расширили список продуктов , включив в него нескольких поставщиков.
Каждая компания может быть только одного типа: Клиент, Грузоотправитель или Поставщик. Бизнес-вариант, когда тип компании можно изменить, описан в разделе frmCompanyDetail этой статьи. '
Типы компаний и их использование
-
Клиент для заказа
-
Грузоотправитель для заказа
-
Поставщик заказа на покупку
-
Поставщик продукта
Кроме того, у компаний в версии разработчика Northwind может быть несколько контактов. '
Компании на ленте
Если выбрать Компании на ленте, в frmCompanyList отображается раздел "Компании" в Northwind.
Список компаний — frmCompanyList
В версии разработчика Northwind frmCompanyList представляет собой разделенную форму. Разделенная форма предоставляет два представления данных одновременно: представление формы и представление таблицы. Он также имеет верхний и нижний колонтитулы. В этой реализации представление формы отображаться не будет. Если представление формы не отображается, у нас будет таблица с верхним и нижним колонтитулов.
Вот как это сделать:
В frmCompanyList полоса разделения между заголовком и таблицей не видна. Свойство формы Разделенная полоса разделителя формы имеет значение Нет, что скрывает представление формы.
Разделенные формы и формы таблицы похожи на листы Excel. Они поддерживают фильтрацию и сортировку, и вы можете отображать, скрывать или перемещать поля или столбцы. Кроме того, столбцы могут быть суммарными.
Разделы верхнего и нижнего колонтитулов в разделенной форме позволяют использовать командные кнопки, изображения, текст (метки) и любые другие элементы управления формой доступа, которые вы хотите улучшить взаимодействие с пользователем. Дополнительные сведения о формах и разделенных формах можно начать здесь. В таблицах не отображаются разделы верхнего и нижнего колонтитулов.
Дополнительные сведения см. в статьях Общие сведения о формах и Создание разделенной формы. '
Форма "Список компаний" поддерживает следующие пять действий:
-
Применение настраиваемого предварительно созданного фильтра, фильтрации по запросу или и того, и другого
-
Отображение и скрытие полей
-
Создание меток
-
Показать фильтр
-
Добавление новой компании
Дважды щелкните в любом месте строки сведений, чтобы открыть форму Сведения о компании (а не только по идентификатору, как в других формах). '
Предварительно созданные фильтры и фильтрация по запросу
Форма frmCompanyList богата возможностями фильтрации компаний в Northwind. В верхней части экрана можно выполнить фильтрацию с помощью следующих переключателей:
-
Все компании (по умолчанию)
-
Только клиенты
-
Только грузоотправители
-
Только поставщики
Кроме того, в таблице доступны встроенные параметры фильтрации по запросу. Все фильтры, примененные к форме списка компаний (предварительно созданной или по запросу), передаются и применяются к frmCompanyDetail при ее открытии .
Чтобы передать фильтры из одной формы в другую, необходимо сначала очистить строку фильтра формы, чтобы она содержала только имена полей. Дополнительные сведения о том, как это делается, см. в модуле кода Open_frmCompanyDetail и в разделе frmCompanyDetail в комментариях к Form_Load , чтобы узнать, как она применяется.
Мы передаём сведения о фильтре в форму Сведения о компании с помощью свойства OpenArgs формы, а не открываем форму с условием where . Дополнительные сведения о OpenArgs см. здесь.
Отображение и скрытие полей
Выберите Показать и скрыть поля, чтобы открыть диалоговое окно со списком всех доступных полей; Можно проверка или снять флажок один или несколько столбцов. Выбранный макет сохраняется из одного сеанса в другой до развертывания новой версии приложения. См. раздел Отображение и скрытие столбцов в таблице.
Создание меток
Кнопка Создать метки открывает мастер меток доступа. Дополнительные сведения о мастере меток см. в статье Создание меток рассылки в Access.
Сведения о открытой компании
Дважды щелкните в любом месте строки сведений, чтобы открыть frmCompanyDetail
Щелкните поле идентификатора (настроено как гиперссылка) или дважды щелкните любое другое поле в строке сведений, чтобы открыть frmCompanyDetail выбранной компании и передать любой фильтр формы, примененный к списку компаний, в frmCompanyDetail.
Сведения о компании — frmCompanyDetail
На первый взгляд frmCompanyDetail может выглядеть относительно просто. Однако это не так. В коде, лежащем в основе формы, происходит многое! В форме выделены следующие действия и функции:
-
Несколько кнопок и ссылок команд
-
Добавление компании
-
Список компаний Email
-
Показать фильтр
-
Удаление компании
-
Открытие карты на основе адреса
-
Открытие веб-сайта из гиперссылки
-
-
Отмена или сохранение действий в режиме добавления и редактирования
-
Бизнес-правила для управления изменением типа компании
-
Проверка целостности данных перед событием удаления '
Событие Form_Load включает в себя следующие действия:
-
Использование нескольких параметров, передаваемых в форму через OpenArgs и настраиваемую функцию Northwind StringToDictionary
-
Используйте свойство формы OpenArgs, чтобы разрешить пользователю добавлять новую компанию во время принятия заказа.
-
Добавление новой компании с помощью метода GoToRecord
-
Использование метода SearchForRecord для перехода в компанию, выбранную в frmCompanyList
-
Параметры ветвления или условного выполнения (см . Form_Load событие)
-
Вариант 1. Оператор case
-
Вариант 2. Вложенный параметр If Else
-
Вариант 3 — ElseIf
-
Вариант 4. Вложенные if Else и ElseIf '
-
В событии Form_Current происходит следующее:
-
Измените вложенную форму подпись и исходный объект во время выполнения, вызвав sub ManageFormOptions(). Эта подпрограмма вызывается из нескольких мест в этой форме. '
Отмена или сохранение действий в режиме добавления или редактирования.
Наши формы доступа привязаны. Что это значит? От корпорации Майкрософт: "Связанная" форма напрямую связана с источником данных, таким как таблица или запрос, и может использоваться для ввода, редактирования или отображения данных из этого источника данных".
При использовании связанных форм access не требует явного сохранения данных. При переходе от одной записи к следующей access автоматически сохраняет данные. Часто это работает именно так, как вы хотите. Но что делать, если пользователь должен предпринять действие, чтобы указать, что он готов к сохранению?
Например, форма frmCompanyDetail имеет вложенную форму для контактов (sfrmCompanyDetail_Contacts). Итак, что произойдет, если вы начнете добавлять или изменять данные о компании( скажем, номер телефона) и приостанавливаете работу, чтобы исправить опечатку, которую вы заметили в информации контакта? По умолчанию Access сохраняет все изменения, внесенные в запись компании, когда вы щелкаете запись контакта, что не является нужным.
В этой форме мы показываем один из способов достижения этой цели с помощью одной записи для компании.
В чем причина нажатия кнопки Отмена ? Escape-ключ отменяет все введенные или измененные (но не сохраненные) данные в элементе управления в форме. В этом состоянии значок карандаша отображается в селекторе записей (серая вертикальная полоса в левой части строки).
Однако после нажатия кнопки Добавить компанию вы заметите, что значок карандаша отсутствует, пока вы не начнете вводить данные в новую запись компании. Что делать, если вы передумаете о добавлении новой компании на этом этапе? Если нажать escape-клавишу, ничего не произойдет, так как вы еще не ввели никаких данных. Поэтому у нас есть кнопка отмены.
Нажатие кнопки Отмена всегда работает; Escape-ключ работает только в том случае, если вы ввели или изменили данные.
Если вы начнете добавлять или изменять данные, а затем закрываете форму, не нажимая кнопку сохранить или отмену, по умолчанию Access сохранит данные.
Бизнес-правило: Как бизнес-правило Northwind для компаний, мы хотим, чтобы вы явно указали, что хотите сохранить. Чтобы убедиться в этом, необходимо проверка, если пользователь нажал кнопку Сохранить в событии Form_BeforeUpdate, и если он не нажал кнопку Сохранить, предложите пользователю указать, хотите ли он сохранить или отменить изменения. '
Изменение типа компании
Бизнес-правило: Если компания имеет какие-либо заказы, заказы на покупку или является поставщиком продукта, пользователь не может изменить тип компании. Мы создали функцию CompanyIsActive(), чтобы определить, существуют ли какие-либо из указанных выше условий. В этом случае пользователь не может изменить тип компании до тех пор, пока эти ссылки не будут удалены.
Это правило применяется только в этой форме. В приложении, готовом к работе, нельзя разрешить пользователям изменять данные, открыв таблицу напрямую. В Northwind вы можете открывать таблицы и делать все, что вы хотите. Это отличный способ обучения, но он также позволяет вам вносить изменения, которые могут нарушить правила.
Вы всегда должны программировать оборонительно. Запланируйте непредвиденное. Даже если компания в настоящее время является грузоотправителем, это не значит, что они не были в какое-то время поставщиком или клиентом. Их идентификатор можно найти в более старых записях в таблицах ProductVendor или PurchaseOrder . '
Настраиваемая форма диалогового окна.
Для отображения результатов cboCompanyTypeID_BeforeUpdate использует форму диалога frmGenericDialog. Это может быть отличной альтернативой стандартному окку сообщений, если у вас есть много информации для отображения. Он также используется с формой сотрудника для аналогичных целей.' Удаление проверки целостности ссылок
В Northwind Starter Edition мы разрешаем поведению Access по умолчанию уведомлять вас о том, что компания не может быть удалена, если у нее есть связанные записи.
В Northwind Developer Edition мы уведомляем вас перед удалением, а не принимаем поведение Access по умолчанию. Мы делаем это с помощью той же функции, что и изменение типа компании; функция CompanyIsActive().
Разница заключается в том, что мы заботимся только о заказах или заказах на покупку. Если заказы или заказы на покупку отсутствуют, мы подтвердим ваше намерение удалить, и мы удалим поставщик продукта и контакты, если они существуют для вас.
-
Northwind 2.0 Developer Edition: сведения, которые следует знать
-
Northwind 2.0 Developer Edition: все разделы