Как сделать запрос с параметром в access 2007?

Работа с параметрами запроса на сервере (PHP)

Задача была решена парой строчек кода на PHP.

Ниже код двух страничек, первая это эмуляция лендинга со ссылкой на эмуляцию страницы с формой, вторая это эмуляция страницы с формой.

Лендинг (index.php):

<?php
$queryStr = filter_input(INPUT_SERVER, ‘QUERY_STRING’);
$url = $queryStr ? ‘form.html?’ . $queryStr : ‘form.html’;
?>
<!DOCTYPE html>
<html lang=»ru»>

<head>
<meta charset=»utf-8″>
<meta name=»viewport» content=»width=device-width, initial-scale=1.0″>
<title>Лендинг</title>
</head>

<body style=»background-color: #f5f5f5″>
<div style=»width: 100%; max-width: 600px; margin: 100px auto; background-color: #ffffff; padding: 60px 40px; text-align: center;»>
<h1>Это лендинг</h1>
<p><a href=»<?= $url ?>» target=»_blank»>Это ссылка на страницу с формой</a></p>
</div>
</body>

</html>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

<?php

$queryStr=filter_input(INPUT_SERVER,’QUERY_STRING’);

$url=$queryStr?’form.html?’.$queryStr’form.html’;

?>

<!DOCTYPE html>

<html lang=»ru»>

<head>

<meta charset=»UTF-8″>

<meta name=»viewport»content=»width=device-width, initial-scale=1.0″>

<title>Лендинг<title>

<head>

<body style=»background-color: #f5f5f5″>

<div style=»width: 100%; max-width: 600px; margin: 100px auto; background-color: #ffffff; padding: 60px 40px; text-align: center;»>

<h1>Этолендинг<h1>

<p><ahref=»<?=$url?>»target=»_blank»>Этоссылканастраницусформой<a><p>

<div>

<body>

<html>

Страница с формой (form.html):

<!DOCTYPE html>
<html lang=»ru»>

<head>
<meta charset=»utf-8″>
<meta name=»viewport» content=»width=device-width, initial-scale=1.0″>
<title>Страница с формой</title>
</head>

<body style=»background-color: #f5f5f5″>
<div
style=»width: 100%; max-width: 600px; margin: 100px auto; background-color: #ffffff; padding: 60px 40px; text-align: center;»>
<h1>Это страница с формой</h1>
</div>
</body>

</html>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<!DOCTYPE html>

<html lang=»ru»>

 
<head>

<meta charset=»UTF-8″>

<meta name=»viewport»content=»width=device-width, initial-scale=1.0″>

<title>Страница с формой</title>

</head>
 

<body style=»background-color: #f5f5f5″>

<div

style=»width: 100%; max-width: 600px; margin: 100px auto; background-color: #ffffff; padding: 60px 40px; text-align: center;»>

<h1>Это страница с формой</h1>

</div>

</body>
 
</html>

Собственно решение в первом PHP-блоке:

<?php
$queryStr = filter_input(INPUT_SERVER, ‘QUERY_STRING’);
$url = $queryStr ? ‘form.html?’ . $queryStr : ‘form.html’;
?>

1
2
3
4

<?php

$queryStr=filter_input(INPUT_SERVER,’QUERY_STRING’);

$url=$queryStr?’form.html?’.$queryStr’form.html’;

?>

В первой строке, при помощи функции filter_input, получаем строку запроса из суперглобального массива $_SERVER.

Во второй строке, если строка запроса имеется, прикрепляем её к URL страницы с формой.

Получившуюся переменную $url выводим в атрибуте href ссылки.

Таким образом на страницу form.html стали передаваться UTM-метки, и CRM-система начала получать информацию о канале рекламы, с которого пришел тот или иной посетитель.

Решение, приведенное выше, далеко не универсально. Поскольку берутся все параметры запроса, а кроме UTM-меток, среди них, могут быть и другие параметры.

Стоит немного усовершенствовать код, чтобы брать только те параметры, которые нам нужны.

