Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

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

Если две таблицы связаны отношением «один-ко-многим», нельзя удалять записи из таблицы «один» если в таблице «многие» присутствуют соответствующие им записи. Сначала должны быть удалены записи в таблице «многие» и только потом — соответствующие им записи в таблице «один». Для того чтобы упростить этот процесс, Access позволяет при определении связей между таблицами установить флажок каскадное удаление связанных записей (Cascade Delete Related Records). Такой флажок установлен, например, для связи таблиц «Заказы» (Orders) и «Заказано» (Order Details). Действительно, если требуется удалить из базы данных какой-то заказ, должны быть удалены не только запись об этом заказе в таблице «Заказы», но ч все позиции данного заказа в таблице «Заказано».

Для создания запроса на удаления мы воспользуемся уже имеющимся запросом на добавление записей «Копирование заказов».

  1. Откройте этот запрос в режиме Конструктора.
  2. Чтобы преобразовать запрос на добавление в запрос на удаление записей, выберите команду Запрос, Удаление (Query, Delete Query). В бланке запроса появится строка Удаление (Delete) (рис. 8.11). В первом столбце строки Удаление (Delete) показывается значение Из (From), которое указывает, что будут удаляться записи из таблицы «Заказы». Во втором столбце строки Удаление (Delete) вы видите значение Условие (Where), что указывает на использование этого столбца для определения критерия отбора удаляемых записей.

Рис. 8.11. Запрос на удаление записей из таблицы «Заказы»

  1. Нажмите кнопку Запуск (Run). Выводятся сообщение с приглашением подтвердить удаление записей и информация о количестве записей, которые будут удалены. Их будет столько же, сколько было отобрано в соответствующем запросе на добавление. В этот момент еще можно отменить удаление, для чего достаточно нажать кнопку Нет (No) в окне сообщения. Нажмите кнопку Да (Yes), подтверждая удаление. Будут удалены все заказы за 1996 год из таблицы «Заказы» (Orders) и все позиции заказов из таблицы «Заказано» (Order Details). Вы можете убедиться в этом, если откроете таблицу «Заказано».
  2. Сохраните запрос, дав ему имя: Удаление заказов.

Однако такое каскадное удаление записей не всегда возможно. Например, для рассмотренной нами в предыдущем разделе связи таблиц «Сотрудники» и «Заказы» нельзя устанавливать флажок каскадное удаление связанных записей (Cascade Delete Related Records), т. к. удаление записи о сотруднике из таблицы «Сотрудники» не должно повлечь за собой удаление всех его заказов. Если вы попытаетесь удалить какую-либо запись о сотруднике и в таблице «Заказы» (Orders) окажутся заказы, принятые этим сотрудником, Access выдаст сообщение об ошибке (рис. 8.12).

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

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

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

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

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

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

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

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

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

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

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

Формы в MS Access

Для организации удобного интерфейса с БД используются формы. Форма позволяет вывести на экран одну запись в виде электронного бланка. Формы могут создаваться:

a) Вставка — Автоформа для выбранной таблицы;

b) вкладка Форма — кнопка Создать — Автоформа различных видов для выбранной таблицы.

2) Полуавтоматически с помощью Мастера форм:

a) вкладка Форма — Создать с помощью Мастера;

b) кнопка Создать — Мастер форм;

3) Вручную с помощью Конструктора форм:

a) вкладка Форма — Создать с помощью Конструктора;

b) Вставка — Форма — Конструктор форм;

c) кнопка Создать — Конструктор форм;

d) приведенным инструментом Новый объект:автоформа.

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

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

При создании форм в режиме Конструктораможно использовать также вычисляемые поля иподчиненные формы.

Подчиненная форма— это форма, находящаяся внутри другой формы. Первичная форма называется главной, а форма внутри формы — подчиненной формой.

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

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

Подчиненная форма может быть выведена в Режиме таблицыкак простая или ленточная форма. Главная форма может быть выведена только как простая.

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

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

a) создать формы главную (отношение «один») и подчиненную (отношение «много») отдельно для каждой таблицы;

b) открыть главную форму в режиме Конструктора.
Далее можно действовать по-разному.

Запрос SQL на добавление и удаление записей

В этой статье мы разберём, пожалуй, одни из самых важных SQL-запросов. Это запросы на добавление и удаление записей из таблицы базы данных. Поскольку, ОЧЕНЬ часто приходится добавлять новые записи в таблицу, причём делать это в автоматическом режиме, то данный материал обязателен к изучению.

Для начала SQL-запрос на добавление новой записи в таблицу:

INSERT INTO users (login, pass) values(‘TestUser’, ‘123456’)

Читать еще:  Активатор мс офис 2020

