Индекс или ключ не может содержать пустое значение аксесс

Индекс и первичный ключ не могут содержать значение Null (ошибка 3058)

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

Вы попытались добавить значение Null в основное поле ключей.

Вы выполнили запрос, который попытался поместить значение Null в поле основного ключа.

Что такое первичный ключ?

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

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

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

Кроме того, Access гарантирует, что каждая запись имеет значение в поле первичного ключа, и это значение всегда уникально.

Что такое Null?

Null — это значение, которое вы можете ввести в поле или использовать в выражениях или запросах, чтобы указать отсутствующие или неизвестные данные. В Microsoft Visual Basic ключевое слово Null указывает на значение Null. Некоторые поля, например поля первичных ключей, не могут содержать значение Null.

Решение

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Допустим есть таблица, назовем ее на пример Order

Дну если в одной из записей цена не стоит (пустая ячейка) — програма вылетает

Если это не допущение, а реальное имя — переименуйте обязаельно.

я так понял то значение (0) на которое мы поменяем если поле пустое?

Возвращает логическое значение, указывающее, содержит ли выражение недопустимые данные (null).

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

Значение NULL указывает, что переменная типа Variant не содержит допустимых данных. Значение NULL и пусто — не одно и то же; последнее указывает, что переменная еще не инициализирована. Оно не равно также и строке нулевой длины («»), иногда называемой пустой строкой.

Примеры запросов

ВЫБЕРИТЕ ProductID, isNull (скидка) как Выражение1 из Продуктсалес;

Возвращает значения из поля ProductID, определяет, являются ли значения в поле «скидка» пустыми, возвращает-1 (истина) и 0 (ложь) в столбце Выражение1.

ВЫБЕРИТЕ ProductID, isNull (скидка) как Нуллстатус из Продуктсалес;

Возвращает значения из поля ProductID, определяет, являются ли значения в поле «скидка» пустыми, возвращает-1 (истина) и 0 (ложь) в столбце Нуллстатус.

Пример VBA

Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В следующем примере с помощью функции IsNull определяется, содержит ли переменная значение NULL.

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

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

Общие сведения

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

Читайте также:  Упражнения по SQL

После ввода данных Access проверяет их на соответствие правилу проверки. Если данные недопустимы, отобразится сообщение.

В Access есть несколько способов ограничения ввода данных.

Эти методы проверки данных можно использовать как вместе, так и в отдельности. Типы данных являются обязательными и предоставляют наиболее распространенные типы проверки данных.

Дополнительные сведения о типах данных, размерах полей и масках ввода см. в статье Введение в использование типов данных и свойств полей.

Типы правил проверки

Можно создать два основных типа правил проверки.

Применение правил проверки

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

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

Данные, которые можно ввести в правило проверки

Дополнительные сведения о выражениях см. в статье Создание выражений.

Добавление правила проверки в таблицу

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

Примечания: Правила проверки не поддерживаются в таких типах полей:

Создание правила проверки поля

Выберите поле, которое требуется проверить.

На вкладке Поля в группе Проверка поля нажмите кнопку Проверка и выберите пункт Правило проверки поля.

Создайте правило проверки с помощью построителя выражений. Дополнительные сведения об использовании построителя выражений см. в статье Использование построителя выражений.

Создание сообщения для отображения при вводе недопустимых данных

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

На вкладке Поля в группе Проверка поля нажмите кнопку Проверка и выберите пункт Сообщение проверки поля.

Примеры правил проверки поля и сообщений см. в разделе Справочная информация о правилах проверки.

Создание правила проверки записи

Откройте таблицу, в которой требуется выполнить проверку записей.

Создание сообщения для отображения при вводе недопустимой записи

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

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

Проверка имеющихся данных на соответствие новому правилу проверки

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

Откройте таблицу для проверки в режиме конструктора.

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

Нажмите кнопку Да, чтобы закрыть сообщение и начать проверку.

Если будет предложено сохранить таблицу, нажмите кнопку Да.

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

Добавление правила проверки в элемент управления формы

Можно использовать свойства элементов управления Правило проверки и Сообщение об ошибке для проверки данных, вводимых в элемент управления, и предупреждения пользователей о вводе недопустимых данных.

Совет: При автоматическом создании формы из таблицы с помощью одной из команд в группе «Формы» на ленте все проверки поля, имеющиеся в базовой таблице, наследуются соответствующими элементами управления в форме.

Читайте также:  Запустите Windows Startup Repair, чтобы исправить Невозможно загрузить систему с кодом ошибки 0x490

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

Предположим, что к полю даты в таблице применено следующее правило:

Таким образом, в поле данных необходимо вводить значения, предшествующие 2010 году, а в элементе управления формы — не ранее этого года. Согласно этим правилам нельзя ввести никакую дату.

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

Щелкните правой кнопкой мыши форму, которую требуется изменить, и выберите пункт Режим макета.

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

Откройте вкладку Все и введите правило проверки в поле свойства Правило проверки.

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

Введите сообщение об ошибке в поле свойства Сообщение об ошибке.

Справочная информация о правилах проверки

В правилах проверки используется синтаксис выражений Access. Дополнительные сведения о выражениях см. в статье Введение в использование выражений.

Примеры правил и текста проверки

Введите значение, отличное от нуля.

Значение не должно быть отрицательным.

Введите положительное число.

значение должно быть равно 0 либо быть больше 100.

Введите значение со знаком процента. (Для полей с числовыми значениями процентов.)

=#01.01.2007# AND =Int(Now())

Ведите текущую дату.

Введите «М» для мужского пола, «Ж» — для женского.

Дата окончания не должна предшествовать дате начала.

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

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

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

IN («Токио», «Париж», «Москва»)

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

Сопоставляет образец строки с текстовым полем или полем МЕМО.

Требует ввода значения в поле. Результат такой же, как при задании для свойства Обязательное поле значения Да. Но если свойство Обязательное поле включено, а пользователю не удается ввести значение, в Access отображается непонятное сообщение об ошибке. Удобнее использовать в базе данных оператор IS NOT NULL и ввести информативное сообщение в свойстве Текст проверки.

Указывает, что все части правила проверки должны быть истинными.

Указывает, что некоторые (но не все) части правила проверки должны быть истинными.

Использование подстановочных знаков в правилах проверки

В правилах проверки можно использовать подстановочные знаки. Имейте в виду, что Access поддерживает два набора подстановочных знаков: ANSI-89 и ANSI-92. В этих стандартах используются различные наборы подстановочных знаков.

Можно изменить стандарт ANSI для базы данных на стандарт ANSI-92, выполнив следующие действия.

На вкладке Файл выберите пункт Параметры.

В диалоговом окне Параметры Access выберите пункт Конструкторы объектов.

В разделе Конструктор запросов в группе Синтаксис для SQL Server (ANSI 92) установите флажок эта база данных.

Дополнительные сведения об использовании подстановочных знаков и стандартах ANSI для языка SQL см. в статье Справочные сведения о подстановочных знаках в Access.

Добавлено через 2 минуты

Добавлено через 16 минут

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

Давайте, чтобы не обсуждать сферических коней в вакууме, возьмем конкретный пример. Вот есть база, в тей, в таблице TAB, есть подстановки.

Форма Запрос1 основана на запросе Запрос1, который, если его открывать для просмотра, разумеется наследует подстановки у таблицы TAB.

Индекс или ключ не может содержать пустое значение аксесс

Сообщение «Ключ не может содержать пустое значение»Не смотря на наличие данных в таблице, Access продолжает считать её пустой и не желает сохранять.

Читайте также:  Критический системный процесс Windows system32 lSass exe завершился некорректно

Ошибка: индекс или ключ не может содержать пустое значениеЗаполняю форму для внесения записи в таблицу БД нажимаю кнопку сохранить прога выдаёт ошибку. прогу.

Ошибка: Индекс или ключ не может содержать пустое значениеЗаполняю форму для внесения информации в таблицу БД, нажимаю кнопку «Добавить», и сразу выскакивает.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Ошибка «Типизированный файл не может содержать элементы такого типа». Помогите исправитьв 20 строке выбивает ошибку:ипизированый файл не может содержать элементы такого типа помогите.

Как конверировать в int который может принимать пустое значениеКак конверировать в int который может принимать пустое значение?

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

Чтобы задать первичный ключ таблицы, откройте таблицу в режиме конструктора. Выберите нужное поле (или поля), а затем на ленте щелкните Ключевое поле.

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

Используя поля первичных ключей, Access быстро связывает данные из нескольких таблиц и объединяет их понятным образом. Вы можете добавить поля первичных ключей в другие таблицы, чтобы ссылаться на таблицу, которая является источником первичного ключа. В других таблицах поля называются внешними ключами. Например, поле «ИД клиента» в таблице «Клиенты» также может отображаться в таблице «Заказы». В таблице «Клиенты» оно является первичным ключом. В таблице «Заказы» оно называется внешним ключом. Проще говоря, внешний ключ — это первичный ключ другой таблицы. Дополнительные сведения см. в статье Основные сведения о создании баз данных.

При переносе существующих данных в базу данных в них уже может существовать поле, которое можно использовать как первичный ключ. Часто в роли первичного ключа таблицы выступает уникальный идентификационный номер, например порядковый или инвентарный номер или код. Например, в таблице «Клиенты» для каждого клиента может быть указан уникальный код клиента. Поле кода клиента является первичным ключом.

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

При создании таблицы в режиме таблицы Access автоматически создает первичный ключ с именем «Код» и типом данных «Счетчик».

Создание приемлемого первичного ключа

Чтобы правильно выбрать первичный ключ, следует учитывать несколько характеристик.

Ключ должен однозначно определять каждую строку.

В нем не должно быть пустых или отсутствующих значений — он всегда содержит значение.

Ключ крайне редко изменяется (в идеале — никогда).

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

Индекс или ключ не может содержать пустое значение аксесс

Поле с типом данных «Счетчик» является хорошим первичным ключом.

Примеры неудачных первичных ключей

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

Неподходящий первичный ключ

Может быть не уникальным и может изменяться

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *