Ограничаване на въвеждането на данни с помощта на валидиращи правила
Applies ToAccess за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Можете да контролирате или да проверявате данните в настолни бази данни на Access, докато ги въвеждате, като използвате валидиращи правила. Можете да използвате конструктора на изрази, за да ви помогне правилно да форматирате правилото. Правилата за проверка могат да бъдат задавани или в изглед за проектиране на таблици, или в изглед на лист с данни на таблица. Има три типа правила за проверка в Access:

1. Валидиращо правило   за поле Можете да използвате валидиращо правило за поле, за да зададете критерий, на който трябва да отговарят всички валидни стойности на полето. Не трябва да задавате текущото поле като част от правилото, освен когато използвате полето във функция.  Може да бъде по-лесно да налагате ограничения на типовете знаци, които да бъдат въвеждани в дадено поле, чрез Маска на въвеждане. Поле за дата например може да има валидиращо правило, което да не позволява стойности от миналото.

Бързи примери:

Забрани датите в миналото: >=Date()

Общоприет формат на имейл: Is Null OR ((Like "*?@?*.? *") AND (Not Like "*[ ,;] *"))

Число, по-малко от или от пет: <=5

Полето "Валута" не може да бъде отрицателно: >=0

Ограничаване на дължината на знаците в низ: Len([StringFieldName])<100

Правило за проверка на поле, показано в конструктора на таблици на Access

2. Валидиращо правило за запис   Можете да използвате валидиращо правило за запис, за да зададете условие, на което трябва да отговарят всички валидни записи. Можете да сравнявате стойности между различни полета с помощта на валидиращо правило за запис. Например в запис с две полета за дата може да се изисква стойностите на едното поле винаги да предшестват стойностите на другото поле (например "Начална_дата" да е преди "Крайна_дата").

Бързи примери:

Уверете се, че крайната дата не е преди началната дата: [Крайна дата]>=[Начална дата]

Въведете задължителна дата, която не е по-късна от 30 дни след датата на поръчката: [ДатаДължима]<=[Дата На поръчка]+30

Правило за проверка на таблица в конструктора на таблици на Access.

3. Проверка във формуляр   Можете да използвате свойството Валидиращо правило на контрола във формуляр, за да зададете критерий, на който трябва да отговарят всички стойности, въведени в тази контрола. Свойството Правило за проверка на контролата работи като валидиращо правило за поле. Най-често се използва валидиращо правило за формуляр, а не валидиращо правило за поле, ако това правило е специфично само за този формуляр, но не и за таблицата, без значение къде е било използвано.

В тази статия

Общ преглед

Тази статия обяснява как да използвате валидиращи правила и текст на проверка за валидност в полета на таблица и контроли на формуляр. Валидиращото правило е един начин да ограничите въвеждането в поле на таблица или контрола (например текстово поле) във формуляр. Текстът на проверка за валидност ви позволява да предостави съобщение, за да помогнете на потребителите, които въвеждат невалидни данни.

Когато данните се въвеждат, Access проверява дали въведеното нарушава валидиращо правило – ако е така, въведеното не се приема и Access показва съобщение.

Access предоставя много начини за ограничаване на въвеждането:

  • Типове данни   Всяко поле на таблица има тип данни, който ограничава това, което потребителите могат да въвеждат. Например едно поле за дата и час приема само дати и часове, поле за валута приема само валутни данни и т. н.

  • Свойства на полета   Някои свойства на полета ограничават въвеждането на данни. Например свойството Размер на полето ограничава въвеждането, като ограничава количеството на данните.

    Можете също да използвате свойството Правило за проверка, за да изисквате конкретни стойности, и свойството Текст на проверка за валидност, за да известявате вашите потребители за грешки. Например въвеждането на правило като >100 And <1000 в свойството Валидиращо правило изисква от потребителите да въвеждат стойности между 100 и 1000. Правило като [Крайна_дата]>=[Начална_дата] изисква от потребителите да въвеждат крайна дата, която е след началната дата. Въвеждането на текст като "Въведете стойности между 100 и 1000" или "Въведете крайна дата, която е след началната дата" в свойството Текст на проверка за валидност съобщава на потребителите, че са направили грешка и как да коригират грешката.

  • Входни маски   Можете да използвате входна маска, за да проверявате данни, като изисквате от потребителите да въвеждат стойностите по определен начин. Например входна маска може да изисква от потребителите да въвеждат датите в европейски формат, например 2007.04.14.

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