При добавлении записи вначале идёт команда «INSERT INTO«, затем название таблицы, в которую мы вставляем запись. Далее идёт в круглых скобках названия полей, которые мы хотим заполнить. А затем в круглых скобках после слова «values» начинаем перечислять значения тех полей, которые мы выбрали. После выполнения этого запроса в нашей таблице появится новая запись.

Иногда требуется обновить запись в таблице, для этого существует следующий SQL-запрос:

UPDATE users SET login = ‘TestUser2′, pass=’1234560′ WHERE login=’TestUser’

Данный запрос является более сложным, так как он имеет конструкцию «WHERE«, но о ней чуть ниже. Вначале идёт команда «UPDATE«, затем имя таблицы, а после «SET» мы описываем значения всех полей, которые мы хотим изменить. Было бы всё просто, но встаёт вопрос: «А какую именно запись следует обновлять?«. Для этого существует «WHERE«. В данном случае мы обновляем запись, поле «login» у которой имеет значение «TestUser«. Обратите внимание, что если таких записей будет несколько, то обновятся абсолютно все! Это очень важно понимать, иначе Вы рискуете потерять свою таблицу.

Давайте немного ещё поговорим о «WHERE«. Помимо простых проверок на равенство существуют так же и неравенства, а также логические операции: AND и OR.

UPDATE users SET login = ‘TestUser2′, pass=’1234560’ WHERE id

Данный SQL-запрос обновит те записи, id которых меньше 15 И поле «login» имеет значение «TestUser«. Надеюсь, Вы разобрались с конструкцией «WHERE«, потому что это очень важно. Именно «WHERE» используется при выборке записей из таблиц, а это самая частоиспользуемая задача при работе с базами данных.

И, напоследок, простой SQL-запрос на удаление записей из таблицы:

