Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Lvm
Отличить записи, у которых значения всех полей совпадают по определению невозможно. Да они и не отличаются ничем с точки зрения СУБД. Следовательно невозможно и определить которые из них оригиналы, а которые дубликаты.
Почистить таблицу от дубликатов можно так:
1. Создайте в таблице поле идентификатора (тип Счетчик, Совпадения не допускаются).
2. Выполните запрос вида:
DELETE a.*
FROM Таблица1 AS a
WHERE EXISTS (SELECT b.* FROM Таблица1 as b WHERE (a.ID>b.ID) AND (a.Поле1=b.Поле1) AND (a.Поле2=b.Поле2));
В таблице останутся дубликаты с наименьшим значением идентификатора (можно сделать наоборот, роли не играет).
В принципе можно так и работать дальше - счетчик получает уникальные значения автоматически и ни на какие другие операции не влияет.

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


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.