|
ValidationRule 속성 | ValidationText 속성 |
<>0 |
0이 아닌 값을 입력 |
> 1000 Or Is Null |
1000보다 큰 값을 입력 또는 비워둠 |
Like "A????" |
"A"로 시작하는 5문자를 입력 |
Between “ㄱ” and “ㄴ” |
“ㄱ” 과 “ㄴ” 사이의 문자만 입력 |
>= #1/1/96# And <#1/1/97# |
1996년의 날짜를 입력 |
DLookup("CustomerID", "Customers", "CustomerID = Forms!Customers!CustomerID") Is Null | 고유한 CustomerID를 입력해야 합니다. 도메인 계산 함수는 테이블/필드의 유효성 검사에서는 사용할 수 없습니다. 폼(폼 수준)에서 유효성 검사에만 허용됩니다. |
주의 사항
1. 필드의 유효성 검사규칙에서는 필드이름을 직접 사용할 수 없습니다. 즉, 표현식에 필드이름을 넣어서 작성하지 못합니다.
필드 값을 참조 하려면 레코드 수준에서 가능하므로 테이블의 속성 창을 불러내서 유효성 검사 규칙에 필드를 참조하는 표현식을 사용해야
할 겁니다.
2. 필드의 유효성 검사 규칙을 만들면 Microsoft Access는 일반적으로 필드에 Null 값이 저장되지 않도록 합니다. Null 값이 허용되게 하려면 "<> 8 Or Is Null"과 같이 유효성 검사 규칙에 "Is Null"을 추가하고 필수(Required) 속성이 ‘아니오’로 설정되었는지 확인합니다.
3. Null 값을 허용된 필드에서 유효성 검사 규칙의 표현식을 작성 할 때 필드 값이 Null 값인가 아닌가를 검사하는 부분이 추가되어야 오류가 발생하지 않는다고 말씀 드렸습니다.
참고 : http://www.officetutor.com/column/kkk-db/kkk_01_6.htm
4. 도메인 계산 함수는 테이블의 유효성 검사에는 사용할 수 없습니다. 폼 수준 유효성 검사에만 사용됩니다.
참고] 표현식 작성시 리터럴 값 입력 요령 리터럴 값은 테이터 형식에 따라 표현하는 방법이 다릅니다. 1) 텍스트 속성의 필드에 조건을 줄 때는 따옴표(“)로 둘러싸야 합니다. 2) 날짜 형식의 필드에 조건을 줄 때는 샤프(#) 기호로 둘러싸야 합니다. 3) 숫자필드인 경우는 특별하게 둘러 쌀 필요는 없습니다. |
2) 레코드 수준의 유효성 검사규칙
필드수준의 유효성 검사규칙의 표현식에는 필드를 참조할 수 없다고 하였습니다. 그러나 레코드 수준의 검사는 필드를 참조할 수 있어
하여 관련된 필드의 값을 참조, 비교 검사할 때 유용합니다.
필드 수순의 유효성 검사 규칙은 필드 값이 수정될 때 마다 작동되지만 레코드 수준의 유효성 검사는 레코드의 자료가 저장되거나 레코드를
이동할 때 유효성 검사를 합니다.
레코드 수준의 유효성 검사 규칙을 설정하려면 먼저 테이블을 ‘디자인 보기’로 연 다음 우측 버튼을 눌러 단축메뉴를 불러내고 속성을
클릭하여 ‘테이블 속성’ 창을 불러내서 적절한 식으로 설정해 줍니다.
유효성 검사 규칙을 위한 식을 작성하는 방법은 ‘식의 작성’ 강좌를 참고하십시오.
참고] 숫자 형식으로 날짜를 운영할 때
가끔 날짜정보를 날짜 데이터 형식으로 사용하지 않고 ‘20020101’ 과 같이 숫자 형식으로 날짜를 운영하는 분들이
계십니다. 날짜 형식으로 지정하면 8바이트가 소모되지만 숫자(정수/Long)로 지정하면 4바이트면 되기 때문에 그런 것 같습니다.
날짜 계산을 해야 하는 경우는 별로 바람직하지 못한 판단입니다. 하여간 이런 경우 입력받은 자료가 유효한 날짜 에 대한 정보인지
어떻게 판단할 수 있을까요?
날짜에 합당한 값인가 아닌가를 구분하는 함수는 IsDate() 함수입니다.
사용법은 IsDate([값]) 입니다.
그리고 ‘20020101’을 ‘2002-01-01’로 나타내려면 Format()함수를 이용합니다.
Format( 20020101,
“0000-00-00” ) => 2002-01-02
만약 필드가 [사용일자]이라면 이 필드의 입력값을 검사하고자 하는 표현식을 만들어 본다면 다음과 같을 겁니다.
IsDate(Format([사용일자],
“0000-00-00”))
그러나 필드의 유효성 검사에서는 필드를 참조할 수 없으므로 이런 경우는 필드의 유효성 검사 규칙에 값을 테스트할 식을 사용할
방법이 없습니다.
따라서 레코드 수준의 유효성 검사를 이용합니다.
테이블의 속성창을 불러내고 유효성 검사규칙에 위 표현식을 그대로 적용합니다.
그러나 이러한 불편함을 감수하려고 하지 마시고 적절한 데이터 형식을 사용하는 것이 좋을 겁니다.
다음 강좌에서는 자료를 수집하는 방법으로 조회 필드의 운영에 대해 말씀 드릴까 합니다.