Применяется к
Access для Microsoft 365 Access 2021 Access 2019

Выберите любой раздел ниже, чтобы узнать об управлении компаниями в 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().

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

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.