2013-10-09 3 views
0

У меня есть поле на форме MS Access, которая имеет следующее правило проверки:MS Access Форма буквенно-цифровых полей

Is Null или между 10000000 и 99999999

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

Есть ли способ изменить правило проверки, чтобы пользователь мог ввести 8 буквенно-цифровых символов?

+0

Если поле формы связано с полем таблицы, вы также хотите, чтобы обеспечить соблюдение этого правила для таблицы? – HansUp

+0

@HansUp да, я также хотел бы обеспечить соблюдение правила для таблицы – JT2013

ответ

2

Установите свойство ValidationRule на поле для

Is Null Or Like "????????" 
+0

Я пробовал это, но он все еще дает мне ошибку. Если я набираю 8 цифр ... он отлично работает ... но если я вложу 8 букв, он выдает ошибку: введенное значение недействительно для этого поля – JT2013

+0

@ JT2013 - каков тип данных поля? Должен быть текст, если вы хотите разрешить письма; моя догадка заключается в том, что он все еще набирается в целое число. –

+0

ваше право, я забыл самую основную вещь -> измените тип данных поля! – JT2013

1

Одним из способов обеспечения этого в пользовательском интерфейсе будет через input mask вместо проверки:

AAAAAAAA 

Update: Как Rolliston @ Крис указывает, вы лучше использовать проверку на уровне базы данных чтобы вы сохраняли достоверные данные. Как вы это сделаете, это зависит от механизма db (MS Access, SQL Server, Oracle, MySQL, PostgreSQL и т. Д.), Где физически находится таблица.

+0

Я не уверен, что это действительно «проще», и это, безусловно, не будет «обеспечивать» требование в том, как правило проверки, установленное в таблице определение. –

+0

@ChrisRolliston: Хорошая точка. Это проще в том смысле, что он работает одинаково, независимо от внешнего db-движка. Но я согласен с тем, что безопаснее выполнять эту проверку на уровне базы данных. Я обновил свой ответ соответственно. – mwolfe02

0

Вы можете поставить VBA в случае AfterUpdate объекта, как:

If len(Trim(Me.MyTextField)) <> 8 then 
    Msgbox "Please enter an 8-digit key" 
    Me.MyTextField = "" 
End If 

Убедитесь, что уравновешивание функция там, чтобы устранить пользователь пытается добавить пустые пространства.