Как сделать удаление в access?

Создание и выполнение запроса на удаление

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

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

Если необходимо удалить всего несколько записей, использовать запрос не нужно. Можно открыть таблицу в режиме таблицы, выбрать поля (столбцы) или записи (строки), которые требуется удалить, и нажать клавишу DELETE.

Важно: Эта статья относится только к базам данных рабочего стола. Запросы на удаление и обновление невозможно использовать в веб-приложениях Access.

В этой статье

Выбор типа запроса

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

Запрос на удаление

Удаление всех записей (строк) из таблицы или двух связанных таблиц одновременно.

Примечание: Если записи хранятся на стороне «один» отношения «один-ко-многим», перед выполнения запроса на удаление необходимо изменить это отношение. Подробнее читайте в разделе по удалению данных из связанных таблиц.

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

Запрос на обновление

Удаление отдельных полей из таблицы.

Упрощает удаление значений путем замены существующих значений на пустое значение (то есть без данных) или на пустую строку (пару двойных кавычек без пробела между ними).

Что необходимо проверить перед использованием запроса на удаление любых данных

Убедитесь, что файл не открыт в режиме только для чтения.

Щелкните правой кнопкой мыши кнопку Пуск и откройте проводник Windows.

Щелкните файл базы данных правой кнопкой мыши и выберите пункт Свойства.

Проверьте, не выбран ли параметр Только для чтения.

Проверьте наличие необходимых разрешений на удаление записей из базы данных. При необходимости обратитесь к системному администратору или разработчику базы данных.

Убедитесь, что содержимое базы данных активировано. По умолчанию приложение Access блокирует выполнение всех запросов (на удаление, обновление и создание таблицы), пока базе данных не будет предоставлено состояние доверенной. Чтобы узнать о признании базы данных доверенной, см. раздел Выполнение запроса, заблокированного из-за режима отключения содержимого.

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

Перед редактированием или удалением записи необходимо создать резервную копию базы данных на случай необходимости отмены изменений.

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

Открытие базы данных в монопольном режиме

Откройте вкладку Файл и выберите пункт Открыть.

Найдите и выберите базу данных, щелкните значок стрелки рядом с кнопкой Открыть, а затем выберите команду Монопольный доступ.

Создание резервной копии базы данных

Откройте вкладку Файл и выберите пункт Сохранить как.

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

Нажмите кнопку Сохранить как и укажите имя и расположение для резервной копии, а затем нажмите кнопку Сохранить.

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

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

Использование запроса на удаление

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

Таблица будет отображена в верхней части бланка запроса. В списке полей дважды щелкните звездочку (*), чтобы добавить все поля таблицы в бланк запроса.

Использование специальных условий в запросе на удаление

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

Дважды щелкните поле, которое необходимо указать как условие для удаления, введите условие в строку Условия конструктора запросов и снимите флажок Показать в каждом поле условий.

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

На вкладке Конструктор выберите команду Режим > Режим таблицы.

Убедитесь, что выбраны записи, которые требуется удалить, а затем нажмите клавиши CTRL+S, чтобы сохранить запрос.

Для выполнения запроса дважды щелкните его в области навигации.

Использование запроса на обновление

Примечание: Запросы на обновление невозможно использовать в веб-приложениях Access.

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

На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

Выберите таблицу с данными, которые вы хотите удалить (если таблица связана, выберите таблицу на стороне отношения «один»), нажмите кнопку Добавить, а затем — Закрыть.

Таблица будет отображена в верхней части бланка запроса. В этом окне перечислены все поля выбранной таблицы.

Чтобы добавить все поля в бланк запроса, дважды щелкните звездочку (*). Это позволит удалить все записи (строки) из таблицы.

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

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

На вкладке Конструктор в группе Результаты выберите команду Режим, а затем — Режим таблицы.

