Лого на 91. НЕГ „Проф. Константин Гълъбов“

Модул 3 · Урок 19

Търсене на данни

Параметризирани заявки — стойността се задава при изпълнение с подсказка в диалогов прозорец — и търсачки с екранна форма (Record Source = параметризирана заявка).

Параметризирани заявки

Да търсиш определени данни в голяма таблица в изгледа 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 = параметризирана заявка.
  • Несъществуваща стойност на параметър → празна таблица (не грешка).