Bazaprogram.ru

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

Как разрешить повторяющиеся значения в access

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

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

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

Создать уникальный индекс можно двумя способами:

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

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

В этой статье

Задание для свойства индексированного поля значения «Да» (совпадения не допускаются)

В области навигации щелкните правой кнопкой мыши таблицу, содержащую поле, и выберите команду конструктор.

Выберите поле, для которого нужно проверить уникальные значения.

В области Свойства поля в нижней части представления конструктор таблицы на вкладке Общие задайте для свойства индексированНое свойство значение Да (совпадения не допускаются).

Сохраните изменения в таблице.

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

Создание уникального индекса для поля с помощью запроса на определение данных

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

Закройте диалоговое окно Добавление таблицы , когда оно откроется.

На вкладке конструктор для запросов в группе результаты щелкните стрелку рядом с кнопкой види выберите пункт режим SQL.

Удалите из запроса все существующие инструкции SQL. (Наиболее вероятный доступ только выводит » выделить»; перед удалением существующего текста).

В запросе введите или вставьте следующий код SQL:

В SQL замените переменные следующим образом:

Замените индекс_наме именем для своего индекса. Рекомендуется использовать имя, которое помогает определить, для чего предназначен индекс. Например, если вы уверены, что номера телефонов должны быть уникальными, вы можете назвать его уникуе_фоне.

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

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

Сохраните и закройте запрос.

Выполните запрос, чтобы создать индекс. Обратите внимание, что вы можете выполнить запрос из макроса с помощью макрокоманды ЗапускЗапросаSQL.

MS Access 2007 повторяющиеся значения (ошибка нарушения ключа) и устранили повторяющиеся значения

Я импортировал тот же тип файла excel в MS Access 2007 и до недавнего времени не имел проблем. В сообщении говорится, что у меня есть ключевое нарушение, когда я перезаписываю таблицу. В файле excel (поле первичного ключа) были дубликаты, которые я удалил, и я тщательно проверил файл excel. Я reimported и его по-прежнему показывает то же самое сообщение.

Какой курс действий я могу предпринять, чтобы решить?

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

4 Ответов

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

В файле Excel соберите ключевые столбцы вместе и отсортируйте таблицу Excel для it/them. добавить Условное форматирование, используя формулу для этого полного диапазона (если он начинается в A2, Условное форматирование будет читать =A2=A1, без знаков доллара)с некоторым полужирным шрифтом, заливкой и т. д. так что любые дураки проявляются четко.

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

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

Читать еще:  Ms access примеры баз данных

Если это действительно окажется не нарушением, а ошибкой, разместите здесь плохие значения и определение таблицы со всеми размерами полей и составом key/index/validation.

Перейдите в представление конструктора конкретной таблицы, в которую вы хотите добавить дубликаты данных, и выберите строку, которая добавляет как дубликат, и измените индекс на YES (DUPLICATE), чем вы добавляете дубликаты данных в эту таблицу базы данных MS-Access.

Внимательно проверьте таблицу базы данных Access. Access часто решает индексировать поля от вашего имени. Как правило, это не индексы UNIQUE (выраженные в Access как свойство «Duplicates OK» No в столбце), но, возможно, у вас есть некоторые дополнительные индексы, о которых вы не знаете.

Также проверьте, есть ли у вас поле autonumer в таблице, и убедитесь, что автоматическая нумерация не была перепутана (удалите и повторно добавьте объявление autonum в пустую таблицу).

У меня была такая же проблема при импорте Excel листов в Access. Ошибка для меня была вызвана пустыми строками в конце листа Excel. Если это так для вас, самый простой способ справиться с этим-просто скопировать информацию с вашего листа Excel на другой лист без пустых строк, по какой-то причине macros, который я пытался удалить пустые строки, не имел эффекта.

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

Похожие вопросы:

У меня есть сомнения относительно hashset. Почему Hashset не принимает повторяющиеся элементы? Я знаю, что он реализует интерфейс Set и помещает значения в хэш-таблицу. Я имею в виду, что может быть.

У меня есть таблица UserDetails, в которой два столбца, а именно EmailId и UserId, установлены в качестве первичного ключа. Однако я не получаю никакого нарушения ключа от движка SQL, когда я.

На столбец product_rate_id в следующей таблице необходимо ссылаться из другой таблицы в качестве внешнего ключа. Однако product_rates TABLE должен содержать повторяющиеся значения для.

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

Мне нужно выделить повторяющиеся значения из ячейки в список в excel. Вот входная ячейка(в одной ячейке) 1A — London,Perth,Dublin Список для сравнения 2A Paris 3A London 4A New York 5A Dublin 6A.