Убедитесь, что выбраны записи, вместо которых нужно вставить значение NULL или строку нулевой длины (пару двойных кавычек без пробела между ними («»).

При необходимости повторяйте шаги 3–5, изменяя поля или условия отбора, пока не будут выбраны только те данные, которые нужно удалить. После этого нажмите клавиши CTRL+S, чтобы сохранить запрос.

Для выполнения запроса дважды щелкните его в области навигации.

Дополнительные сведения

Удаление данных из связанных таблиц

Если вы хотите удалить данные из нескольких связанных таблиц, необходимо включить параметры Целостность данных и Каскадное удаление связанных записей для каждой из связей. Это позволит запросу удалять данные из таблиц на сторонах отношения «один» и «многие». Подготовка к удалению связанных данных требует проверки следующих параметров.

Определите, какие из записей находятся на стороне отношения «один», а какие — на стороне «многие».

Если нужно удалить записи на стороне отношения «один» и связанные записи на стороне «многие», включите набор правил «Целостность данных» и разрешите операцию каскадного удаления. Далее в этом разделе описано понятие целостности данных и указано, как выполнить оба действия.

Если вам нужно удалить данные только на стороне отношения «один», сначала удалите отношение, а затем — данные.

Если требуется удалить данные только со стороны отношения «многие», создайте и выполните запрос на удаление, не внося изменений в отношение.

Читать еще:  Как сделать словарь в access?

Чтобы узнать, какие записи находятся на сторонах отношения «один» и «многие», на вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных. Вкладка Схема данных отображает таблицы в базе данных и связи между ними. Каждая связь изображается линией, соединяющей поля таблиц.

На рисунке ниже изображена типичная связь. В большинстве связей (если не во всех) присутствует сторона «один» и сторона «многие». В схеме связей сторона «один» обозначается единицей (1), а сторона «многие» — знаком бесконечности ().

При удалении записей, расположенных на стороне «один», удаляются также все связанные записи на стороне «многие». Однако при удалении записей на стороне «многие» записи на стороне «один» обычно не удаляются.

Коме того, приложение Access автоматически использует набор правил целостности данных. Эти правила обеспечивают правильность значений во внешних ключах базы данных. Внешний ключ — это столбец, значения которого совпадают со значениями в столбце первичного ключа в другой таблице.

Изменение связи

Следующие инструкции выполняются только если необходимо удалить данные на сторонах отношения «один» и «многие».

На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.

Щелкните правой кнопкой мыши связь (линию) между таблицами, включенными в операцию удаления, и выберите в контекстном меню команду Изменить связь.

Убедитесь в том, что в диалоговом окне Изменение связей установлен флажок Обеспечение целостности данных.

Установите флажок Каскадное удаление связанных записей.

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

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

Удаление связи

Откройте область Схема данных, если она закрыта.

На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.

Запишите имена полей, участвующих в отношении, чтобы после удаления данных можно было восстановить связь.

Щелкните правой кнопкой мыши связь (линию) между таблицами, включенными в операцию удаления, и выберите в контекстном меню команду Удалить.

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

Примеры условий отбора для запросов

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

Создание, изменение или удаление связи

После создания таблицы для каждого объекта в базе данных нужно предоставить Office Access 2007 средства, с помощью которых эти данные возвращаются, когда это необходимо. Это осуществляется с помощью добавления общих полей в связанные таблицы и определения межтабличных связей. После этого можно создавать запросы, формы и отчеты, отображающие сведения одновременно из нескольких таблиц.

Создание связи между таблицами

Создать связь между таблицами можно с помощью окна «Связи» или с помощью перетаскивания поля из области Список полей в таблицу. При создании связи между таблицами общие поля могут иметь различные имена, однако часто они имеют одинаковые. Очевидно, что общие поля должны иметь одинаковый тип данных. Однако, если поле первичного ключа имеет тип «Счетчик», поле внешнего ключа может также быть числовым полем, если свойство Размер поля (FieldSize) обоих полей совпадает. Например, можно сопоставить поля с типами «Счетчик» и «Числовой», если свойство Размер поля (FieldSize) обоих полей имеет значение «Длинное целое». Если оба общих поля являются числовыми, у них должно совпадать значение свойства Размер поля (FieldSize).

Создание связи между таблицами с помощью вкладки «Схема данных»

На вкладке Работа с базами данных в группе Отображение выберите пункт Схема данных.

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

В диалоговом окне Добавить таблицу отображены все таблицы и запросы, содержащиеся в базе данных. Чтобы отобразить только таблицы, выберите пункт Таблицы. Чтобы отобразить только запросы, выберите пункт Запросы. Чтобы отобразить и таблицы и запросы, выберите пункт Таблицы и запросы.

1. Выберите одну или несколько таблиц или запросов и нажмите кнопку Добавить. После добавления таблиц и запросов на вкладку «Схема данных» нажмите кнопку Закрыть.

2. Перетащите поле (как правило, поле первичного ключа) из одной таблицы на общее поле (поле внешнего ключа) в другой таблице. Чтобы перетащить сразу несколько полей, нажмите клавишу CTRL и, удерживая ее, выберите каждое поле.

Откроется диалоговое окно Изменение связей.

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

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

Изменение связи между таблицами

Чтобы изменить связь между таблицами следует выбрать ее на вкладке «Схема данных», а затем изменить эту связь.

1. Установите указатель на линии связи и щелкните линию, чтобы выделить ее. При выделении линия связи становится толще.

2. Дважды щелкните выделенную линию связи.

Удаление связи между таблицами

Чтобы удалить связь между таблицами следует удалить линию связи на вкладке «Схема данных». Осторожно установите указатель на линии связи и щелкните линию, чтобы выделить ее. При выделении линия связи становится толще. При выделенной линии связи нажмите клавишу DEL. Обратите внимание, что при удалении связи также отключается обеспечение целостности данных для этой связи, если оно было включено. В результате Access больше не будет автоматически предотвращать создание изолированных записей на стороне «многие» отношения.

ЗАДАНИЕ 2. ЗАПРОСЫ

Типы запросов (MDB)

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

Запросы на выборку

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

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

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

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

Перекрестные запросы

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

Запросы на изменение

Запросом на изменение называют запрос, который за одну операцию изменяет или перемещает несколько записей. Существует четыре типа запросов на изменение.

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

Читать еще:  Как сделать фильтр в отчете access?

· На обновление записи. Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 10 процентов поднимаются цены на все молочные продукты или на 5 процентов увеличивается зарплата сотрудников определенной категории. Запрос на обновление записей позволяет изменять данные в существующих таблицах.

· На добавление записей. Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу «Клиенты».

· На создание таблицы. Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие базы данных Microsoft Access или при создания архивной таблицы, содержащей старые записи.

Запросы SQL

Запрос SQL — это запрос, создаваемый при помощи инструкций SQL. Язык SQL (Structured Query Language) используется при создании запросов, а также для обновления и управления реляционными базами данных, такими как базы данных Microsoft Access.

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

Некоторые запросы, которые называют запросами SQL, невозможно создать в бланке запроса. Длязапросов к серверу, управляющих запросов и запросов на объединение необходимо создавать инструкции SQL непосредственно в окне запроса в режиме SQL. Для подчиненного запросапользователь должен ввести инструкцию SQL в строку Поле или Условие отбора в бланке запроса.

Как сделать удаление в access?

В базе есть две таблицы, t1 и t2

В них есть поля firstname, lastname и middlename

Мне надо удалить из таблицы t1 все записи, которые совпадают с записями таблицы t2.

Пишу такой запрос:
delete from [t1]
where [t1].[firstname]=[t2].[firstname] and [t1].[lastname]=[t2].[lastname] and [t1].[middlename]=[t2].[middlename]

При запуске получаю предложение ввести значения параметров [t2].[firstname], [t2].[lastname], [t2].[middlename].

Но я ведь в запросе не использую параметров, почему он у меня их требует? Как сделать запрос, чтобы все-таки он сработал?

PS Скобки в запросе пробовал удалять, ничего не меняется.


clickmaker © ( 2009-12-18 14:21 ) [1]

delete from [t1]from [t1] as t, [t2]where t.[firstname]=[t2].[firstname] and t.[lastname]=[t2].[lastname] and t.[middlename]=[t2].[middlename]


Сергей М. © ( 2009-12-18 14:23 ) [2]

> я ведь в запросе не использую параметров

А откуда Access знает что [t2].[чего-то-там] — это не параметр ?
Таблица t2 в тексте запроса должна фигурировать в INNER JOIN-присоединении (по всем полям, подлежащим сравнению на совпадение) к таблице t1, а у тебя жто присоединение напрочь отсутствует.
Вот Access и предполагает, что ты в запросе указывает имена параметров.

Т.е. статья WHERE здесь никомим образом фигурировать не должна, а вместо нее должно быть INNER JOIN t2 ON .. и далее вся та петрушка, которая у тебя фигурирует в выражении для WHERE-статьи.


pavel_guzhanov © ( 2009-12-18 14:58 ) [3]


> clickmaker ©
delete from [t1]from [t1] as t, [t2]where t.[firstname]=[t2].[firstname] and t.[lastname]=[t2].[lastname] and t.[middlename]=[t2].[middlename]

на это получаю сообщение, что ошибка в выражении FROM


> Сергей М. ©

написал вот так —
delete from t1
inner join t2 on t1.firstname=t2.firstname and t1.lastname=t2.lastname and t1.middlename=t2.middlename

получаю сообщение, что надо указать таблицу, содержащую удаляемые записи.


sniknik © ( 2009-12-18 15:06 ) [4]

> написал вот так —
по моему так нужно, если правильно помню
delete t1.* from t1
.


sniknik © ( 2009-12-18 15:12 ) [5]

> Т.е. статья WHERE здесь никомим образом фигурировать не должна,
да в общем то по большому счету это одно и тоже, с inner просто более однозначные запросы получаются (имхо), и более функциональнее (нет в jet синтаксиса +=, =+, и д.р.), а в простых случаях можно и так и так.


Anatoly Podgoretsky © ( 2009-12-18 15:12 ) [6]

> pavel_guzhanov (18.12.2009 14:09:00) [0]

Откуда предложение то?
Что то на правду не похоже.
Или ты с Акцессом через COM работаешь?

Формат команды DELETE ты уже конечно в справке посмотрел?

Запросы в access

Запросы в access – объекты базы данных, извлекающие из таблиц или других запросов информацию согласно заданным условиям. Это виртуальные таблицы (существующие в оперативной памяти компьютера.

На диске хранится лишь структура самого запроса, формулы и условия, по которым будут выбираться данные), не являющиеся хранилищем информации, но через большинство запросов можно менять информацию, применять вычисляемые поля (значения которых также не хранятся на жёстком диске).

Можно легко обнаружить, является ли запрос обновляемым: при отображении результатов запроса в конце записей должна быть пустая строка, которая помечена значком звездочки (*) в области выделения записи слева. Тогда в эту строку можно вводить данные, которые создадут новую запись. Если такая строка отсутствует, добавлять записи в запрос и изменять значения полей запроса нельзя.

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

Основные отличия запросов от расширенного фильтра:

— используя реляционные связи, можно применять запрос к нескольким таблицам (запросам);

— на экран можно выводить только необходимые поля;

— в запросе можно переставлять поля в любом порядке;

— команды фильтра сохраняются временно, запрос хранится постоянно как объект базы данных;

— применение фильтра и сортировки возможно только в открытой таблице, запросе и форме, а запрос работает с таблицами и запросами, которые не надо открывать;

— в запросе можно выводить на экран только необходимые (по количеству или процентному соотношению) записи (например, для лучшей десятки продаж можно отсортировать сумму продаж по возрастанию, а в свойствах запроса «Набор значений» (в режиме конструктора) ввести число 10;

— фильтры не могут создавать вычисляемые поля.

Обилие всяких кнопочек и настроек может постоянно сбивать вас с толку. Также может появиться страх при первом открытии программы.

Самым распространённым является запрос на выборку.

В строке условия отбора значение даты вводится, окруженное знаками #. Например, Between #01.01.2010# And #31.12.2010# — будут отобраны записи в диапазоне с 1 января по 31 декабря 2010 года.

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

При сортировке нескольких полей порядок сортировки идёт слева направо.

Если запрос очень сложный, можно разбить его на несколько составных (т. е. запрос делает запрос к запросу).

При операциях с числами программа использует математические знаки, например «+». Но при соединении текстовых полей знак «+» заменяется знаком «&» (амперсанд). Этот знак выполняет операцию конкатенации, т. е. соединяет между собой строки и подстроки, например, ФИО: [Фамилия] & » » & [Имя] & » » & [Отчество] (в кавычках заключена константа «пробел»).

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

При создании вычисляемого поля надо ввести название столбца, после него знак двоеточия, а затем вычисляемое выражение (как в вышеупомянутом примере с ФИО).

Для очистки запроса есть команда меню Правка – Очистить бланк.

Нельзя добавлять и изменять записи в запросах, если:

Читать еще:  Как сделать форму невидимой access?

— две таблицы запроса связаны отношением «один-ко-многим» и в таблице «один» не задан первичный ключ;

— в запросе используются рекурсивные соединения (связь установлена между полями одной таблицы (запроса));

— в запросе применяются статистические функции SQL.

Условия, при которых можно добавить или обновить записи в запросе:

— таблица является единственной в запросе;

— таблицы в запросе связаны отношением «один-к-одному»;

— если таблицы в запросе связаны отношением «один-ко-многим», можно изменять поля только в таблице «многие».

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

Если условия введены в одну строку сетки конструктора запросов, результат будет содержать только записи, удовлетворяющие всем условиям.

Если хотим, чтобы запрос извлекал все записи, удовлетворяющие хотя бы одному из условий, одно условие надо ввести в строку «Условие отбора», а другое в строку «Или».

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

Групповые операции (перекрёстные запросы в access)

Аксесс довольно сложная программа. Это подтверждает тот факт, что в интернете можно найти массу информации по ней. Однако, вы знаете что на самом деле достаточно знать лишь 20% инструментов, чтобы создавать и настраивать 80% баз данных в программе? И научиться этому можно после изучения 40 специальных видеоуроков, в которых описана самая суть без воды.

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

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

По умолчанию строка «Групповая операция» в режиме конструктора скрыта.

Группировка

Инструкция «Группировка» разбивает результаты запроса по каждому уникальному значению поля (полей). Например, если в поле Страна встречается 20 раз Литва, 30 раз Польша, 50 раз Чехия, то при группировке по этому полю будет всего три записи – по одной на каждую страну. Если будем добавлять группировку в другие поля, то количество выбранных записей возрастёт, так как программа будет искать уникальное значение не одного, а нескольких полей (например, зададим группировку по странам и по поставщикам. В Литве пять поставщиков, а, следовательно, уникальных записей для Литвы уже будет пять, а не одна).

Инструкция Группировка автоматически задаёт сортировку в алфавитном порядке. Для изменения порядка сортировки надо явно указать программе параметры в строке «Сортировка».

Управляющие запросы

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

Создание таблицы

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

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

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

Перед выполнением запроса можно посмотреть, что получится, отобразив запрос в режиме таблицы. Создание физической таблицы произойдёт только после нажатия кнопки «Запуск».

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

Для создания архивной таблицы надо скопировать исходную таблицу и затем вставить её из буфера, скопировав при этом только структуру (без данных) таблицы.

Обновление

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

Добавление

Запрос на добавление извлекает записи из одной таблицы и добавляет их в конец другой (других). Можно применить, если надо добавить большое количество новых записей (новые поставщики и потребители и т. д.). Запрос выполняется один раз, иначе одни и те же записи будут добавлены неоднократно. Запрос хорош, когда в архивную таблицу добавляются записи, которые будут затем удалены из таблицы-поставщика.

Удаляет указанные записи в таблицах (одной или нескольких).

Перед выполнением запроса на удаление надо создать такой же запрос на выборку. Лишь убедившись, что отобраны нужные записи, меняем тип запроса «Выборка» на «Удаление».

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

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

Хотите узнать какие 35 инструментов нужно знать, чтобы научиться создавать базы данных в Аксесс?

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

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

Например, нам часто нужны сведения по сотрудникам, фамилия которых начинается с определённой буквы. Можно сделать около 30 запросов (для почти всех букв русского алфавита), чтобы получать требуемые данные, но это займёт много времени для создания запросов, загромоздит базу данных и вызовет путаницу. Вместо этого создадим один запрос для формирования списка сотрудников, который будет нас спрашивать, с какой буквы начинающиеся фамилии мы хотим видеть. В поле «Условие отбора» введём: Like [Введите первую букву фамилии]& «*». На самом деле, если введём букву «С», условие будет читаться Access как Like «С*». Знак амперсанда «&» указывает на необходимость сцепления введённой буквы с остальными символами искомой ячейки, так как «*» обозначает любое количество символов после «С».

Например, выражение Between [Начальная дата:] And [Конечная дата:] запросит ввести начальную и конечную даты и выдаст все записи, содержащиеся в этом диапазоне (программа распознает разные форматы, например: 01.01.2010 или 01,01,2010 или 01/01/2010). Но для этого в режиме конструктора через меню Запрос – Параметры (можно вызвать через контекстное меню) надо вызвать диалоговое окно «Параметры запроса». В столбце «Параметр» указать правильно название, например [Начальная дата:], а в столбце «Тип данных» указать требуемый тип, в нашем случае «Дата/время». Как правило, указываются параметры для числовых и полей дата/время.

Ещё пример: Like «. » & [Введите номер месяца, например, для марта — 03, для ноября — 11] & «. ». Программа попросит ввести номер месяца года и выдаст все записи, относящиеся к этому месяцу. Если в параметре ввести знак звёздочки «*», то будут выбраны дни рождений за все месяцы.

Запрос может не работать, если формат даты в условии задан 00.00.0000, а в настройках панели управления установлен 00/00/0000. Тогда надо вместо точек добавить ещё по одному вопросу.

Запрос на объединение таблиц

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

При объединении таблиц, связанных отношением «один-ко-многим», поле первичного ключа таблицы «один» используется для отображения связанных записей из таблицы, представляющей сторону «многие».

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

Программа переводит графический запрос в запрос SQL – универсальный язык запросов.

Собственный язык Access JetSQL имеет отличия от ANSI SQL.

Хотя большинство запросов создаются в режиме конструктора, Access хранит их в формате SQL (структурированном языке запросов). Чтобы увидеть режим SQL, надо выбрать Вид-Режим SQL.

Ссылка на основную публикацию
Adblock
detector