<?php
$validParams = [ // Допустимые имена параметров
‘utm_source’,
‘utm_medium’,
‘utm_campaign’,
‘utm_content’,
‘utm_term’
];
$queryStr = »;
$inputArray = filter_input_array(INPUT_GET); // Получаем параметры из массива $_GET
if ($inputArray)
{
foreach ($inputArray as $key => $value)
{
$key = strtolower($key);
if(in_array($key, $validParams)) // Проверка имени параметра на допустимость
{
$queryStr .= «$key=$value&»; // В цикле формируем строку с параметрами
}
}
$queryStr = rtrim($queryStr, ‘&’); //удаляем последний символ &
}
$url = $queryStr ? ‘form.html?’ . $queryStr : ‘form.html’;
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

<?php

$validParams=// Допустимые имена параметров

‘utm_source’,

‘utm_medium’,

‘utm_campaign’,

‘utm_content’,

‘utm_term’

;

$queryStr=»;

$inputArray=filter_input_array(INPUT_GET);// Получаем параметры из массива $_GET

if($inputArray)

{

foreach($inputArrayas$key=>$value)

{

$key=strtolower($key);

if(in_array($key,$validParams))// Проверка имени параметра на допустимость

{

$queryStr.=»$key=$value&»;// В цикле формируем строку с параметрами

}

}

$queryStr=rtrim($queryStr,’&’);//удаляем последний символ &

}

$url=$queryStr?’form.html?’.$queryStr’form.html’;

?>

Чтобы применить многоуровневую сортировку:

  1. Откройте запрос и перейдите к представлению «Дизайн» .
  2. Сначала найдите поле, которое вы хотите отсортировать. В строке Sort: щелкните стрелку раскрывающегося списка, чтобы выбрать либо восходящую, либо нисходящую сортировку.
  3. Повторите процесс в других полях, чтобы добавить дополнительные сортировки. Помните, что виды применяются слева направо, поэтому любые дополнительные виды должны применяться к полям, расположенным справа от вашего основного вида. При необходимости вы можете изменить поля, щелкнув поле и перетащив его в новое место.
  4. Чтобы применить сортировку, щелкните команду «Выполнить».
  5. Результаты запроса появятся с нужной сортировкой.

Вы также можете применять многоуровневые сортировки к таблицам, которые не имеют запросов к ним. На домашней вкладке на ленте, выберите Дополнительно команды раскрывающейся в Сортировка и Фильтрация группы. Выберите «Расширенный фильтр / Сортировка» и создайте многоуровневую сортировку, как обычно. Когда вы закончите, нажмите кнопку Toggle Filter, чтобы применить свой вид.

Расширенный перекрестный запрос

Продолжаем усложнять ситуацию. Еще труднее для понимания является информация о том, как создавать запросы в Access, если присутствует несколько таблиц с данными. Перекрестный запрос уже рассматривался выше, как один из вариантов работы с Мастером. Однако, и в режиме «Конструктора» можно создавать подобный запрос.

Для этого необходимо нажать «Конструктор запросов» — «Перекрестный».

Открывается меню добавления исходных таблиц, а также возможность заполнения выборочных полей

Единственное, на что следует обратить внимание, – пункты «групповая операция» и «перекрестная таблица». Их нужно заполнять правильно, иначе процедура не будет выполнена корректно

Перекрестные запросы – это наиболее простой способ поиска и выборки информации из нескольких источников данных, плюс с возможностью формирования диаграмм и графиков.

Более того, при использовании данной процедуры быстрее выполняется поиск, даже с несколькими вариантами развития.

Конечно, присутствуют и «подводные камни», которые могут помешать в работе. Например, при создании запроса на сортировку базы данных по значению столбцов система выдает ошибку. То есть доступна только сортировка по стандартным пунктам – «возрастание и убывание».

Почему Мы Должны Использовать Параметры Запроса?

Вместо использования параметров запроса мы могли бы использовать литералы, однако, как мы сейчас увидим, это не рекомендуемый способ сделать это.

Давайте перепишем предыдущий запрос, чтобы получить сотрудников по emp_number с помощью API JPA, но вместо параметра мы будем использовать литерал, чтобы четко проиллюстрировать ситуацию:

String empNumber = "A123";
TypedQuery query = em.createQuery(
  "SELECT e FROM Employee e WHERE e.empNumber = '" + empNumber + "'", Employee.class);
Employee employee = query.getSingleResult();

Этот подход имеет некоторые недостатки:

  • Встраивание параметров создает угрозу безопасности, делая нас уязвимыми для Атаки инъекций JPQL . Вместо ожидаемого значения злоумышленник может ввести любое неожиданное и, возможно, опасное выражение JPQL
  • В зависимости от используемой нами реализации JPA и эвристики нашего приложения кэш запросов может быть исчерпан. Новый запрос может создаваться, компилироваться и кэшироваться каждый раз, когда мы используем его с каждым новым значением/параметром. Как минимум, это не будет эффективным, и это также может привести к неожиданной ошибке OutOfMemoryError

Использование параметров в запросах

Использовать в запросе параметр не сложнее, чем создать запрос на основе условий. Запрос можно настроить таким образом, чтобы он предлагал ввести определенное значение, такое как артикул товара, или несколько значений, например две даты. Для каждого параметра запрос выводит отдельное диалоговое окно, в котором предлагается ввести значение.

Добавление параметра в запрос

Создайте запрос на выборку и откройте его в конструкторе.

В строке Условия поля, для которого вы хотите применить параметр, введите в квадратных скобках текст, который должен отображаться в соответствующем диалоговом окне. Пример:

При выполнении запроса с параметрами этот текст отобразится в диалоговом окне без квадратных скобок.

При запросе параметров также можно использовать выражения. Пример:

Between And

Примечание: Для каждого параметра выводится отдельное диалоговое окно. Во втором примере появляется два окна: одно для даты начала, второе — для даты окончания.

Повторите шаг 2 для каждого поля, для которого хотите добавить параметры.

С помощью описанных выше действий можно добавить параметр в запрос любого из следующих типов: выборка, добавление, создание таблицы и обновление, а также перекрестный запрос.

Кроме того, с помощью перечисленных ниже действий можно добавить параметр в запрос на объединение.

Откройте запрос на объединение в режиме SQL.

Добавьте предложение WHERE, содержащее каждое поле, для которого требуется ввести параметр.

Если предложение WHERE уже существует, убедитесь в том, что поля, для которых нужно ввести параметры, уже есть в этом предложении; в противном случае добавьте их.

Вместо условия в предложении WHERE используйте запрос параметра.

Видео: использование параметров в запросах

Использовать в запросе параметр не сложнее, чем создать запрос на основе условий. Запрос можно настроить таким образом, чтобы предлагалось ввести определенное значение, такое как артикул товара, или несколько значений, например две даты. Для каждого параметра запрос выводит отдельное диалоговое окно, в котором предлагается ввести значение.

В этом видео подробнее рассказывается о создании параметров в запросах.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки

Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке)

1.3. Создание запроса с параметром

Встречаются задачи, в которых параметры запросов заранее неизвестны, или есть необходимость в их изменении. Для этого в Access предусмотрена возможность ввода параметров запросов непосредственно перед их исполнением. Чтобы установить ввод параметра вместо конкретного значения, в строке «Условие отбора» вводятся имя или фраза, заключенные в квадратные скобки. Все, введенное в квадратных скобках Access рассматривает как имя параметра, и выводится в диалоговом окне запроса как комментарий в вводимому параметру. В запросе можно использовать несколько параметров, но с уникальными именами.

Создадим запрос, выводящий список преподавателей работающих на задаваемой пользователем кафедре. За основу возьмем таблицу «Преподаватели». Выберем в бланк вывода пункт «Преподаватели.*», выводящий все поля таблицы «Преподаватели”. Введем еще раз описание поля “Кафедра”, сбросим для него флажок вывода на экран, и в строке «Условие отбора» этого поля введем выражение: =

Сохраним полученный запрос как «Выборка преподавателей по кафедрам». Выполнив запуск запроса, мы увидим диалоговое окно, запрашивающее название кафедры.

После ввода параметра Access выводит список преподавателей, местом работы которых является запрашиваемая кафедра. Ввод параметров можно использовать при любом типе запросов: итоговом, перекрестном, запросе-действии и т.д.

ЗАПРОСЫ

Одним из основных инструментов обработки данных в СУБД являются запросы.
Запрос (query) есть механизм выбора и представления информации из базы данных. Запрос направляется пользователем или программой в СУБД для поиска отдельных записей в базе данных. Вопрос, сформированный по отношению к базе данных, и есть запрос.

