데이터를 입력할 때 유효성 검사 규칙을 사용하여 Access 데스크톱 데이터베이스의 데이터를 조사하거나 그 유효성을 검사할 수 있습니다. 식 작성기를 사용하여 규칙의 형식을 올바르게 지정할 수 있습니다. 테이블 디자인 또는 테이블 데이터시트 보기에서 유효성 검사 규칙을 설정할 수 있습니다. Access의 유효성 검사 규칙에는 다음과 같은 세 종류가 있습니다.
1. 필드 유효성 검사 규칙 필드 유효성 검사 규칙을 사용하여 모든 유효한 필드 값이 충족해야 하는 조건을 지정할 수 있습니다. 함수에서 필드를 사용하지 않으면 규칙의 일부로써 현재 필드를 지정할 필요가 없습니다. 필드에 입력하는 문자 형식에 대한 제한은 입력 마스크를 사용하여 간단히 처리할 수 있습니다. 예를 들어 날짜 필드에 과거의 값을 허용하지 않는 유효성 검사 규칙이 있을 수 있습니다.
빠른 예:
과거의 날짜 값 허용 불허: >=Date()
일반적으로 허용되는 전자 메일 형식: Null OR(예: "*?@?*.? *") AND (Not Like "*[ ,;] *"))
5보다 작거나 같은 숫자: <=5
통화 필드는 음수일 수 없습니다. >=0
문자열의 문자 길이 제한: Len([StringFieldName])<100
2. 레코드 유효성 검사 규칙 레코드 유효성 검사 규칙을 사용하여 유효한 모든 레코드가 충족해야 하는 조건을 지정할 수 있습니다. 레코드 유효성 검사 규칙을 사용하여 여러 필드의 값을 비교할 수 있습니다. 예를 들어 날짜 필드 두 개가 있는 레코드의 경우 한 필드의 값이 항상 다른 필드의 값보다 앞에 오도록 지정할 수 있습니다(예: 시작 날짜가 종료 날짜 앞에 위치함).
빠른 예:
종료 날짜가 시작 날짜 이전에 제공되지 않는지 확인합니다. [종료 날짜]>=[시작 날짜]
주문 날짜 이후 30일 이내에 발생하는 필수 날짜를 입력합니다. [RequiredDate]<=[OrderDate]+30
3. 폼의 유효성 검사 폼에 대한 컨트롤의 유효성 검사 규칙 속성을 사용하여 해당 컨트롤에 대한 모든 값 입력이 충족해야 하는 조건을 지정할 수 있습니다. 유효성 검사 규칙 컨트롤 속성은 필드 유효성 검사 규칙과 같은 방식으로 작동합니다. 일반적으로 규칙이 사용되는 위치에 관계없이 규칙이 해당 폼에만 적용되고 테이블에는 적용되지 않는 경우, 필드 유효성 검사 규칙 대신 폼 유효성 검사 규칙을 사용합니다.
이 문서의 내용
개요
이 문서에서는 테이블 필드와 폼 컨트롤에서 유효성 검사 규칙 및 유효성 검사 텍스트를 사용하는 방법에 대해 설명합니다. 유효성 검사 규칙은 테이블 필드나 폼의 텍스트 상자와 같은 컨트롤에서 입력을 제한하는 방법 중 하나입니다. 유효성 검사 텍스트를 사용하면 유효하지 않은 데이터를 입력한 사용자에게 메시지를 표시해 지원할 수 있습니다.
데이터가 입력되면 입력 데이터의 유효성 검사 규칙 위반 여부에 대한 확인이 이루어지며, 규칙 위반인 경우 입력 데이터는 허용되지 않고 메시지가 표시됩니다.
Access에서 입력을 제한하는 방법은 다음과 같습니다.
-
데이터 형식 모든 테이블엔 사용자가 필드에 입력할 수 있는 사항을 제한하는 데이터 형식이 있습니다. 예를 들어 날짜/시간 필드에는 날짜와 시간만 입력할 수 있고 통화 필드에는 화폐 데이터만 입력할 수 있습니다.
-
필드 속성 일부 필드 속성은 데이터 입력을 제한합니다. 예를 들어 필드의 필드 크기 속성은 데이터의 양에 한도를 두어 입력을 제한합니다.
유효성 검사 규칙 속성을 사용하면 특정 값이 필요하도록 설정할 수 있고, 유효성 검사 텍스트 속성을 사용하면 사용자에게 오류를 알릴 수 있습니다. 예를 들어 유효성 검사 규칙 속성에 >100 And <1000이라는 규칙을 입력하면 사용자는 100과 1,000 사이의 값을 입력해야 합니다. 또한 [종료 날짜]>=[시작 날짜] 규칙을 설정하면 사용자는 시작 날짜와 같거나 그 이후의 종료 날짜를 입력해야 합니다. 유효성 검사 텍스트 속성에 "100과 1,000 사이의 값 입력" 또는 "시작 날짜와 같거나 그 이후의 종료 날짜 입력"과 같은 텍스트를 입력하면 사용자가 입력 오류를 범했을 때 이를 사용자에게 알리고 오류 수정 방법을 안내합니다.
-
입력 마스크 입력 마스크를 사용하여 사용자로 하여금 특정 방식으로 값을 입력하게 하여 데이터의 유효성을 검사할 수 있습니다. 예를 들어 입력 마스크는 사용자로 하여금 2007.04.14와 같이 유럽식으로 날짜를 입력하게 할 수 있습니다.
이러한 데이터 유효성 검사 방법은 단독으로 사용하거나 여러 개를 조합하여 사용할 수 있습니다. 데이터 형식은 반드시 선택해야 하며 가장 기본적인 데이터 유효성 검사를 제공하는 요소입니다.
데이터 형식, 필드 크기, 입력 마스크에 대한 자세한 내용은 데이터 형식 및 필드 속성 정보 문서를 참조하세요.
유효성 검사 규칙의 종류
다음과 같이 기본적인 두 가지 유효성 검사 규칙을 만들 수 있습니다.
-
필드 유효성 검사 규칙 필드 유효성 검사 규칙을 사용하여 필드에서 나갈 때 필드에 입력할 값을 확인합니다. 예를 들어 날짜 필드가 있고 해당 필드의 유효성 검사 규칙 속성에 >=#01/01/2010#을 입력한다고 가정해 보겠습니다. 이제 사용자들은 규칙에 따라 2010년 1월 1일과 같거나 그 이후의 날짜로 입력해야 합니다. 2010년 이전의 날짜를 입력하고 다른 필드의 포커스를 놓으려 하는 경우 Access에서 문제를 해결할 때까지 현재 필드에서 나갈 수 없습니다.
-
레코드 유효성 검사 규칙 레코드 유효성 검사 규칙을 사용하여 레코드를 저장할 수 있는 시점을 컨트롤합니다(테이블의 행). 필드 유효성 검사 규칙과는 달리 레코드 유효성 검사 규칙은 같은 테이블의 다른 필드를 참조합니다. 한 필드의 값을 다른 필드의 값과 비교하여 확인해야 할 때 레코드 유효성 검사 규칙을 만듭니다. 예를 들어 회사에서 30일 이내에 제품을 배송해야 한다고 가정해 보겠습니다. 해당 기한 내에 배송하지 않는 경우 고객에게 구매가의 일부를 환불해주어야 합니다. [배송 요청일]<=[주문일]+30과 같은 레코드 유효성 검사 규칙을 정의하여 누군가가 너무 먼 미래의 배송 날짜(배송 요청일 필드의 값)를 입력하지 않도록 할 수 있습니다.
유효성 검사 규칙에 사용할 수 있는 항목 섹션에서는 유효성 검사 규칙의 구문을 알기 쉽게 설명하고 유효성 검사 규칙의 몇 가지 예제를 제공합니다.
유효성 검사 규칙을 사용할 수 있는 위치
테이블 필드와 폼의 컨트롤에 대해 유효성 검사 규칙을 정의할 수 있습니다. 테이블에 대해 정의한 규칙은 데이터를 가져올 때 적용됩니다. 테이블에 유효성 검사 규칙을 추가하려면 테이블을 열고 리본 메뉴의 테이블 필드 탭에서 명령을 사용합니다. 폼에 유효성 검사 규칙을 추가하려면 레이아웃 보기에서 폼을 열고 개별 컨트롤의 속성에 규칙을 추가합니다.
테이블에 유효성 검사 규칙 추가 섹션의 단계는 테이블 필드에 유효성 검사 규칙을 추가하는 방법을 설명합니다. 이 문서 후반에 나오는 폼의 컨트롤에 유효성 검사 규칙 추가 섹션의 단계는 개별 컨트롤의 속성에 규칙을 추가하는 방법을 설명합니다.
유효성 검사 규칙에 사용할 수 있는 항목
유효성 검사 규칙에는 단일 값을 반환하는 함수인 식을 사용할 수 있습니다. 식은 계산을 수행하거나 문자를 조작하거나 데이터를 테스트하는 데 사용할 수 있습니다. 유효성 검사 규칙 식은 데이터를 테스트합니다. 예를 들어 식은 "인천" Or "대구" Or "대전" Or "천안"과 같은 일련의 값 중 하나를 검사할 수 있습니다. 식은 수학적 연산을 수행할 수도 있습니다. 예를 들어 식 <100을 사용하면 사용자는 100보다 작은 값을 입력해야 합니다. 식 ([주문일] - [배송일])은 주문일과 배송일 사이의 경과 일 수를 계산합니다.
식에 대한 자세한 내용은 식 작성 문서를 참조하세요.
테이블에 유효성 검사 규칙 추가
필드 유효성 검사 규칙 및/또는 레코드 유효성 검사 규칙을 추가할 수 있습니다. 필드 유효성 검사 규칙은 필드에 대한 입력을 확인하며 포커스가 필드에서 벗어날 때 적용됩니다. 레코드 유효성 검사 규칙은 한 개 이상의 필드에 대한 입력을 확인하며 포커스가 레코드에서 벗어날 때 적용됩니다. 일반적으로 레코드 유효성 검사 규칙은 두 개 이상의 필드에 있는 값을 비교합니다.
참고 사항: 다음 필드 형식은 유효성 검사 규칙을 지원하지 않습니다.
-
일련 번호
-
OLE 개체
-
첨부 파일
-
복제 ID
필드 유효성 검사 규칙 만들기
-
유효성을 검사할 필드를 선택합니다.
-
테이블 필드 탭의 필드 유효성 검사 그룹에서 유효성 검사를 클릭한 다음 필드 유효성 검사 규칙을 클릭합니다.
-
식 작성기를 사용하여 규칙을 만듭니다. 식 작성기 사용에 대한 자세한 내용은 식 작성기 사용 문서를 참조하세요.
유효하지 않은 필드 입력에 대해 표시할 메시지 만들기
-
유효하지 않은 값을 입력할 경우 메시지를 표시할 필드를 선택합니다. 해당 필드에는 유효성 검사 규칙이 이미 설정된 상태여야 합니다.
-
테이블 필드 탭의 필드 유효성 검사 그룹에서 유효성 검사를 클릭한 다음 필드 유효성 검사 메시지를 클릭합니다.
-
적절한 메시지를 입력합니다. 예를 들어 유효성 검사 규칙이 >10이면“10 미만인 값을 입력하세요.”라는 메시지를 사용할 수 있습니다.
필드 유효성 검사 규칙 및 메시지의 예를 보려면 유효성 검사 규칙 참조 섹션을 참조하세요.
레코드 유효성 검사 규칙 만들기
-
레코드의 유효성을 검사할 테이블을 엽니다.
-
테이블 필드 탭의 필드 유효성 검사 그룹에서 유효성 검사를 클릭한 다음 유효성 검사 규칙을 클릭합니다.
-
식 작성기를 사용하여 규칙을 만듭니다. 식 작성기 사용에 대한 자세한 내용은 식 작성기 사용 문서를 참조하세요.
유효하지 않은 레코드 입력에 대해 표시할 메시지 만들기
-
유효하지 않은 값을 입력할 경우 메시지를 표시할 테이블을 엽니다. 해당 테이블에는 레코드 유효성 검사 규칙이 이미 설정된 상태여야 합니다.
-
테이블 필드 탭의 필드 유효성 검사 그룹에서 유효성 검사를 클릭한 다음 유효성 검사 메시지를 클릭합니다.
-
적절한 메시지를 입력합니다. 예를 들어 유효성 검사 규칙이 [StartDate]<[EndDate]인 경우 메시지는 "StartDate가 EndDate 앞에 있어야 합니다."
새 유효성 검사 규칙 기준 기존 데이터 테스트
기존 테이블에 유효성 검사 규칙을 추가하는 경우 규칙을 테스트하여 기존 데이터의 유효 여부를 확인할 수 있습니다.
-
테스트할 테이블을 디자인 보기에서 엽니다.
테이블 디자인 탭의 도구 그룹에서 유효성 검사 규칙 테스트를 클릭합니다.
-
예를 클릭하여 경고 메시지를 닫고 테스트를 시작합니다.
-
테이블을 저장할지 묻는 메시지가 나타나면 예를 클릭합니다.
-
진행 과정에서 그 밖의 여러 가지 경고 메시지가 표시될 수 있습니다. 각 메시지의 설명을 읽고 예나 아니요를 적절하게 클릭하여 테스트를 완료하거나 중지합니다.
폼의 컨트롤에 유효성 검사 규칙 추가
폼 컨트롤의 유효성 검사 규칙 속성 및 유효성 검사 텍스트 속성을 사용하여 해당 컨트롤에 입력된 데이터의 유효성을 검사하고 유효하지 않은 데이터를 입력한 사용자를 안내할 수 있습니다.
팁: 리본 메뉴의 폼 명령 중 하나를 사용하여 테이블에서 자동으로 폼을 만드는 경우 원본으로 사용하는 테이블의 필드에 대한 모든 유효성 검사가 폼의 해당 컨트롤에 상속됩니다.
컨트롤에는 이 컨트롤이 바인딩되어 있는 테이블 필드와 다른 유효성 검사 규칙이 있을 수 있습니다. 이는 폼을 테이블보다 더 제한적으로 만들어야 할 때 유용합니다. 즉, 폼 규칙이 적용된 후에 테이블 규칙이 적용됩니다. 테이블이 폼보다 제한적인 경우에는 테이블 필드에 대해 정의된 규칙이 우선적으로 적용됩니다. 규칙이 상호 배타적인 경우에는 데이터를 전혀 입력할 수 없게 됩니다.
예를 들어 테이블의 날짜 필드에 다음 규칙을 적용한다고 가정합니다.
<#2010-01-01#
그런 다음 이 날짜 필드에 바인딩된 폼 컨트롤에는 다음 규칙을 적용한다고 가정합니다.
>=#2010-01-01#
그러면 날짜 필드는 2010년 전 값이 필요하도록 설정되고 폼 컨트롤은 2010년 이후 날짜가 필요하도록 설정되므로, 데이터를 전혀 입력할 수 없게 됩니다.
컨트롤의 유효성 검사 규칙 만들기
-
변경할 폼을 마우스 오른쪽 단추로 클릭한 다음 레이아웃 보기를 클릭합니다.
-
변경할 컨트롤을 마우스 오른쪽 단추로 클릭하고 속성을 클릭하여 컨트롤의 속성 시트를 엽니다.
-
모두 탭을 클릭하고 유효성 검사 규칙 속성 상자에 유효성 검사 규칙을 입력합니다.
팁: 작성 단추를 클릭하여 식 작성기를 시작합니다.
식 작성기 사용에 대한 자세한 내용은 식 작성기 사용 문서를 참조하세요.
-
유효성 검사 텍스트 속성 상자에 메시지를 입력합니다.
유효성 검사 규칙 참조
유효성 검사 규칙에는 Access 식 구문이 사용됩니다. 식에 대한 자세한 내용은 식 소개 문서를 참조하세요.
유효성 검사 규칙 및 유효성 검사 텍스트 예제
유효성 검사 규칙 |
유효성 검사 텍스트 |
---|---|
<>0 |
0이 아닌 값을 입력해야 합니다. |
>=0 |
0보다 크거나 같은 값을 입력해야 합니다. -또는- 양수를 입력해야 합니다. |
0 or >100 |
값이 0이거나 100보다 커야 합니다. |
BETWEEN 0 AND 1 |
백분율 기호를 포함하여 값을 입력해야 합니다. (숫자 값을 백분율로 저장하는 필드에서 사용합니다.) |
<#2007-01-01# |
2007년 이전 날짜를 입력해야 합니다. |
>=#2007-01-01# AND <#2008-01-01# |
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 |
텍스트 및 메모 필드의 문자열을 패턴 문자열과 일치시킵니다. |
LIKE "지리*" |
IS NOT NULL |
필드에 값을 반드시 입력하도록 지정합니다. 필수 필드 속성을 예로 설정하는 것과 같습니다. 그러나 필수 속성을 사용할 경우에는 사용자가 값을 입력하지 않으면 다소 이해하기 어려운 오류 메시지가 표시됩니다. 일반적으로 IS NOT NULL을 사용하고 유효성 검사 텍스트 속성에 이해하기 쉬운 메시지를 입력하면 데이터베이스를 보다 쉽게 사용할 수 있습니다. |
IS NOT NULL |
AND |
유효성 검사 규칙의 모든 부분이 충족되어야 함을 지정합니다. |
>= #2007-01-01# AND <=#2008-03-06# 참고: AND를 사용하여 유효성 검사 규칙을 조합할 수도 있습니다. 예를 들어 NOT "영국" AND LIKE "*국" 등으로 조합할 수 있습니다. |
OR |
유효성 검사 규칙의 모든 부분이 아니라 일부가 충족되어야 함을 지정합니다. |
January OR February |
< |
보다 작음 |
|
<= |
작거나 같음 |
|
> |
보다 큼 |
|
>= |
크거나 같음 |
|
= |
같음 |
|
<> |
같지 않음 |
유효성 검사 규칙에 와일드카드 문자 사용
유효성 검사 규칙에 와일드카드 문자를 사용할 수 있습니다. Access에서는 두 가지 와일드카드 문자 집합, 즉 ANSI-89와 ANSI-92를 사용할 수 있습니다. 이러한 각 표준에서는 서로 다른 와일드카드 문자 집합을 사용합니다.
기본적으로 모든 .accdb 및 .mdb 파일은 ANSI-89 표준을 사용합니다.
다음 절차에 따라 데이터베이스의 ANSI 표준을 ANSI-92로 변경할 수 있습니다.
-
파일 탭에서 옵션을 클릭합니다.
-
Access 옵션 대화 상자에서 개체 디자이너를 클릭합니다.
-
쿼리 디자인 섹션의 SQL 서버 호환 구문(ANSI 92)에서 현재 데이터베이스를 선택합니다.
와일드카드 문자 사용 및 SQL용 ANSI 표준에 대한 자세한 내용은 Access 와일드카드 문자 참조 문서를 참조하세요.