DELETE FROM users WHERE login=’TestUser2′

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

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

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 35 ):

    А как сделать апдейт таблицы так чтобы когда человек открыл форму на сайте то у него отображалась уже внесенная информация, в общем как вконтакте. хочет человек отредактировать даные о себе то там пишутся уже существующие данные. Ну или анологично phpmyadmin у !

    Для этого узнаётся сначала пользователь (допустим, из сессии или GET-параметра). Дальше на основании id пользователя или его логина делается выборка соответствующей записи. В результате получается массив со всеми данными пользователя, которые затем просто подставляются в форму.

    $result = mysql_query(«INSERT INTO information (deiatelnost) VALUES (‘$deiatelnost’) WHERE login=’$login’ «) Когда я делаю запрос с указанием сессионного логина, мне выдает такую ошибку: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘WHERE login=’мой логин» at line 1

    Попробуйте вместо «мой логин» подставить «mylogin».

    «мой логин» — это ошибка. а вообще там стоит не «мой логин» а мой логин на английском!

    $result = mysql_query(«INSERT INTO `information` (`deiatelnost`) VALUES (‘$deiatelnost’) WHERE `login`=’$login'») Попробуйте такой запрос с обратными кавычками.

    РАзницы нет. Но я попробовал ошибка вообще не на счет синтаксических ошибок. я вообще таких запросов раньше не писал. поэтому не знаю. да вообще с высоконагружеными системами не работал..=(

    Запрос правильный на 100%. Единственное, что, возможно, переменная $login некорректная приходит. Но это уже Вам лучше знать. Если с ней всё хорошо, то тогда проблема в структуре таблицы (названия таблицы и её полей, типы полей, допустимые значения и прочее).

    Спасибо большое! Все работает , разобрались=) Теперь очень прошу вас описать функцию Cron , как запускать этот скрипт через крн. было бы идеально посвятить этому целую тему=))) И еще хоть убейте, не могу найти вашу статью про аудио/видео проигрыватели на сайте. прошу ссылку=) Спасибо за помощь вам, вы мне во многом уже помогли=)))

    Про cron постараюсь в скором времени написать. Про аудио: http://myrusakov.ru/html-add-audio.html И про видео: http://myrusakov.ru/html-video.html Ещё на сайте есть поиск, где эти статьи элементарно найти, введя «аудио» и «видео».

    Про Cron буду ждать вашей сатьи, так как я не могу с ней разобратся, а она мне очень необходима для онлайн пользователей=)

    Михаил! Опять столкнулся с проблемой. пишу запрос на добавление информации зарегестрированным пользователем именно его записи к нему в строку. $res = mysql_query(«INSERT INTO information (deiatelnost) VALUES (‘$deiatelnost’) WHERE login=’$login'»); Этим запросом просто не хочет добавлять запись . а вот если я ввожу тот же запрос но уже без login=»$login» то все добавляется но соответственно без логина, и уже следовательно вытащить эти данные для конкретного пользователя просто нет возможности. что делаю не так? Могу скинуть на почту полный код action. спасибо заранее=)

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

    так в том то и дело, что я создал чистый столбец дабы разгрузить все остальные(заранее), и там человек который авторизирован под своим логином может добавить новую запись о себе именно ДОБАВИТЬ, ну а после того как добавил он будет апдейтить себя соответственно, Вопрос в том что сейчас запись не добавляется если я ставлю login=’$login’ =(( А если этой записи нет но добавляет инфу, но она соответственно не относится к этому пользователю так как вытащить ее можно для любого другого пользователя авторизированного на сайте. Что не так с запросом?

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

    Запросы в access

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

    Читать еще:  Скачать офис тихая установка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    — в запросе применяются статистические функции 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.

    Конференция VBStreets

    Весь вкус программирования!

    • Список форумовПлатформы и технологииБазы данных
    • Изменить размер шрифта
    • FAQ
    • Вход

    Запросы на удаление строки в Access

    Запросы на удаление строки в Access

    КсЮня » 03.08.2006 (Чт) 12:26

    Antonariy » 03.08.2006 (Чт) 12:54

    Re: Запросы на удаление строки в Access

    Gloom » 03.08.2006 (Чт) 13:00

    alibek » 03.08.2006 (Чт) 13:11

    КсЮня » 03.08.2006 (Чт) 13:52

    Antonariy » 03.08.2006 (Чт) 14:38

    КсЮня » 03.08.2006 (Чт) 14:44

    Antonariy » 03.08.2006 (Чт) 14:54

    Я же говорю скопируй и у копии удали ключ. А база нормализована чтоль? У подчиненных таблиц есть какие-то записи?

    А вообще, если у тебя похожесть повторов плюс-минус трамвайная остановка, то пользуйся глумовским способом.

    КсЮня » 03.08.2006 (Чт) 14:59

    Antonariy » 03.08.2006 (Чт) 15:05

    КсЮня » 03.08.2006 (Чт) 15:10

    Antonariy » 03.08.2006 (Чт) 15:28

    КсЮня » 04.08.2006 (Пт) 10:59

    alibek » 04.08.2006 (Пт) 11:28

    Если таблица большая, то он и будет думать долго, подожди.
    По смыслу запрос обозначает следующее.
    УДАЛИТЬ
    ИЗ Таблица
    ДЛЯ Таблица.Код НЕ ВХОДЯЩИЙ В (ВЫБРАТЬ МИНИМАЛЬНОЕ_ЗНАЧЕНИЕ(Таблица.Код) ИЗ Таблица СГРУППИРОВАВ ПО . )

    Т.е. удалить все неуникальные коды, оставив только первый код неуникальной серии.

    Re: Запросы на удаление строки в Access

    Summer.05 » 17.08.2006 (Чт) 21:14

    Меня заинтересовал ход твоей мысли

    Не подскажешь ли, возможно ли такое с использованием рекордсета?

    Antonariy » 17.08.2006 (Чт) 21:17

    Summer.05 » 17.08.2006 (Чт) 21:22

    Понял, спасибо!
    А как же использовать фильтр для поиска двух одинаковых записей в одном поле? Я понимаю, надо будет идти циклом, сравнивая строки для последующего делета одинаковых записей по конкретному полю. ЧТо это за фильтр, как он выглядит?

    Antonariy » 17.08.2006 (Чт) 21:31

    Summer.05 » 17.08.2006 (Чт) 21:42

    alibek » 18.08.2006 (Пт) 7:16

    Antonariy » 18.08.2006 (Пт) 8:52

    Механизм удаления повторов следует выбирать исходя из того, что представляют из себя данные, насколько похожи повторы. Если они идентичны, то самое простое — удалить запросом. Если +/- трамвайная остановка, то визуально — отсортировав выборку по критерию похожести и ручками удаляя каждую лишнюю запись.

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

    Summer.05 » 18.08.2006 (Пт) 10:15

    Antonariy
    Да, спасибо!
    Я уже понял, что ручками придется.
    Правда, среди 38080 тем диссертаций придется удалить около 10000.

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

    Antonariy » 18.08.2006 (Пт) 11:07

    Summer.05 » 18.08.2006 (Пт) 19:40

    Antonariy
    Ты прав, вот я и стараюсь додуматься, как их удалить.
    Вариант 1. — через сохранения уже ощищенного текста из рекордсета (твоими молитвами).

    Вариант2. — Удаление фильтром.
    Но тут затык: ЧТо писать в WHERE?
    Нужно сравнивать одинаковые названия диссертаций из поля Title,

    Явно, что где-то лишний пробел, где-то не такая буква. На ручки работы хватит, естественно.

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