Запросы отличаются от фильтров следующими свойствами:

  • Запрос можно сохранить в виде объекта базы данных.
  • Запрос может содержать поля из нескольких таблиц,
  • В качестве основы дня отчета или формы можно использовать запрос.
  • Специальные запросы можно использовать для вычислений, для обобщения информации, для добавления записей из одной таблицы в другую, для удаления записей, а также для глобального редактирования.

Механизм запросов реализует одно из основных назначений базы данных — быстрый поиск информации и получение ответов на поставленные вопросы.С помощью запроса можно выполнить следующие виды обработки данных:

  • выбрать записи, удовлетворяющие условиям отбора;
  • включить в результирующую таблицу запроса заданные пользователем поля;
  • произвести вычисления в каждой из полученных записей;
  • сгруппировать записи с одинаковыми значениями в одном или нескольких полях для выполнения над ними групповых функций;
  • произвести обновление полей в выбранном подмножестве записей;
  • создать новую таблицу базы данных, используя данные из существующих таблиц;
  • удалить выбранное подмножество записей из таблицы базы данных;
  • добавить выбранное подмножество записей в другую таблицу.

Последовательное выполнение ряда запросов позволяет решать достаточно сложные задачи, не прибегая к программированию.

В MS Access можно выделить следующие виды запросов

  1. По результатам действий и особенностям выполнения запросы можно разделить следующим образом:

    • запросы на выборку, используемые для того, чтобы отобрать и представить в удобном виде данные из одной или нескольких таблиц (или запросов);
    • параметрические запросы, которые позволяют задавать конкретные условия отбора непосредственно при выполнении запроса;
    • перекрестные запросы, которые позволяют провести группировку и вычисления, а также представить данные в компактном виде, близком к сводной таблице Microsoft Excel;
    • запросы на изменение, которые позволяют изменять таблицы базы данных: обновлять их, дополнять новыми записями, удалять некоторые записи. Они могут использоваться для создания новых реальных таблиц, которые,в отличие от обычных выборок, в дальнейшем существуют уже независимо от тех таблиц базы данных, которые были использованы для их построения.
  2. По способу формирования запросы можно разделить на два вида:

    • запросы по образцу, или QBE-запросы (Query By Example), при создании которых необходимо указать параметры запроса в окне конструктора, задавая образцы для поиска информации;
      Система запроса по образцу выводит данные, имеющие отношение к вводимым. Запрос формируется путем заполнения бланка запроса в окне Конструктора запросов. Указываются критерии выборки записей в исходной таблице. С точки зрения пользователя, конструирование запроса — это просто пометка нужных элементов формы в окне Конструктора запросов.
    • структурированные запросы, или SQL-запросы (Structured Query Language), для создания которых необходимо описать запрос с помощью языка запросов SQL.
      С помощью структурированного языка формируются запросы любой сложности. Запрос составляется из последовательности SQL-инструкций, которые задают, что надо сделать с вводным набором данных для генерации выходного набора. Выбранную информацию с базы данных можно обработать с помощью специальных анализирующих функций (минимальные и максимальные значения, средние величины, суммы). Работа с SQL-запросом рассчитана на специалиста-программиста. Пользователю, как правило, не приходится обращаться к языку SQL напрямую

    В действительности любой запрос в Microsoft Access реализуется с помощью языка SQL. И хотя большинство запросов можно создавать в режиме конструктора, используя возможности запроса по образцу, каждый созданный запрос хранится в виде инструкции SQL. При создании запроса по образцу Microsoft Access автоматически формирует соответствующий SQL-запрос. Можно просмотреть инструкцию SQL для существующего запроса и внести в нее изменения. В этом случае автоматически будет обновляться определение соответствующего запроса по образцу в режиме конструктора.

Шаг 4. программный вызов инструкцииSelect()SqlDataSource

В примерах, приведенных в предыдущем учебном курсе, и в этом руководстве ранее привязываются элементы управления SqlDataSource к GridView. Однако данные элемента управления SqlDataSource могут быть программно доступны и перечислены в коде. Это может быть особенно полезно, если необходимо запросить данные для проверки, но не нужно отображать их. Вместо того чтобы писать весь стандартный код ADO.NET для подключения к базе данных, указать команду и получить результаты, можно разрешить SqlDataSource обработку этого кода монотонную.