За повече информация за типовете данни, размерите на полетата и маските за въвеждане вж. статията Въведение в типовете данни и свойствата на полетата.

Типове валидиращи правила

Можете да създавате два основни типа валидиращи правила:

  • Валидиращи правила за поле   Използвайте валидиращи правила за поле, за да проверите стойността, която въвеждате в поле, когато излизате от полето. Нека например да имате поле за дата и да сте въвели >=#01/01/2010# в свойството Правило за проверка на това поле. Вашето правило сега изисква потребителите да въвеждат дати, които са най-рано 1 януари 2010 г. Ако въведете дата преди 2010 г. и след това се опитате да промените фокуса върху друго поле, Access не ви позволява да излезете от текущото поле, докато не коригирате грешката.

  • Валидиращи правила за записи   Използвайте валидиращо правило за запис, за да зададете кога може да се запише един запис (ред в таблица). За разлика от валидиращи правила за полета, валидиращите правила за записи препращат към други полета в същата таблица. Създавайте валидиращи правила за записи, когато трябва да проверите стойностите в едно поле по отношение на стойностите в друго поле. Нека например вашият бизнес да изисква да доставяте продукти в 30-дневен срок и ако не го направите, да трябва да възстановите на вашия клиент част от цената. Можете да дефинирате валидиращо правило за запис, например [Задължителна_дата]<=[Дата_на_поръчка]+30, за да сте сигурни, че никой няма да въведе твърде късна дата на доставка (стойността в поле "Задължителна_дата").

Ако синтаксисът за валидиращи правила ви изглежда неразбираем, вж. раздела Какво можете да поставите във валидиращо правило за обяснение на синтаксиса и някои примери за валидиращи правила.

Къде можете да използвате валидиращи правила

Можете да дефиниране валидиращи правила за полета на таблица и за контроли във формуляри. Когато дефинирате правила за таблици, те се прилагат, когато импортирате данни. За да добавите валидиращи правила към таблица, отваряте таблицата и използвате команди в раздела Полета на таблицата на лентата. За да добавите валидиращи правила към формуляр, отваряте формуляра в изглед на оформление и добавяте правила към свойствата на отделни контроли.

Стъпките в раздела Добавяне на валидиращо правило към таблица обясняват как можете да добавяте валидиращи правила към полетата на таблица. Стъпките в раздела Добавяне на валидиращо правило към контрола във формуляр по-нататък в тази статия обясняват как можете да добавяте правила към свойствата в отделните контроли.

Какво можете да поставите във валидиращо правило

Вашите правила за проверка може да съдържат изрази – функции, които връщат единична стойност. Можете да използвате изрази, за да извършвате изчисления, да обработвате знаци или да проверявате данни. Изразът във валидиращо правило тества данните. Например един израз може да проверява за набор от стойности, например "Токио" Or "Москва" Or "Париж" Or "Хелзинки". Изразите могат също да извършват математически операции. Например изразът <100 изисква от потребителите да въвеждат стойности, по-малки от 100. Изразът ([Дата_на_поръчка] – [Дата_на_експедиране]) изчислява броя на дните между двете дати.

За повече информация за изразите вж. статията Създаване на израз.

Най-горе на страницата

Добавяне на валидиращо правило към таблица

Можете да добавите валидиращо правило за поле и/или валидиращо правило за запис. Валидиращото правило за поле проверява въвеждането в поле и се прилага, когато фокусът излиза от полето. Валидиращо правило за запис проверява въведеното в едно или повече полета и се прилага, когато фокусът излиза от записа. Обикновено валидиращото правило за запис сравнява стойностите на две или повече полета.

Забележки: Следните типове полета не поддържат валидиращи правила:

  • AutoNumber

  • OLE Object

  • Attachment

  • ReplicationID

