Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Запросы. Запросы служат для выборки или изменения данных в таблицах






Запросы служат для выборки или изменения данных в таблицах. Вы обращаетесь с запросом к существующей базе данных и, если запрос сформулирован корректно, получаете ответ. При этом экономится немало времени, которое пришлось бы тратить на поиск ответа другими средствами. Существуют и другие способы получения данных из таблиц, но мы начнем именно с запросов. Для изменения данных в таблицах тоже можно пользоваться другими способами (например, модифицировать таблицу вручную), однако запросы позволяют легко внести изменения сразу в несколько записей и полей. Предположим, нас интересует, какие книги были написаны Стивеном Блахом. Для этого мы определим на языке SQL запрос, в который войдут лишь интересующие нас записи. Поступитеследующим образом:

1. Откройте пример из подраздела «Использование элемента данных».

2. В окне свойств замените значение свойства RecordSource следующим: select * from [Authors] where [Author] = " Blaha, Stephen"

3. Выполните команду Run > Start.

Результат запроса выглядит так:

 

Имя автора Номер
Blaha, Stephen  

 

Результат запроса очень похож на таблицу; фактически он представляет собой подмножество записей таблицы. В терминологии Visual Basic и Access такое подмножество называется «динамическим набором». Данные, входящие в динамический набор, на самом деле не существуют — они лишь временно извлекаются из интересующей вас таблицы (или таблиц), а при сохранении запроса записывается лишь критерий выборки (в нашем примере критерий — это автор с именем Stephen Blaha). Определение «динамический» означает, что при изменении таблицы состав набора может измениться, но запрос останется тем же. Поскольку динамический набор является подмножеством записей существующей таблицы, вы можете изменить входящие в него данные — это приведет к изменению данных исходной таблицы. Следует учесть, что на редактирование данных в динамических наборах накладываются некоторые ограничения, например запрещается вносить изменения, угрожающие целостности данных. Например, если таблица с именами авторов не должна содержать повторяющихся имен, вы не сможете создать новую запись для книги, написанной тем же автором.

Запросы составляют чрезвычайно важную часть Visual Basic и Access. Вы можете не только изменять данные в динамическом наборе, но и обращаться с запросом к самому запросу (надеюсь, вы понимаете, что имеется в виду). Скажем, если динамический набор содержит названия нескольких книг, написанных Стивеном Бла-хом, критерий можно ужесточить и ограничить его одним-двумя названиями. Возникает принципиальный вопрос — почему бы не поставить названия книг на первое место и не заменить два запроса одним? Конечно, это вполне допустимо, и более того, во многих ситуациях поступать следует именно так, Тем не менее изящество запросов Access как раз и заключается в том, что последовательные запросы позволяют постепенно сужать динамический набор и просматривать результаты промежуточных запросов. Запросы становятся «многослойными», а во многих ситуациях именно это и требуется.

Попутно возникает еще один, не менее важный вопрос. Стоит ли возиться с запросом, если вы можете просмотреть таблицы и «вручную» выбрать из нее все книги Стивена Блаха? Если таблица состоит всего из трех записей, такое замечание выглядит вполне обоснованным. Но если в базе хранится несколько десятков, сотен и даже тысяч записей, использование запросов позволяет легко выделить интересующую вас информацию. Обычно в запросы входит информация из нескольких таблиц — это позволяет просматривать и изменять данные из логически связанных, но тем не менее различных таблиц на одной форме Visual Basic.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.