Чтобы продемонстрировать работу с данными SqlDataSource s программным способом, представьте, что ваш начальник поработал с запросом на создание веб-страницы, в которой отображается имя выбранной категории и связанных с ней продуктов. То есть, когда пользователь посещает эту страницу, нам нужно случайным образом выбрать категорию из таблицы , отобразить имя категории, а затем перечислить продукты, принадлежащие этой категории.

Для этого нам нужно два элемента управления SqlDataSource, чтобы получить случайную категорию из таблицы , а другую — для получения продуктов категории. Мы создадим средство SqlDataSource, которое получает запись случайной категории в этом шаге. Шаг 5 рассматривает создание средства SqlDataSource, которое получает продукты категории.

Начните с добавления элемента SqlDataSource в и задайте для его значение . Настройте его так, чтобы он использовал следующий запрос SQL:

возвращает записи, отсортированные в случайном порядке (см. раздел использование для случайной сортировки записей). возвращает первую запись из результирующего набора. Вместе этот запрос возвращает значения столбцов и из одной, случайной выбранной категории.

Чтобы отобразить категорию значение, добавьте на страницу веб-элемент управления Label, задайте для его свойства значение и удалите его свойство . Для программного получения данных из элемента управления SqlDataSource необходимо вызвать метод . Метод принимает один входной параметр типа , который указывает, каким образом данные должны быть сообщены перед возвратом. Это могут быть инструкции по сортировке и фильтрации данных, а также используются веб-элементами управления данными при сортировке или разбиении по страницам данных из элемента управления SqlDataSource. Однако в нашем примере мы не хотим, чтобы данные были изменены перед возвратом, и поэтому перейдут в объект .

Метод возвращает объект, реализующий . Точный возвращаемый тип зависит от значения свойстваэлемента управления SqlDataSource. Как обсуждалось в предыдущем руководстве, этому свойству можно присвоить значение либо , либо . Если задано значение , метод возвращает объект DataView . Если задано значение , то возвращается объект, реализующий . Так как для свойства SqlDataSource задано значение (значение по умолчанию), мы будем работать с объектом DataView.

В следующем коде показано, как извлечь записи из SqlDataSource как DataView, а также как считать значение столбца из первой строки DataView:

возвращает первый в объекте DataView. возвращает значение столбца в первой строке

Обратите внимание, что объект DataView слабо типизирован. Чтобы сослаться на конкретное значение столбца, необходимо передать имя столбца в виде строки (CategoryName, в данном случае)

На рис. 13 показано сообщение, отображаемое в при просмотре страницы. Конечно, фактически отображаемое имя категории выбирается случайным образом SqlDataSource при каждом посещении страницы (включая обратные передачи).

Рис. 13. отображается случайно выбранное имя категории s (щелкните, чтобы просмотреть изображение с полным размером)

Note

Если свойству элемента управления SqlDataSource было присвоено значение , то для возвращаемого значения метода необходимо привести к . Чтобы считать значение столбца из первой строки, мы используем следующий код:

При случайном выборе категории с помощью SqlDataSource мы повторно готовы добавить GridView, в котором перечислены продукты категории.

Note

Вместо использования элемента управления Label для вывода имени категории s можно было добавить FormView или DetailsView на страницу, привязывая его к SqlDataSource. Однако использование метки позволило нам исследовать, как программным способом вызвать инструкцию SqlDataSource и работать с полученными в коде данными.

Консоль запросов с их сохранением в базе

Консоль запросов стандартная, предназначена для создания и выполнения запросов в режиме предприятия с помощью конструктора запросов или вручную.
Долгое время использовал эту стандартную консоль запросов и даже научил нескольких бухгалтеров пользоваться ею, и понял, что основное неудобство — это хранение запросов во внешних файлах, когда копии запросов расползаются по рабочим столам, и бухгалтера (да и я ) должны помнить, где лежит последняя версия запроса. И тогда мне пришла мысль хранить их в самой базе, что я и реализовал. При этом возможности штатного сохранения\чтения в/из внешних файлов осталась неизменной.

1 стартмани

Запросы с параметрами