Ладно, мне было интересно, как я могу найти повторяющиеся значения для одного ключа в словаре. так что у меня есть import collections s = [(‘yellow’, 1), (‘blue’, 2), (‘yellow’, 1), (‘blue’, 4).

Из-за некоторых архитектурных причин я должен игнорировать повторяющиеся значения в индексе. Он отлично работает — за исключением случаев, когда я вставляю неправильные данные. Я пытаюсь вставить.

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

(postgresql) я пытался COPY csv данных в таблицу, но я получал повторяющиеся ошибки нарушения ключа, и нет никакого способа сказать COPY игнорировать их, поэтому после Интернет-мудрости я попытался.

Согласно другим вопросам ( здесь и здесь ) можно поймать уникальные ключевые нарушения в Entity Framework 6, поймав брошенное исключение и проверив его InnerException . При вызове.

Как разрешить повторяющиеся значения в access

Использование буфера обмена Windows для импорта и экспорта данных

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

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

Чтобы добавить новые записи в таблицу Access 2002 при помощи буфера обмена Windows:

  1. Запустите приложение, которое будет использоваться для копирования данных в буфер обмена (в нашем примере это Microsoft Excel), и откройте файл с данными.
  2. Выделите данные, которые нужно добавить в таблицу Access. Например, выделите диапазон ячеек рабочего листа, начиная со столбца, соответствующего первому полю таблицы Access (рис. 3.44). При этом необязательно выделять все оставшиеся столбцы, соответствующие полям таблицы Access, поскольку Access 2002 добавит пустые значения или значения по умолчанию в поля, соответствующие столбцам, не включенным в выделенный диапазон.
  3. Выберите команду Правка, Копировать (Edit, Copy) или нажмите комбинацию клавиш + , чтобы скопировать выделенный диапазон ячеек в буфер обмена Windows.
  4. Откройте таблицу, в которую нужно добавить данные, в режиме Таблицы.

Рис. 3.44. В таблицу Access 2000 будет добавлен выделенный диапазон ячеек

  1. Выберите команду Правка, Добавить из буфера (Edit, Paste Append). Если в процессе добавления записей не возникнет ошибок, появится окно, запрашивающее подтверждение на добавление записей в таблицу (рис. 3.45). Нажмите кнопку Да (Yes). Новые записи будут добавлены в конец таблицы Access (рис. 3.46). Чтобы разместить добавленные записи в правильной последовательности, выберите команду Записи, Удалить фильтр (Records, Remove Filter/Sort).
Читать еще:  Шаблоны access скачать бесплатно

При добавлении в таблицу Access 2002 данных с помощью буфера обмена Windows могут возникнуть ошибки по одной из двух причин:

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

Рис. 3.45. Подтвердите вставку записей из буфера обмена

Рис. 3.46. Выделенные записи добавлены из буфера обмена

В любом случае Access 2000 создаст таблицу «Ошибки вставки» (Paste Errors) и запишет в нее все записи, вызвавшие ошибки. Использование таблицы «Ошибки вставки» аналогично использованию таблицы ошибок импорта данных, описанной ранее в этой главе.

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

После завершения добавления записей в таблицу появится сообщение о том; что записи, которые не удалось добавить из буфера обмена, помещены в таблицу «Ошибки вставки».

Рис. 3.47. Таблица «Ошибки вставки»

Если в процессе вставки выдается много сообщений об ошибках, вызванных повторяющимися значениями в ключевом поле, лучше прервать этот процесс (реальная вставка записей происходит только после подтверждения в конце процесса), найти записи с повторяющимися значениями, исправить их и заново выполнить процесс вставки. Для того чтобы быстро найти повторяющиеся данные, можно выполнить запрос специального вида — «Повторяющиеся записи». Раскройте список запросов в окне базы данных, нажмите кнопку Создать (New), в появившемся диалоговом окне Новый запрос (New Query) выделите элемент Повторяющиеся записи (Find Duplicates Query Wizard) и нажмите кнопку ОК. (Более подробно о создании запросов см. гл. 4.)

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

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

Простейшим способом экспорта данных из таблицы Access в другое приложение Windows также является копирование содержимого таблицы Access в буфер обмена с

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

  1. Откройте нужную таблицу в режиме Таблицы (мы использовали для примера таблицу «Поставщики»).
  2. Выделите в этой таблице нужный диапазон ячеек, нужное количество записей или все записи. Таблица «Поставщики» примет вид, приведенный на рис. 3.48. Если необходимо выделить все поля во всех записях таблицы, выберите команду Правка, Выделить все записи (Edit, Select All Records) или щелкните левой кнопкой мыши по серому прямоугольнику в левом верхнем углу окна на пересечении строки заголовков столбцов и столбца выделения записей.

Рис. 3.48. Выделенный диапазон ячеек в таблице «Поставщики»

  1. Нажмите комбинацию клавиш + или выберите команду Правка, Копировать, чтобы скопировать выделенные данные в буфер обмена.
  2. Запустите Microsoft Word и создайте в нем новый документ, выбрав команду Файл, Создать (File, New).
  3. Выберите команду Правка, Вставить (Edit, Paste) или нажмите комбинацию клавиш + . Данные из буфера обмена будут вставлены в документ Word в виде отформатированной таблицы (рис. 3.49).

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

Читать еще:  Как сделать таблицу в access

Рис. 3.49. Данные, импортированные в документ Word для Windows в виде таблицы

Самоучитель Microsoft Access 2003 — Бекаревич Ю.Б.

Бекаревич Ю.Б., Пушкина Н.В. Самоучитель Microsoft Access 2003 — СПб.: БХВ-Петербург, 2004. — 752 c.
ISBN 5-94157-405-3
Скачать (прямая ссылка): samoucjitelacsess2004.pdf Предыдущая 60 61 62 63 64 65 .. 268 >> Следующая

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

Для отказа от определения первичного ключа в таблице достаточно нажать кнопку Ключевое поле (Primary Key) или удалить индекс ключа в окне Ин-
134

Часть і. Основы технологии Microsoft Access

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

Microsoft Office Access

Некоторые данные могли быть потеряны.

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

Рис. 3.43. Сообщение при изменении свойств поля

.Microsolt Office Access «» S
Удаление поля ‘CPOKJIOCT1 потребует от приложения «Microsoft Office Access’ удаления
:.L ключевого поля.
Подтвердите удаление этого поля.
!г:

Рис. 3.44. Сообщение при удалении ключевого поля

Изменения не были успешно внесены из-за повторяющихся значений в индексе, ключевых ПОЛЯХ или

T сеязічх, Измените даннь« в поле или полях, содержащих повторяющиеся значения, удалите индекс или

-?? переопределите его, чтобы разрешить повторяющиеся значения, и повторите попытку.

Рис. 3.45. Сообщение при попытке назначить ключом поле с повторяющимися значениями

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

Изменение схемы данных

При модификации схемы данных может производиться изменение состава ее таблиц: удаление и добавление таблиц, изменение их связей, способ объединения записей связанных таблиц.
Глава 3. Создание базы данных.

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

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

Для внесения изменений в схему данных перед ее открытием нужно закрыть все таблицы. Команда Сервис|Схема данных (ToolslRelationships) или кнопка Схема данных (Relationships) на панели инструментов откроют схему данных. При этом открывается панель инструментов Связь (Relationship).

Добавление таблиц выполняется при нажатии кнопки Добавить таблицу

(Show Table) f%l на панели инструментов Связь (Relationship). В диалоговом окне Добавление таблицы (Show Table) (см. рис. 3.26) надо выделить нужную таблицу и нажать кнопку Добавить (Add).

Удаление таблицы из схемы данных возможно только после удаления всех связей таблицы. Сделайте таблицу текущей и выполните команду Прав-ка|Удалить (Edit |Delete) или нажмите клавишу .

Удаление связи осуществляется, если к связи подвести курсор мыши и отметить связь щелчком мыши, затем нажать правую кнопку мыши, вызывающую контекстное меню, и выполнить команду Удалить связь (Delete Relationship). Помеченную связь можно также удалить по команде Прав-ка<Удалить (Edit |Delete) или нажатием клавиши .

Изменение параметров связи выполняется при выделенной связи в диалоговом окне, которое вызывается командой Связи|Изменііть связь (Relationships! Edit Relationship) или соответствующей командой контекстного меню.

Контрольные вопросы по схеме данных

1. Для чего создается схема данных базы Access?

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

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

4. Можно ли в подчиненную таблицу ДОГОВОР ввести запись о договоре с покупателем, который не представлен в таблице покупатель, если для этих таблиц обеспечивается целостность данных?

5. Можно ли удалить запись о покупателе, если в таблице ДОГОВОР представлены записи о договорах с этим покупателем и не установлен параметр Каскадное удаление связанных записей?
136_

Часть I. Основы технологии Microsoft Access

6. Что произойдет при изменении значения ключевого поля в главной таблице. если для ее связи с подчиненной установлен параметр Каскадное обновление связанных полей?

7. Для чего предназначен знак в левом столбце открытой таблицы?

8. Какая команда позволяет открыть связанные записи нужной подчиненной таблицы в главной?

9. Какое свойство таблицы определяет подтаблицу, задающую вывод связанных записей при щелчке на знаке «+»?
Предыдущая 60 61 62 63 64 65 .. 268 >> Следующая

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