Читаем Microsoft Access 2007 полностью

3. Укажите таблицу Заказы и нажмите кнопку Далее .

4. Выберите поля Дата , Товар , Клиент (рис. 6.33) и нажмите кнопку Готово .

Рис. 6.33. Здесь следует задать поля с повторяющимися значениями

Будет выведен список повторений по таблице Заказы (рис. 6.34).

Рис. 6.34. Результат поиска повторяющихся записей

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

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

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

1. Добавьте в таблицу временное поле Сохранить логического типа. Это поле будет хранить значение 1 , если запись требуется оставить, и значение 0 – если удалить.

2. Оставьте все записи с минимальным значением поля Номер . Щелкните правой кнопкой мыши на заголовке вкладки запроса. Выберите пункт контекстного меню Режим SQL .

3. Скопируйте содержимое листинга 6.16 в запрос.

...

Листинг 6.16.

Запрос на установку флага для последующего удаления дубликатов

UPDATE Заказы

SET Сохранить = 1

WHERE [Номер (ID)] IN

(SELECT Min([Номер (ID)]) FROM Заказы GROUP BY Заказы. Дата, Заказы.

Товар, Заказы. Клиент HAVING (((Count(Дата))>1) AND

((Count(Клиент))>1)))

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

4. Перейдите на вкладку Конструктор и выберите команду Выполнить . Откроется окно подтверждения операции обновления.

5. Нажмите кнопку Да .

6. Откройте таблицу Заказы (рис. 6.35).

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

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

1. Откройте мастер запросов, как было описано выше. Выберите пункт Повторяющиеся записи и нажмите кнопку ОК .

2. Добавьте поля Товар , Дата , Клиент и нажмите кнопку Далее .

3. Добавьте поле Сохранить (рис. 6.36) и нажмите кнопку Готово .

Рис. 6.36. Окно поиска повторяющихся записей

4. Щелкните правой кнопкой мыши на заголовке вкладки запроса. Выберите команду Конструктор .

5. В бланке запроса в строке Условие отбора для поля Сохранить введите 0.

6. На вкладке Конструктор в группе Тип запроса выберите команду Удаление .

Результирующий бланк запроса на удаление показан на рис. 6.37.

Рис. 6.37. Результирующий бланк запроса на удаление

Текст запроса на удаление приведен в листинге 6.17.

...

Листинг 6.17.

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

DELETE Заказы. [Дата], Заказы. [Товар], Заказы. [Клиент],

Заказы. [Сохранить]

FROM Заказы

WHERE (((Заказы. [Дата]) In (SELECT [Дата] FROM [Заказы] As Tmp GROUP

BY [Дата],[Товар],[Клиент] HAVING Count(*)>1 And [Товар] =

[Заказы].[Товар] And [Клиент] = [Заказы].[Клиент])) AND

((Заказы. [Сохранить])=0));

Перейти на страницу:

Все книги серии Видеосамоучитель

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных