недопустимое описание поля код при определении индекса или связи

Недопустимое описание поля код при определении индекса или связи

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

Всем привет, друзья! Если вы читаете этот текст, значит вы столкнулись со следующей проблемой. При связывании двух таблиц, при выставлении «обеспечение целостности данных», вы получаете следующую ошибку «не обнаружен уникальный индекс для адресуемого поля главной таблицы» в базе данных Microsoft Access. Давайте, я покажу как избежать появление такой ошибки.

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

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

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

Друзья, надеюсь данное разъяснение было вам понятным, и теперь вы знаете, что делать, если появилась ошибка «Не обнаружен уникальный индекс для адресуемого поля главной таблицы» в программе Microsoft Access! Продолжайте изучать программу microsoft access и до новых встреч!

Источник

Описание пакета исправлений Access 2010 (ace-x-none.msp): 14 декабря 2010 г.

Сведения о внутренней поддержки Майкрософт

Обзор

В данной статье описаны ошибки, исправленные в пакете исправлений Microsoft Access 2010, русская версия, выпущенное 14 декабря 2010 г.

ВВЕДЕНИЕ

Проблемы, которые данное исправление устраняет

В Access 2010 при попытке вставить объект OLE в поле Тип varbinary(max) связанной таблицы SQL, появляется следующее сообщение об ошибке:

Строка данных строки справа

Сведения о внутренней поддержки Майкрософт

В Access 2010 таблицы определяются с помощью ограничений в определении языка SQL данных (DDL). Запустите инструкцию SQL DDL для создания таблицы. В этом случае появляется следующее сообщение об ошибке:

Читайте также:  the godfather 2 коды к игре

Недопустимое определение поля «Код» в определении индекса или связи.

Сведения о внутренней поддержки Майкрософт

Дополнительные сведения

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

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

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

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

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

Предварительные условия

Данное исправление необходимо установить Microsoft Access 2010.

Необходимость перезагрузки

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

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

Это исправление не заменяет ранее выпущенные исправления.

Сведения о реестре

Для использования одного из исправлений в этом пакете, не требуется вносить изменения в реестр.

Сведения о файлах

Это исправление может содержать не все файлы, которые необходимы для полного обновления продукта до последней сборки. Данное исправление содержит только файлы, которые необходимы для устранения описанных в этой статье проблем.

Общая версия данного исправления использует пакет установщика Microsoft Windows для установки исправления. Дата и время для файлов указаны в всеобщее скоординированное время (UTC) в следующей таблице. При просмотре сведений о файле, дата преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, откройте вкладку Часовой пояс элемента «Дата и время» панели управления.

Источник

Недопустимое описание поля код при определении индекса или связи


Palladin © ( 2009-07-29 15:50 ) [1]

оно и так само вычисляется

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

Читайте также:  статья 159 часть 2 уголовного кодекса что означает


xyz ( 2009-07-29 16:14 ) [3]


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

Ну я вообще-то записи вставляю с пом. ADOCommand. Какой это надо составить SQL-запрос? Пробовал просто пропускать в запросе ключевое поле, указывал только оставшиеся 2, возникало исключение.
А в самом access»е поле установлено как счетчик, да.


Palladin © ( 2009-07-29 16:18 ) [4]

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

Т. е. такой запрос
insert into Инвентарь (Наименование,Код_типа_инвентаря) values (.
должен работать в случае когда в таблице 3 поля? А исключение возникает из-за повторяющегося значения индекса. Так что не вычисляется оно там само.


Palladin © ( 2009-07-29 16:28 ) [6]


> Так что не вычисляется оно там само.

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

у тебя поди Код_типа_инвентаря уникальным индексом стоит.


xyz ( 2009-07-29 16:31 ) [7]

Да нет, это числовое поле, но оно не ключевое. К тому же множество предыдущих записей с одинаковых кодом типа внеслись нормально.


Anatoly Podgoretsky © ( 2009-07-29 16:36 ) [8]

> xyz (29.07.2009 16:26:05) [5]

Когда больше или равно двум


Anatoly Podgoretsky © ( 2009-07-29 16:37 ) [9]

Тогда это Наименование или комбинация

А наименованию ему разрешено повторяться вроде, оно же не ключевое


xyz ( 2009-07-29 16:49 ) [11]

можно ли связывать таблицы по полю счетчик?


Anatoly Podgoretsky © ( 2009-07-29 16:51 ) [12]

> xyz (29.07.2009 16:49:11) [11]


xyz ( 2009-07-29 16:55 ) [13]

каскадное обновление связанных полей сделать не получается в access»е. Пишет: «Недопустимое описание поля код «инвентаря» при определении индекса или связи».
А запрос не делался потому что сам access переделал потом поле обратно в числовое. Сказал что там со связями что-то не так.


Сергей М. © ( 2009-07-29 17:02 ) [14]

2 таблицы: «Имущество» и «Инвентарь».

поля таблицы «Имущество»:
номер вагона (ключевое, тип: числовой)
код инвентаря (счетчик. индексированное, допускаются совпадения)
количество (числовой)

Читайте также:  код тн вэд куртка кожаная женская

поля таблицы «Инвентарь»:
наименование (текстовый)
код_типа_инвентаря (числовой)
код_инвентаря (ключевое, счетчик, совпадения не допускаются)


Сергей М. © ( 2009-07-29 17:23 ) [16]


> код инвентаря (счетчик. индексированное, допускаются совпадения)


xyz ( 2009-07-29 17:36 ) [17]


Сергей М. © ( 2009-07-29 17:46 ) [18]


> там оно тоже вроде автоматом определяется

в 1-ю очередь оно не «там» должно определяться, а в твоей голове)


xyz ( 2009-07-29 17:51 ) [19]

Все, решил проблему. В ADODataSet надо было выборку делать сразу по всем полям. А у меня было по одному. Из-за этого в DBLookUpListBox пришлось поставить наименование, а надо было настоящее ключевое поле.


xyz ( 2009-07-29 17:54 ) [20]


Сергей М. © ( 2009-07-29 17:59 ) [21]

поля таблицы «Имущество»:
номер вагона (ключевое, тип: числовой)
код инвентаря (счетчик. индексированное, допускаются совпадения)
количество (числовой)

поля главной справочной таблицы «Инвентарь»:
код_инвентаря (ключевое, счетчик, совпадения не допускаются)
наименование (текстовый)
код_типа_инвентаря (числовой)

поля подчиненной справочной таблицы «Имущество»:
номер вагона (ключевое, тип: числовой)
код инвентаря (индексированное, допускаются совпадения)
количество (числовой)

Таблица «Имущество» связывается с таблицей «Инвентарь» по полю «Код_инвентаря» в отношении «Многие к Одному», поскольку во многих разных вагонах присутствует один и тот же инвентарь, например, лопата)


xyz ( 2009-07-29 18:06 ) [22]

Да сейчас-то я уже поменял на числовой. На вид вроде все нормально. Записи добавляются, удаляются.
Но вот такой вопрос: по мере использования таблицы пользователи то добавляют записи, то удаляют, то снова добавляют, удаляют и т. д. А счетчик-то в таблице (его значение) растет. Я заметил, что значение счетчика делается на 1 больше самого большого уже существующего числа в этом поле. Нарример, сделать 3 записи, удалить вторую, добавить запись, а счетчик у нее будет 4, а не 2. Так ведь и переполнение может произойти после длительного времени использования программы?


> Так ведь и переполнение может произойти после длительного
> времени использования программы?

Не успеет переполниться. Максимальное значение счетчика превышает 2 миллиарда. Раньше база потеряет свою актуальность.


Сергей М. © ( 2009-07-29 19:36 ) [24]


Dennis I. Komarov © ( 2009-07-30 10:04 ) [25]


> а счетчик у нее будет 4, а не 2.

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

Источник

Онлайн платформа