Правило проверки в доступе, не принимающем действительные данные; Не могу сохранить запись

Я использую несколько простых правил проверки для таблицы в базе данных, которой я управляю (на данный момент это ANSI-89, если это помогает). Один, например, гласит:

Like "#" Or Like "##"

Насколько я понимаю, это должно позволять любое одно- или двузначное число (1, 2, 35, 00, 99 и т. Д.). Однако ввод «1» в поле отклоняется, и правило проверки продолжает запрашивать правильный ввод, поскольку это обязательное поле.

Точно так же и, что более важно, у меня есть еще одно поле, которое проверяется следующим образом:

Like "######?"

«201620A» должно быть действительным (как вы можете догадаться, данные для этого поля частично основаны на году). И хотя это не настоящие данные, "123456Z" тоже следует принять. Несмотря на это, оба отвергаются.

Поскольку это обязательные поля, я не могу сохранить запись ... обычно. Как ни странно, мне иногда удавалось успешно сохранить запись. То есть, он ведет себя нестабильно.

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


person Community    schedule 11.01.2016    source источник
comment
Эти правила проверки работают для моего текстового поля в базе данных формата ACCDB с использованием 32-разрядного Access 2010 со всеми примененными обновлениями Office и Windows. Поэтому я не понимаю, почему они не работают на вас. Я бы попробовал компактно и отремонтировать, но не уверен, что это ответ.   -  person HansUp    schedule 11.01.2016
comment
Я бы рекомендовал выполнять проверку в BeforeUpdate событии формы вместо проверки на уровне таблицы, это даст вам больше гибкости   -  person Sergey S.    schedule 11.01.2016
comment
Спасибо вам обоим за ваши ответы. Это продолжало происходить спорадически, будь то в форме или в таблице. Я пробовал Compact & Repair и посмотрю, поможет ли это. Кажется, он исправил это ... но только время покажет. Последняя мысль - некоторые записи в таблице содержат недопустимые данные для этих полей. Может ли это вызвать какие-либо проблемы?   -  person    schedule 09.02.2016
comment
HansUp, возможно, ваше предложение устранило проблему. На прошлой неделе я запускал компактный и ремонтный, и с тех пор никаких ошибок не возникало. Я собираюсь присмотреть за ним в течение следующей недели или около того, и буду считать, что он решен, если все пойдет хорошо. Не могли бы вы повторно опубликовать свой комментарий в качестве ответа, чтобы я мог принять его в таком случае?   -  person    schedule 15.02.2016
comment
@HansUp, я могу подтвердить, что проблема была решена, и, похоже, это произошло из-за вашего решения. Я хотел бы отдать вам должное, поэтому, пожалуйста, отправьте ответ, когда у вас будет время!   -  person    schedule 19.04.2016
comment
Ах, ладно ... честно! Тогда я дам ответ. Еще раз спасибо за помощь, все равно.   -  person    schedule 20.04.2016


Ответы (1)


Как отмечалось в комментариях, предложение HansUp об использовании Compact & Repair, похоже, устранило проблему, поскольку, как только я это сделал, проблема постоянно исчезла уже более двух месяцев. Хотя это простой процесс, на случай, если кому-то это понадобится, инструкции Microsoft о том, как это сделать, можно найти здесь: https://support.office.com/en-us/article/Compact-and-repair-a-database-6ee60f16-aed0-40ac-bf22-85fa9f4005b2?ui=en-US&rs=en-US&ad=US&fromAR=1

Они предлагают сначала создать резервную копию базы данных. Вот отрывок:

Сжать и восстановить открытую базу данных

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

На вкладке Файл нажмите Информация, а затем нажмите Сжать и восстановить базу данных.

Сжать и восстановить закрытую базу данных

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

Запустите Access, но не открывайте базу данных.

Наведите курсор на Информация, а затем нажмите Сжать и восстановить базу данных.

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

person Community    schedule 20.04.2016