Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Изберете някоя тема по-долу, за да научите повече за служителите в изданието Northwind за разработчици. 

Служителите имат един разделен формуляр, който работи като формуляр за списък и подробни данни. 

Използвайте "Служители", за да добавите нови служители и да актуализирате информацията за съществуващите служители. 

Изберете раздела Служители на лентата, за да покажете служителите във формуляра "Списък със служители", frmEmployeeList, който е разделен формуляр със следните функции: 

  • Горната част на формуляра е един изглед за един служител.

  • Долната част на формуляра е изглед на лист с данни на всички служители.

  • Избирането на служител в която и да е част също задава фокуса към този служител в другата част на разделения формуляр.

  • Можете да добавяте, редактирате или изтривате служители в която и да е част от разделения формуляр.

  • Използването на разделен формуляр с частта за изглед на лист с данни предполага, че източникът на записи на формуляра има множество записи.

Потенциално въздействие върху производителността на разделен формуляр 

Повечето разработчици предпочитат да не зареждат нефилтрирана таблица или заявка като източник на записи за формуляр. Филтрирането на формуляр в един запис намалява количеството данни, които трябва да бъдат прехвърлени от таблицата във формуляра. При локална таблица на Access разликата между зареждането на филтриран източник на записи и малък нефилтриран източник на записи едва се забелязва. Тази производителност обаче се губи, когато таблиците на Access се заместят с отдалечена, базирана на сървър база данни, например SQL Server. 

Таблицата за служители в Northwind не трябва да нараства много, така че е кандидат за нефилтриран източник на записи. Обаче формулярите, обвързани с други таблици, като подробни данни за поръчката – които потенциално ще нараснат до много хиляди записи – не са кандидати за нефилтриран източник на записи.
 

РЕДАКТИРАНЕ НА СЛУЖИТЕЛИ

Когато добавят или редактират записи в разделен формуляр, потребителите могат да въвеждат стойности или в изглед на формуляр, или в изглед на лист с данни. Някои полета са задължителни, някои са незадължителни. Формулярът проверява наличието на стойности в задължителните полета. Вижте Проверка на задължително поле по-долу.

Справочни таблици, списъци със стойности и контроли на падащо меню

  • Падащото меню Заглавия ограничава записите до списък с предварително избрани заглавия. Заглавията са в таблица за справки , наречена Заглавия.

  • Някои очаквани възможности за избор вече се съхраняват в таблицата за справки, но потребителите могат да добавят нови заглавия към справочната таблица, като използват поведението по подразбиране на Access за разгъващия се списък или контролите на падащия списък.

    • Свойството Ограничаване до списъкана разгъващия се списък заглавие е настроено на Да и формулярът за редактиране за заглавия се идентифицира в свойството Списъчен формуляр за редактиране на елементи от списък. Избирането на падащото меню във формуляра показва иконата за редактиране в долния край. 
      ...

Щракването върху иконата за редактиране отваря формуляра за редактиране "Заглавия ", frmEmployeeTitles, където можете да промените или добавите към списъка с одобрени заглавия. 

ЗАБЕЛЕЖКА:В повечето производствени среди редактирането или добавянето на заглавия ще бъде ограничено до потребители с подобрени привилегии.
 

Self-Referential справочни полета

Функцията служител илюстрира концепцията за поле "ИД на Self-Referential". За да подпомогне определянето на ръководител на служител, таблицата има поле SupervisorID с EmployeeIDза други служители. За да определите супервайзор, в това поле се въвежда EmployeeID за друг служител. Access поддържа целостта на връзките за тази релация.

SupervisorID се изпълнява във формуляра за служителя като падащ списък или раз комбиниран списък; неговият източник на редове е филтриран набор от записи от таблицата "Служител". Тъй като това е самоотносително, заявката трябва да изключи собствения ИД на служител на избрания служител. Например източникът на редове за SupervisorID за служител Карън Финстър не включва собствен EmployeeID на Карън. Тя не може да бъде собствен супервайзор.

Полета и контроли за прикачени файлове

Картините на служителите се съхраняват в поле за прикачени файлове в таблицата. Добавяте нови изображения или променяте съществуващи изображения, като използвате поведението по подразбиране на Access за полета за прикачени файлове. 
...

ЗАБЕЛЕЖКА: Включихме поле за прикачени файлове в таблицата Служител , за да илюстрираме функцията в Access. Вградените изображения увеличават размера на accdbs и следователно не се считат за най-добра практика. Внимателно оценете вашата среда, преди да я внедрявате в производствено приложение. Предпочитаната алтернатива е мрежова папка, която съхранява всички изображения, и връзка в текстово поле в таблицата, съдържаща пътя към изображението, а не полето "Прикачен файл ".

Подформуляр със свързана информация

Подформулярът "Поръчки" (от дясната страна на формуляра "Служител") показва последните поръчки (ако има такива), обработени от служителя. Подформулярът показва поръчки в изглед на лист с данни, сортирани от най-новите към най-старите. За да редактирате съществуваща поръчка за този служител, щракнете върху ИД на поръчката с хипервръзка # в подформуляра Поръчки.

Източник на записи за формуляр за служители

Заявка, наречена qryEmployees , връща записите във формуляра. Използването на заявка, а не на таблицата, обикновено се счита за най-добра практика. Заявката връща записи само от една таблица. Освен това заявката може да бъде параметризирана, за да се ограничи броят на върнатите записи. 

  • Клаузата за избор на тази заявка използва заместващия символ "*", за да върне всички полета от таблицата "Служител".

  • Две изчисляеми полета в заявката връщат СобственоИме ФамилноИме и ФамилноИме.
     

