Вы можете использовать функцию Format()
для преобразования строки цифр.Format()
не волнует, предшествуют ли цифры пробелам.
? Format("89","0000")
0089
? Format(" 89","0000")
0089
Если вы хотите отобразить значения этих полей с этим форматом в запросе:
SELECT Format([YourTextField],"0000")
FROM YourTable;
Если вы хотите изменить способ их хранения:
UPDATE YourTable
SET [YourTextField] = Format([YourTextField],"0000");
Редактировать : @onedaywhen предложил использовать CHECK CONSTAINT или Validation Rule, чтобы ваша таблица принимала только действительные данные в будущем.Вот пример CHECK CONSTRAINT:
ALTER TABLE YourTable
ADD CONSTRAINT four_digits_required
CHECK (
YourTextField LIKE '[0-9][0-9][0-9][0-9]'
);
Этот оператор можно запустить из CurrentProject.Connection.Execute
, который является методом объекта ADO.Операторы DDL с ограничениями CHECK могут выполняться только из ADO.Таким образом, вы не могли выполнить этот оператор из CurrentDb.Execute
, который является методом объекта DAO.
В качестве альтернативы это должно работать для свойства правила проверки YourTextField:
LIKE "[0-9][0-9][0-9][0-9]"
Подход правила проверки такжепозволяют использовать свойство «Текст проверки» для отображения сообщения пользователю, когда отправленные значения недопустимы:
"4 digits required."
В этой ситуации подход «Текст проверки» аналогичен отображению имени ограничения CHECK, когда это ограничениенарушается.Однако, если вы хотите получить более подробное сообщение, текст проверки может быть лучшим выбором.