Запрос в Access является объектом, который сохраняется в файле базы данных и может многократно повторяться. Все запросы, которые мы демонстрировали до сих пор, содержали конкретные значения дат, названий, имен и т. д. Если требуется повторить такой запрос с другими значениями в условиях отбора, его нужно открыть в режиме Конструктора, изменить условие и выполнить. Чтобы не делать многократно этих операций, можно создать запрос с параметрами. При выполнении такого запроса выдается диалоговое окно Введите значение параметра (Enter Parameter Value), в котором пользователь может ввести конкретное значение и затем получить нужный результат.

Покажем, как создавать запросы с параметрами на примере запроса «Отсортированный список товаров», который мы создавали ранее. Теперь мы с помощью этого запроса попробуем отобрать товары, поставляемые определенным поставщиком. Для этого:

  1. Откройте данный запрос в режиме Конструктора.
  2. Чтобы определить параметр запроса, введите в строку Условие отбора (Criteria) для столбца «Название» (CompanyName) вместо конкретного значения слово или фразу и заключите их в квадратные скобки, например . Эта фраза будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса.
  3. Если вы хотите, чтобы Access проверяла данные, вводимые в качестве параметра запроса, нужно указать тип данных для этого параметра. Обычно в этом нет необходимости при работе с текстовыми полями, т.к. по умолчанию параметру присваивается тип данных Текстовый (Text). Если же данные в поле запроса представляют собой даты или числа, рекомендуется тип данных для параметра определять. Для этого щелкните правой кнопкой мыши на свободном поле в верхней части запроса и выберите из контекстного меню команду Параметры (Parameters) или выполните команду меню Запрос, Параметры (Query, Parameters). Появляется диалоговое окно Параметры запроса (Query Parameters), представленное на рис. 4.31.

    Рис. 4.31. Диалоговое окно Параметры запроса

  4. В столбец Параметр (Parameter) нужно ввести название параметра точно так, как он определен в бланке запроса (легче всего это сделать путем копирования через буфер обмена), только можно не вводить квадратные скобки. В столбце Тип данных (Data Type) выберите из раскрывающегося списка необходимый тип данных. Нажмите кнопку ОК.
  5. Нажмите кнопку Запуск (Run) на панели инструментов, чтобы выполнить запрос. При выполнении запроса появляется диалоговое окно Введите значение параметра (Input Parameter Value) (рис. 4.32), в которое нужно ввести значение, например Tokyo Traders. Результат выполнения запроса представлен на рис. 4.33. В него попадают только те товары, которые поставляются данным поставщиком.

В одном запросе можно ввести несколько параметров. При выполнении такого запроса для каждого из параметров будут поочередно выводиться диалоговые окна Введите значение параметра в том порядке, в котором параметры перечислены в бланке запроса.

Рис. 4.32. Диалоговое окно Введите значение параметра

Рис. 4.33. Результат выполнения запроса с параметром

Совет
При использовании запроса с параметрами делайте понятными их имена, т. к. именно они будут выводиться в диалоговом окне для пользователя.

2.4. Microsoft Access 2007

2.4.5. Создание запросов и поиск информации в базе данных

В СУБД Access 2007 можно создавать queries для отображения требуемых полей из записей одной или нескольких таблиц.

В СУБД Access 2007 применяются различные типы запросов: на выборку, на обновление, на добавление, на удаление, перекрестный query, выполнение вычислений, создание таблиц. Наиболее распространенным является query на выборку. Применяются два типа запросов: query по образцу (QBE) и query на основе структурированного языка запросов (SQL).

Запросы на выборку используются для отбора требуемой пользователю информации, содержащейся в нескольких таблицах. Они создаются только для связанных таблиц. Queries могут основываться как на нескольких таблицах, так и существующих запросах. СУБД Access 2007 включает такие средства создания запросов, как Мастер и Конструктор.

Кроме того, в СУБД Access 2007 существует множество средств для поиска и отображения информации, которая хранится в базе данных. Данные в таблицах можно отсортировать на основе любого поля или комбинации полей. Для извлечения из базы данных необходимых записей можно отфильтровать таблицу, применив средства фильтрации.

На скриншоте (рисунок 1) средства сортировки и фильтрации выделены скругленным прямоугольником красного цвета.

Рассмотрим создание запроса на выборку с помощью Конструктора

Для создания нового пустого запроса в режиме конструктора надо щелкнуть на пиктограмме Конструктор запросов (рисунок 2).

Откроется активное окно диалога Добавление таблицы (рисунок 3) на фоне неактивного окна «Запрос1». В этом окне можно выбрать таблицы и queries для создания новых запросов.

В окне Добавление таблицы следует выбрать несколько таблиц из представленного списка таблиц, на основе которых будет проводиться выбор данных, и щелкнуть на кнопке Добавить. После этого закрыть окно Добавление таблицы, а окно «Запрос1» станет активным (рисунок 4).

Окно Конструктора состоит из двух частей – верхней и нижней. В верхней части окна размещается схема данных запроса, которая содержит список связанных таблиц. В нижней части окна находится Бланк построения запроса QBE, в котором каждая строка выполняет определенную функцию.

Переместим имена полей с таблиц-источников в Бланк. Из таблицы Группы студентов переместим поле Название в первое поле Бланка, из таблицы Студенты переместим поле Фамилии во второе поле, а из таблицы Успеваемость переместим поле Оценка в третье поле и из таблицы Дисциплины переместим поле Название в четвертое поле Бланка запросов.

При необходимости можно задать принцип сортировки (по возрастанию или по убыванию) результатов запроса. В строке «Вывод на экран» автоматически устанавливается флажок просмотра информации.

Условия ограниченного поиска или критерий поиска информации вводится в строке «Условия» отбора и строке «Или». Например, введем критерий поиска — «5/A» в строке «Условия» для поля Оценка. В этом случае в результате выполнения запроса на экране будут отображаться все фамилии студентов, которые получили оценку 5/A (рисунок. 5).

Далее надо закрыть окно запроса Запрос1, появится окно диалога Сохранить, ответить — Да и ввести имя запроса, например «Успеваемость студентов». Для запуска запроса дважды щелкнем на query «Успеваемость студентов», откроется таблица с результатами выполненного запроса (рис. 6).

Далее создаем параметрический query или query с параметрами. Создаем этот query также как и предыдущий, в режиме конструктора, но только в строке Условия отбора для поля Фамилия введем условие отбора в виде приглашения в квадратных скобках, например . В этом случае в результате выполнения запроса на экране будет отображаться фамилия студента и все дисциплины, по которым он получил оценку.

Закрыть окно запроса на выборку. На вопрос о сохранении изменения ответить — Да и ввести имя запроса, например «Параметрический query». Запустим Параметрический query, дважды щелкнув на нем. В открывшемся на экране окне диалога «Введите значение параметра» надо ввести фамилию студента, информацию об успеваемости которого необходимо получить (рис. 8).

Затем надо щелкнуть на кнопке ОК, откроется таблица с результатами выполненного запроса (рис. 8).

В некоторых случаях для создания запросов можно использовать Мастер запросов. После создания запросов на выборку информации из БД Access 2007 можно приступать к формированию форм.

Обучение в интернет, . Обратная связь

Чтобы изменить запрос:

Когда вы открываете существующий запрос в Access, он отображается в представлении Datasheet, что означает, что результаты вашего запроса будут отображаться в таблице. Чтобы изменить свой запрос, вы должны ввести представление «Дизайн», представление, которое вы использовали при его создании. Существует два способа переключения на представление «Дизайн»:

  • На вкладке «Главная» на ленте щелкните команду «Вид». В раскрывающемся меню выберите «Просмотр дизайна».
  • В правом нижнем углу окна Access найдите маленькие значки. Щелкните значок «Вид дизайна», который является значком, самым дальним вправо.

В окне «Дизайн» внесите необходимые изменения, затем выберите команду « Выполнить», чтобы просмотреть обновленные результаты.

Вы можете заметить, что Access предлагает другие виды запросов, такие как Pivot Table View , Pivot Chart View и SQL View. Вы можете игнорировать их; эти представления позволяют использовать расширенные функции, которые вам не нужно использовать для этого руководства или для большинства функций Access.

Создание простого запроса

Откроем базу данных STUD, как было рассмотрено в ЛР1. Создадим запрос, выводящий информацию о студентах, у которых имеются задолженности.

Для создания запроса активизируем окно базы данных (см. ЛР1). После этого щелкнем по корешку «Запрос» и кнопке «Создать». В появившемся диалоговом окне «Создание запроса» выберите кнопку «Конструктор». Access откроет диалоговое окно «Добавление таблицы», позволяющее выбрать базовые таблицы и запросы для создаваемого запроса. Выберите таблицы «Результаты» и «Cтуденты», нажимая кнопку «Добавить», после чего закройте это окно кнопкой «Закрыть».

Открывшееся окно конструктора запросов состоит из двух частей: верхняя содержит списки полей выбранных таблиц, а нижняя — бланк QBE для создания запроса. Каждый столбец бланка описывает одно поле, участвующее в запросе.

Включение поля в запрос производится перетаскиванием его из списка полей таблиц (расположенного в верхней части экрана) в нужный столбец бланка QBE при помощи мышки. Включение всех полей таблицы происходит перетаскиванием символа «*», находящегося вверху списка полей данной таблицы в верхней части экрана. Включите в запрос поля таблицы «Результаты»:

перетащив их в бланк QBE . Рассмотренным выше методом перетащите из таблицы “Студенты” поле Фамилия.

Запрос “Задолженность” будет иметь вид, как показано на рисунке. Установка связей между таблицами производится автоматически, используя структуру связей, созданную при генерации проекта БД. Можно задавать другие варианты связи таблиц и иные типы связей (внешнее объединение, «один-к-одному», «один-ко-многим» и т.д.). Изменение связей производится в верхней части окна выбором связанного поля в описании одной таблицы и транспортировкой его при нажатой кнопке мышки на описание соответствующего поля связанной таблицы. Тип связи можно изменить, активизировав ее щелчком мышки на линии связи.

Условие для отбора нужных нам полей производится включением этого условия для данного поля в строке QBE «Условие отбора». Несколько значений отбора вводятся в одну строку, разделенные логическими условиями AND или OR, либо вводятся в последующие ячейки строки «или». Установим для таблицы «Результаты» условие отбора студентов, у которых задолженности, для чего в столбец описания поля внесем строку «Задолженность» из таблицы «Результаты», и в строке «Условие отбора» введем: Да

Сбросим для этого поля флажок «Показать», запрещающий вывод данного поля в выборке (т.к его не обязательно выводить). Кроме стандартных операторов сравнения ‘=’, ‘ ‘, ‘ =’, Access поддерживает также BEETWEN, IN, LIKE. В запросе могут присутствовать т.н. вычисляемые поля — вычисленные значения над любыми полями таблицы. Access поддерживает большое число функций и операторов, применяемых при генерации вычисляемых полей. Чтобы просмотреть результат запроса необходимо на панели нажать кнопку:

Изменить заголовок можно также активизировав столбец с описанием поля; а затем выполнив команду «Свойства» меню «Вид», ввести в строку «Подпись поля» его название.

Строки итоговой таблицы желательно отсортировать по полю «Фамилия» таблицы «Студенты». Для этого в столбце с описанием данного поля в строке «Сортировка» выберем пункт «по возрастанию». При необходимости сортировки по нескольким полям Access сортирует данные в порядке их расположения в бланке QBE. После просмотра запроса видно, что необходимо ввести поле Имя из таблицы “Студенты”, т.к фамилии повторяютя и запрос не несет необходимой информации. Чтобы вставить поле, перетяните его в сетку QBE на место, где он должен находится и все остальные поля передвинуться на одну позицию в право. Запустить полученный запрос на выполнение можно также командой «Выполнить» меню «Запрос». Проверим полученные результаты на соответствие критериям отбора. Сохраним полученный запрос под именем «Задолженности». Запрос представляет собой таблицу:

Создадим запрос, в котором будет вычисляться дополнительное поле. Кафедра вычислительной техники решила своим работникам к новому году выплатить премию в размере 10% от зарплаты. Создадим запрос на базе таблицы “Преподаватели”, с полями Фамилия, Кафедра, Должность, Зарплата. Чтобы создать вычисляемое поле “Премия”, выводящее информацию о величине премии работнику, в новом столбце (следующим за заполненным), в строке “Поле” введем выражение Зарплата*0,1. Изменим заголовок поля, введя перед выражение его название. Ячейка будет содержать: «Премия: *0,1».

Изменить заголовок можно также активизировав столбец с описанием поля, а затем выполнив команду «Свойства» меню «Вид», ввести в строку подпись поля его название. Введите в строку «условие отбора» для кафедры «Вычислительная техника».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector