Как уже говорилось, в новом поле для исходной таблицы допускается дублирование: для свойства Индексировано установлено значение Да (Дублирование разрешается). Когда вы будете сохранять это изменение в структуре таблицы, Access 2002 поделится с вами своими сомнениями относительно несовместимости внесенных изменений с существующими данными (см. рис. 11.55) и предложит подумать над продолжением работы при сохранении нового значения. Здесь возможны разные варианты ответа, показанные на рис. 11.55.
Оставьте сомнения и смело отвечайте Да. В результате вы получите таблицу ES_OPER с новым пустым полем Условие отбора.
Запрос на обновление записей
Теперь сформируйте запрос на обновление, чтобы ввести в созданное поле Условие отбора конкатенацию полей – критериев, по которым идет поиск дублирующихся записей. Как обычно, сначала создайте запрос для таблицы ES_OPER. Чтобы не возиться с лишней информацией, оставьте в запросе только одно поле – Условие отбора. Затем, как и раньше, откройте меню Тип запроса и выберите опцию Запрос на обновление. В строку Обновление внесите конкатенацию: [Дата ЧС] & [Код объекта] & [Виды ЧС] (рис. 11.56).
Обратите внимание, что имена полей необходимо заключить в квадратные скобки, иначе вместо значений полей будут введены их названия. Если вы теперь отправите запрос на выполнение, то в поле Условие отбора будут включены совокупные значения полей, полученные после их объединения. На рис. 11.57, где представлена часть таблицы ES_OPER, показан результат операции.
Рис. 11.57
И снова запрос на добавление
Наконец, завершая работу по удалению повторяющихся записей, скопируйте ES_OPER в новую таблицу, где в поле Условие отбора будет задан запрет на дублирование. Для этого в окне базы данных выделите таблицу ES_OPER и последовательно щелкните по кнопкам
(Копировать) и
(Вставить). В окне Вставка таблицы (рис. 11.58) укажите имя новой таблицы – ES_OPER1.
В этом же окне выберите в разделе Параметры вставки опцию Только структура. Когда вы щелкнете по кнопке ОК, в окне базы данных на вкладке Таблицы появится имя новой таблицы – ES_OPER1. Откройте ее в режиме конструктора и измените то свойство поля Условие отбора, которое касается запрета на повторение записей (рис. 11.59). Сравните значение этого свойства, установленное для скопированной таблицы, с аналогичным значением для исходной таблицы (см. рис. 11.54).
Теперь займемся формированием долгожданного запроса на добавление. Алгоритм создания подобных запросов был подробно рассмотрен в этой главе, в разделе «Запрос на добавление записей в таблицу», поэтому здесь отметим лишь одну деталь. В данном случае таблицей-получателем является ES_OPER1, а таблицей-источником – ES_OPER. В ходе выполнения запроса Access 2002 пожалуется вам на то, что не может включить в таблицу-получатель какое-то количество записей, поскольку в ней не допускается наличие дубликатов (рис. 11.60).
Но именно к этому вы и стремились! Отбросив угрызения совести, смело отвечайте Да.
Итоговый вид бланка запроса показан на рис. 11.61, а очищенная от повторяющихся записей таблица ES_OPER1 – на рис. 11.62.