Параметризирани заявки
Да търсиш определени данни в голяма таблица в изгледа Datasheet не е просто. За насочено търсене служат параметризираните заявки.
Параметризирана заявка
Заявка, в която не всички стойности на участващите атрибути са зададени. Стойността, която не е указана явно, наричаме параметър на заявката.
При изпълнение програмата извежда за всеки параметър диалогов прозорец с предоставена от нас подсказка и текстово поле за конкретната стойност.
Как се създава
В Design View, в полето Criteria на атрибута изписваме параметризирано условие с текста подсказка задължително в квадратни скоби:
Бележка
SELECT Клас, Номер, Име, Презиме, Фамилия, [Дата на раждане]
FROM Ученик WHERE ((Номер = [Номер на ученика:]));
При изпълнение се появява прозорецът „Enter Parameter Value — Номер на ученика:".
Внимание
Без квадратните скоби заявката е синтактически неправилна — програмата извежда Data type mismatch in criteria expression.
Няколко параметъра
Параметрите може да са няколко — и върху един атрибут:
Бележка
… WHERE ((Номер) Between [Начало] And [Край]); — два диалогови прозореца един след друг.
…и върху различни атрибути:
Бележка
… WHERE ((Клас = [Клас:]) And (Номер = [Номер:])); — извлича ученика от избран клас с избран номер.
Резултатът, разбира се, е временна таблица — може да се подава като вход на други заявки.
Търсене с екранна форма
Резултатът от параметризирана заявка се показва в Datasheet — не е удобно за крайния потребител. По-добре: търсачка с екранна форма. Правим копие на формата Ученик (напр. ТърсенеУченик) и в свойството Record Source заместваме името на таблицата с параметризираната заявка:
Ключово
SELECT * FROM Ученик WHERE [ЕГН] = [Задай ЕГН];
Можем — защото временната таблица от заявката е пълноценна таблица и става за Record Source. При отваряне се появява подсказката; след отговор формата се попълва с данните на търсения ученик. Промяна на стойност във формата се пренася автоматично в таблицата в базата.
Задачи от учебника
1) Създайте и изпълнете параметризираните заявки от урока. 2) Съставете свои. 3) Направете форма за търсене на ученик по зададено име, презиме и фамилия. И помислете: какво става, ако зададеш на параметър стойност, която не е стойност на никой кортеж? (Резултатът е празна таблица.)
Какво трябва да запомниш
- Параметризирана заявка = заявка с неуказани явно стойности (параметри).
- Подсказката се пише в [квадратни скоби] в Criteria; без тях — грешка.
- Параметрите може да са произволен брой, върху един или различни атрибути.
- Търсачка: форма с Record Source = параметризирана заявка.
- Несъществуваща стойност на параметър → празна таблица (не грешка).