Изчисляеми стойности в контроли

ЗАБЕЛЕЖКА: Изчисляемите полета не се съхраняват в таблицата. Те обаче са налични в източника на записи на формуляра.

Повечето контроли във формуляра "Служител" са разрешени , така че можете да ги изберете с мишката или с клавиша Tab в тях и да не са заключени , така че да могат да се редактират. 

В допълнение към вграденото поведение на Access, VBA подсайтовете и функциите във формулярите, в контролите във формулярите и в самостоятелните модули изпълняват основната логика, необходима за служителите. Следващият раздел описва функциите и кода, който реализира тези функции. 

Вградено действие за управление

Поведение по подразбиране на селектора на записи на формуляра: 

  • Щракването с левия бутон върху селектора на запис отляво на формуляр в един изглед записва текущия запис с всякакви редакции. Записването чрез щракване с левия бутон върху селектора на запис активира подходящи vba подсайтове и функции.

  • Щракване с десния бутон върху селектора на запис отляво на формуляр в един изглед изскача меню за извършване на действия, като изрязване, копиране или поставяне на запис. Изтриването или изрязването на запис активира функцията EmployeeCanBeDeleted , описана по-долу.

  • За да бъде налично това поведение по подразбиране, селекторите на записи трябва да бъдат разрешени за формуляр.
     

Цялост на връзките за записи във формуляра

Целостта на връзките не позволява изтриване на служители, които имат дъщерни записи в свързани таблици. Следователно Access предизвиква грешка, ако потребител се опита да изтрие запис с дъщерни записи. Формулярът Northwind Employee Access замества общи съобщения за грешка по подразбиране по отношение на целостта на връзките със съобщения по избор.

Кодът в процедурата за изтриване на формуляра отговаря на опити за изрязване на запис от контекстното меню или за изтриване на запис с помощта на клавиша Delete

Частна функция, СлужителCanBeDeleted проверява за свързани записи за този служител в таблиците "Поръчки", "Поръчки за покупка", "Служители" и "Привилегии на служител"

Ако бъдат открити, тази функция потиска съобщението за грешка по подразбиране и информира потребителя за причината, поради която записът не може да бъде изтрит, като използва същия общ диалогов прозорец, който формулярът за клиент използва, за да уведоми потребителя за причината, поради която клиентът не може да бъде изтрит.

Ратифицирам

Служителите реализират проверка и стандартно обработване на грешки. Има два типа проверка за контроли.

  • Задължителни полета

  • Стандартни формати

Проверка на задължително поле

 За всички служители са необходими три полета:

  • Собствено име

  • Фамилно име

  • Длъжност

В тази версия за разработчици събитието " Преди актуализиране" на формуляра проверява задължителните полета. Ако потребител се опита да запише запис за служител без стойности за едно или повече задължителни полета, които нямат проверка на стойността, отменя записването и осветява всички задължителни полета, които нямат стойност. Във формуляра Служител в Northwind задължителната проверка на полета се обработва от събитието Before Update на формуляра, а не от отделните контроли.

Събитието "Преди актуализиране " на формуляра "Служител" проверява наличието на стойности за трите задължителни полета. Записването на запис за нов или редактиран служител задейства събитието Before Update на формуляра, което извиква публични функции, които проверяват и отговарят на наличието или отсъствието на необходимите стойности.

Модулът modValidation съдържа следните функции:

  • Проверка на формуляр

  • IsValidForm

  • Контроли за осветяване на данни

  • Контрола за осветяване

  • ValidateForm_RemoveHighlights

Управление на нови служители

Щракването върху бутона Добавяне на служител стартира btnNewEmployee_Click private, за да: 

  • записване на текущия запис и

  • задаване на фокуса на формуляра върху нов запис
    '

Заместващи символи или наименувани полета в заявка за избиране

Клаузата SELECT в qryEmployees използва заместващия символ "*", за да избере ВСИЧКИ полета в таблицата. Проектът на заявката със заместващ символ автоматично включва всички новодобавени полета от базова таблица, което не е възможно със списък от конкретни полета. От друга страна може да се изброят конкретни полета, за да се ограничи върнатият набор записи само до полетата, необходими например във формуляр само за показване.

Подходящи възможности за избор на проект

Проектите ви трябва да се основават на подходящия подход за вашите изисквания. Въпреки че, когато е възможно, предпочитанието обикновено отива на подхода, който е най-малко вероятно да изисква бъдеща поддръжка (т.е. подход със заместващ символ). 

ComboBoxes bound to Lookup Tables – Two approaches

Свързаните елементи, като например Супервайзор на служител, се показват в Падащи менюта или Разгъващи се списъци във формуляри. Само външният ключ за SupervisorID е необходим в заявката за източник на записи на формуляра, защото това поле е обвързано с полето външен ключ (SupervisorID). Разгъващият се списък показва също съответната текстова стойност.

Дву колонна разгъващ се списък със скрита колона с ИД и видима колона Описание прави това. Във формуляра за служители разгъващият се списък Supervisor е обвързан с проста заявка с две колони. Вижте свойството RowSource за Supervisor.

В някои случаи обаче справочната таблица няма отделен първичен ключ и следователно самата текстова стойност е първичният ключ.

Когато даден списък с възможни стойности е малък и силно стабилен, например длъжност на служител, той често се нарича Затворен домейн. Промяната или добавянето на стойности за заглавие не е често срещано. Затворените таблици за справки за домейни са кандидати за подхода на заявките с една колона.

Във формуляра Служител разгъващият се списък Заглавие е обвързан със заявка в една колона за заглавия. Вижте свойството RowSource за заглавия. 

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×