Когато искате заявка в Access да иска въвеждане на данни всеки път, когато я изпълнявате, можете да създадете параметризирана заявка.
Можете също да създадете формуляр за събиране на стойностите на параметри, които ще се използват за ограничаване на записите, връщани за заявки, формуляри или отчети. Тази статия обяснява как да използвате формуляри, за да подобрите използването на параметри в заявки, формуляри и отчети.
В тази статия
Общ преглед
Можете да използвате критерии в параметризирана заявка в Access, за да ограничите набора от записите, които заявката връща. Диалоговите прозорци, предоставяни от параметризираната заявка, може да се окажат недостатъчни за вашите цели. В тези случаи можете да създадете формуляр, който по-добре отговаря на вашите нужди от събиране на параметри. Тази статия обяснява как да създадете формуляр, който събира параметри за заявки и отчети. В тази статия се предполага, че сте запознати със създаването на заявки и определянето на параметри в заявките. Като минимум, трябва да сте запознати със създаването на заявка за избиране, преди да продължите.
Тази статия предоставя примери за използването на параметри в заявки. Тя не предоставя изчерпателна информация относно посочването на критерии.
-
За повече информация как да създадете заявка за избиране, вижте статията Създаване на проста заявка за избиране.
-
За повече информация относно заявките изобщо вижте статията Въведение в заявките.
-
За повече информация относно определянето на параметри в заявки вижте статията Използване на параметри за искане на входни данни при изпълнение на заявка.
-
За повече информация как да посочвате критерии в заявки, вижте статията Примери на критерии за заявки.
Използване на параметри в заявки
Използването на параметър в заявка е толкова лесно, колкото и създаването на заявка, която използва критерии. Можете да проектирате заявка, която за да ви подканва да въведете един информационен елемент, като например номер на част, или повече – като например две дати. За всеки параметър параметризираната заявка показва отделен диалогов прозорец, който ви подканва да въведете стойност за съответния параметър.
Добавяне на параметър към заявка
-
Създайте заявка за избиране и след това отворете заявката в изглед за проектиране.
-
В реда Критерии на поле, към което искате да приложите параметър, въведете текста, който искате да се покаже в диалоговия прозорец за параметъра, ограден с квадратни скоби, например:
[Начална дата]
Когато изпълните параметризираната заявка, подканата се показва в диалогов прозорец без квадратните скоби.
Можете също да използвате израз с вашите подкани за параметри, например:
Between [Начална дата] And [Крайна дата]
Забележка: Показва се отделен диалогов прозорец за всяка подкана за параметър. Във втория пример се показват два диалогови прозореца: един за началната дата и друг за крайната дата.
-
Повторете стъпка 2 за всяко поле, към което искате да добавите параметри.
Можете да използвате стъпките по-горе, за да добавите параметър към който и да е от следните типове заявки: избиране, кръстосана заявка, добавяне, създаване на таблица или актуализиране.
Можете също да добавите параметър към заявка за обединение, като изпълните следните стъпки:
-
Отворете заявката за обединение в изглед за SQL.
-
Добавете клауза WHERE, която съдържа всяко от полетата, за които искате да се показва подкана за параметър.
Ако вече съществува клауза WHERE, проверете дали полетата, за които искате да използвате подкана за параметър, вече са в клаузата и ако не са, ги добавете.
-
Вместо да използвате критерий в клаузата WHERE, използвайте подкана за параметър.
Задаване на типове данни за параметри
Можете също да посочите какъв тип данни трябва да приема параметърът. Можете да посочите типа на данните за всеки параметър, но е особено важно да посочите типа на данните за числови и валутни данни или данни за дата и час. Когато зададете типа данни, който трябва да приема параметърът, потребителите виждат по-информативно съобщение за грешка, ако въведат данни от неправилен тип, например текст, когато се очаква валута.
Забележка: Ако един параметър е конфигуриран да приема текстови данни, всяка въведена информация се тълкува като текст и не се показва съобщение за грешка.
За да посочите типа на данните за параметри в заявка, изпълнете следните стъпки:
-
Със заявка, отворена в изглед за проектиране, в раздела Проектиране, в групата Покажи/скрий щракнете върху Параметри.
-
В диалоговия прозорец Параметри на заявката, в колоната Параметър въведете подканване за всеки параметър, за който искате да зададете типа на данните. Уверете се, че всеки параметър съответства на подканването, което използва в реда Критерии на мрежата на заявката за проектиране.
-
В колоната Тип на данните изберете типа на данните за всеки параметър.
Създаване на формуляр, който събира параметри
Макар че параметризираните заявки включват вграден диалогов прозорец, който събира параметрите, те предоставят само основни функции. Използвайки формуляр за събирането на параметрите, можете да спечелите следните функции:
-
Възможност за използване на специфични контроли за тип данни, като например контроли на календар за дати.
-
Запазване на събраните параметри, така че да можете да ги използвате с няколко заявки.
-
Възможност за предоставяне на разгъващ се списък или списъчно поле за събиране на параметрите, осигурявайки избор от списък с налични стойности на данни.
-
Възможност за предоставяне на контроли за други функции, като например отваряне или обновяване на заявка.
Видеото по-долу показва как можете да създадете прост формуляр за събиране на параметри за заявка, вместо да използвате диалоговите прозорци, свързани обикновено с параметризираните заявки.
Създаване на формуляр, който събира параметри за отчет
Има няколко начина, по които можете да подходите към този сценарий, но ще ви покажем само една техника, използваща предимно макроси. Изпълнете стъпките по-долу, за да създадете формуляр, който събира параметри за отчет.
-
Стъпка 2: Създаване на модул с код за проверка дали формулярът за параметър е вече зареден
-
Стъпка 3: Създаване на макрос, който управлява формуляра и отчета
-
Стъпка 4: Добавяне на бутони за команди "OK" и "Отказ" към формуляра
-
Стъпка 5: Използване на данните на формуляра като критерии на заявка
-
Стъпка 6: Добавяне на действията на макроса към събитията на отчета
Стъпка 1: Създаване на формуляр, който приема входни данни
-
В раздела Създаване, в групата Формуляри щракнете върху Проектиране на формуляр.
-
В изглед на проектиране натиснете F4, за да покажете списъка на свойствата, след което задайте свойствата на формуляра, както е показано в таблицата по-долу.
Свойство
Настройка
Надпис
Въведете името, което искате да се показва в заглавната лента на формуляра.
Изглед по подразбиране
Единичен формуляр
Разреши изглед за формуляри
Да
Разреши изглед на лист с данни
Не
Разреши изглед на обобщена таблица
Не
Разреши изглед на обобщена диаграма
Не
Плъзгачи
Няма
Селектори на записи
Не
Бутони за навигация
Не
Стил на граница
Диалогов прозорец
-
За всеки параметър, който искате да се събира от формуляра, щракнете върху Текстово поле в групата Контроли на раздела Проектиране.
-
Задайте свойствата за текстовите полета, както е показано в таблицата по-долу.
Свойство
Настройка
Име
Въведете име, което описва параметъра, например НачалнаДата.
Формат
Изберете формат, който отговаря на типа данни в полето за параметъра. Изберете например Обща дата за поле за дата.
-
Запишете формуляра и му задайте име, като например frmCriteria.
Стъпка 2: Създаване на модул с код за проверка дали формулярът за параметър е вече зареден
-
В раздела Създаване, в групата Макроси и код щракнете върху Модул.
Отваря се нов модул в редактора на Visual Basic.
-
В редактора на Visual Basic въведете или поставете следния код:
Function IsLoaded(ByVal strFormName As String) As Boolean Dim oAccessObject As AccessObject Set oAccessObject = CurrentProject.AllForms(strFormName) If oAccessObject.IsLoaded Then If oAccessObject.CurrentView <> acCurViewDesign Then IsLoaded = True End If End If End Function
-
Запишете модула с уникално име и след това затворете редактора на Visual Basic.
Стъпка 3: Създаване на макрос, който управлява формуляра и отчета
С помощта на функциите за подмакроси на макросите на Access можем да дефинираме всички необходими стъпки в един макрос. Ще създадем четири подмакроса – "Отваряне на диалогов прозорец", "Затваряне на диалогов прозорец", "OK" и "Отказ" – за управлението на различните задачи, необходими за тази процедура. Използвайки долната екранна снимка като ръководство, създайте нов макрос с подмакросите и действията описани по-долу. Обърнете внимание, че за този пример нашият формуляр за параметри се нарича frmCriteria. Коригирайте макроса така, че да съответства на името на формуляра, който сте създали по-рано. Също така проверете дали сте щракнали върху Показване на всички действия в раздела Проектиране, за да видите всички действия за макроси.
Запишете и затворете макроса. Задайте име на макроса, например Макрос за диапазон от дати.
Стъпка 4: Добавяне на бутони за команди "OK" и "Отказ" към формуляра
-
Отворете отново създадения по-рано формуляр за параметри в изглед на проектиране.
-
Уверете се, че опцията Използване на съветници за контроли в групата Контроли на раздела Проектиране не е избрана.
-
В раздела Проектиране, в групата Контроли щракнете върху Бутон.
-
Поставете показалеца под текстовите полета във вашия формуляр и след това плъзнете, за да създадете бутон за команда OK.
-
Ако списъкът на свойствата не се вижда, натиснете F4, за да го покажете.
-
Задайте свойствата на бутона OK, както е показано в таблицата по-долу.
Свойство
Настройка
Име
OK
Надпис
OK
По подразбиране
Да
OnClick
Въведете името на макроса, например Макрос за диапазон от дати.OK.
-
Създайте бутон за команда Отказ и задайте свойствата му, както е показано в таблицата по-долу.
Свойство
Настройка
Име
Отказ
Надпис
Отказ
OnClick
Въведете името на макроса, например Макрос за диапазон от дати.Отказ.
-
Запишете и затворете формуляра.
Стъпка 5: Използване на данните на формуляра като критерии на заявка
-
Отворете създадената по-рано заявка в изглед на проектиране.
-
Въведете критериите за данните. Използвайте обекта Forms , името на формуляра и името на контрола:
-
Например в база данни на Access (.accdb или .mdb) за формуляр с име frmCriteria използвате следния израз за препращане към контролите, наречени "Начална дата" и "Крайна дата" в заявката:
Between [Формуляри]![frmCriteria]![Начална дата] And [Формуляри]![frmCriteria]![Крайна дата]
-
Стъпка 6: Добавяне на действията на макроса към събитията на отчета
-
Отворете отчета, който искате да използвате, в изглед на проектиране.
-
Ако списъкът на свойствата не се вижда, натиснете F4, за да го покажете.
-
Уверете се, че свойството Източник на записи на отчета използва параметризираната заявка, която дефинирахте по-рано.
-
Задайте двете допълнителни свойства на отчета, както е показано в таблицата по-долу.
Свойство
Настройка
OnOpen
Въведете името на макроса, например Макрос за диапазон от дати.Отваряне на диалогов прозорец.
OnClose
Въведете името на макроса, например Макрос за диапазон от дати.Затваряне на диалогов прозорец.
При събитие на отваряне на отчета Access ще изпълни действията, дефинирани в подмакроса "Отваряне на диалогов прозорец" на обекта "Макрос за диапазон от дати". По подобен начин, когато затворите отчета, Access ще изпълни действията, дефинирани в подмакроса "Затваряне на диалогов прозорец" на обекта "Макрос за диапазон от дати".
-
Запишете и затворете отчета.
Стъпка 7: Изпробване
Сега, след като създадохте всички обекти на Access, е време за изпробване. Отворете отчета в Изглед за отчет или Визуализация на печата и обърнете внимание, че преди Access да покаже отчета, вашият формуляр за параметри се отваря в режим на диалогов прозорец. Въведете необходимите критерии в текстовите полета, които създадохте по-рано, след което щракнете върху бутона за команда OK на формуляра. След това Access скрива формуляра (Видим = Не) и отваря отчета само с данните, които отговарят на критериите ви. Това работи, защото параметризираната заявка, на която е базиран отчетът, може да прочете стойностите в контролите в скрития формуляр. Когато затворите отчета, Access ще затвори и формуляра за параметри.