Създаване на валидиращо правило за поле

  1. Изберете полето, което искате да проверите.

  2. В раздела Полета на таблицата , в групата Проверка на поле щракнете върху Проверка и след това щракнете върху Правило за проверка на поле.

  3. Използвайте конструктора на изрази, за да създадете правилото. За повече информация за използването на конструктора на изрази вж. статията Използване на конструктора на изрази.

Създаване на съобщение за въвеждане на невалидни данни в поле

  1. Изберете полето, което се нуждае от съобщение, че въведените данни са невалидни. Полето трябва вече да има валидиращо правило.

  2. В раздела Полета на таблицата , в групата Проверка на поле щракнете върху Проверка и след това щракнете върху Съобщение за проверка на поле.

  3. Въведете подходящо съобщение. Ако например валидиращото правило е >10, съобщението може да бъде "Въведете стойност, по-малка от 10".

За някои примери за валидиращи правила за поле и съобщения вж. раздела Справочник за валидиращи правила.

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

  1. Отворете таблицата, за която искате да проверите записи.

  2. В раздела Полета на таблицата , в групата Проверка на поле щракнете върху Проверка и след това щракнете върху Правило за проверка.

  3. Използвайте конструктора на изрази, за да създадете правилото. За повече информация за използването на конструктора на изрази вж. статията Използване на конструктора на изрази.

Създаване на съобщение за въвеждане на невалидни данни в запис

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

  2. В раздела Полета на таблицата , в групата Проверка на поле щракнете върху Проверка и след това щракнете върху Съобщение за проверка.

  3. Въведе подходящото съобщение. Например ако валидиращото правило е [Начална_дата]<[Крайна_дата], съобщението може да бъде "Началната дата трябва да предшества крайната дата".

Най-горе на страницата

Тестване на съществуващи данни с ново валидиращо правило

Ако добавите валидиращо правило към съществуваща таблица, може да искате да тествате правилото, за да проверите дали има съществуващи данни, които са невалидни.

  1. Отворете таблицата, която искате да тествате в изглед за проектиране.

    В раздела Проектиране на таблица , в групата Инструменти щракнете върху Тестови правила за проверка.

  2. Щракнете върху Да, за да затворите предупредителното съобщение и да стартирате теста.

  3. Ако бъдете подканени да запишете таблицата, щракнете върху Да.

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

Най-горе на страницата

Добавяне на валидиращо правило към контрола във формуляр

Можете да използвате свойството Валидиращо правило и свойството Текст на проверка за валидност на контрола на формуляр, за да проверите данните, които се въвеждат в този контрола, и да помогнете на потребители, които въвеждат невалидни данни.

Съвет:  Ако създадете формуляр автоматично от таблица с помощта на една от командите за формуляр в лентата, всяка проверка за полета в базовата таблица се наследява от съответните контроли във формуляра.

Една контрола може да има различно валидиращо правило от полето на таблицата, с която е обвързана. Това е полезно, ако искате формулярът да бъде по-ограничаващ, отколкото таблицата. Прилага се правилото за формуляра и след това се прилага правилото за таблицата. Ако таблицата е по-ограничаваща от формуляра, правилото, дефинирано за полето на таблицата, има приоритет. Ако правилата са взаимно изключващи се, те няма да позволят въвеждането на никакви данни.

Нека например сте приложили следното правило към поле за дата в таблица:

<#01/01/2010#

След това обаче сте приложили следното правило към контролата на формуляра, обвързана с полето за дата:

>=#01/01/2010#

Полето за дата сега изисква дати преди 2010 г., но контролата на формуляра изисква дати от тази или следващите години и по този начин не ви позволява изобщо да въведете данни.

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

  1. Щракнете с десния бутон върху формуляра, който искате да промените, и след това щракнете върху Изглед на оформление.

  2. Щракнете с десния бутон върху контролата, която искате да промените, и щракнете върху Свойства, за да отворите списъка със свойства за контролата.

  3. Щракнете върху раздела Всички и след това въведете правилото за проверка в полето на свойството Правило за проверка.

    Съвет:  Щракнете върху бутона Компилация, за да стартирате конструктора на изрази.

    За повече информация за използването на конструктора на изрази вж. статията Използване на конструктора на изрази.

  4. Въведете съобщение в полето на свойството Текст на проверка за валидност.

Най-горе на страницата

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

Валидиращите правила използват синтаксиса на изразите на Access. За повече информация за изразите вж. статията Въведение в изразите.

Примери за валидиращо правило и текст на проверка за валидност

Валидиращо правило

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

<>0

Въведете ненулева стойност.

>=0

Стойността трябва да бъде нула или по-голяма.

-или-

Трябва да въведете положително число.

0 или >100

Стойността трябва да бъде или 0, или по-голяма от 100.

BETWEEN 0 AND 1

Въведете стойност със знак за процент. (За използване с поле, което съхранява числови стойности като проценти).

<#01/01/2007#

Въведете дата преди 2007 г.

>=#01/01/2007# AND <#01/01/2008#

Датата трябва да е през 2007 г.

<Date()

Рождената дата не може да е в бъдещето.

StrComp(UCase([ФамилноИме]), [Фамилно име],0) = 0

Данните в полето с име "Фамилно_име" трябва да бъдат с главни букви.

>=Int(Now())

Въведете текущата дата.

M Or F

Въведете "M" за мъже или "F" за жени.

LIKE "[A-Z]*@[A-Z].com" OR "[A-Z]*@[A-Z].net" OR "[A-Z]*@[A-Z].org"

Въведете валиден .com, .net или .org имейл адрес.

[Крайна_дата]<=[Дата_на_поръчка]+30

Въведете крайна дата, която не е по-късна от 30 дни след датата на поръчката.

[Крайна_дата]>=[Начална_дата]

Въведете крайна дата, която не е преди началната дата.

Примери за синтаксис за често използвани оператори за валидиращи правила

Оператор

Функция

Пример

NOT

Проверява за обратни стойности. Използва се преди операторите за сравнение, освен IS NOT NULL.

NOT > 10 (същото като <=10).

IN

Проверява за стойности, равни на членове в списък. Стойността за сравнение трябва да бъде разделен със запетаи списък, поставен в скоби.

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

BETWEEN

Проверява за диапазон от стойности. Трябва да използвате две стойности за сравнение – долна и горна – и да отделите тези стойности с разделителя AND.

BETWEEN 100 AND 1000 (също като >=100 AND <=1000)

LIKE

Проверява за съответствия с шаблонни низове в полета Text и Memo.

LIKE "Geo*"

IS NOT NULL

Изисква от потребителите да въвеждат стойности в полето. Това е същото като настройване на полето на свойството Задължително на Да. Когато обаче зададете свойството Задължително и потребителят не въведе стойност, Access показва не особено дружелюбно съобщение за грешка. Обикновено във вашата база данни е по-добре да използвате IS NOT NULL и да въведете дружелюбно съобщение в свойството Текст на проверка за валидност.

IS NOT NULL

AND

Задава, че всички части от валидиращото правило трябва да бъдат истина.

>= #01/01/2007# AND <=#03/06/2008#

Забележка: Можете също да използвате AND, за да съчетавате правила за проверка. Например: NOT "UK" AND LIKE "U*".

OR

Задава, че някои, но не всички части от валидиращото правило трябва да бъдат истина.

януари OR февруари

<

По-малко от.

<=

По-малко или равно на.

>

По-голямо от.

>=

По-голямо или равно на.

=

Равно на.

<>

Не е равно на.

Използване на заместващи символи в правила за проверка

Можете да използвате заместващи символи във вашите валидиращи правила. Не забравяйте, че Access поддържа два набора от заместващи символи: ANSI-89 и ANSI-92. Всеки от тези стандарти използва различен набор от заместващ символи.

По подразбиране всички .accdb и .mdb файлове използват стандарта ANSI-89.

Можете да смените ANSI стандарта за база данни с ANSI-92 с помощта на следната процедура:

  1. В раздела Файл щракнете върху Опции.

  2. В диалоговия прозорец Опции на Access щракнете върху Конструктори на обекти.

  3. В секцията Проектиране на на заявки, под Синтаксис, съвместим с SQL сървър (ANSI-92) изберете Тази база данни.

За повече информация за използването на заместващи символи и ANSI стандартите за SQL вж. статията Справка за заместващите символи в Access.

Най-горе на страницата

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.