배움터  
  HOME > 배움터 > 무료강좌
무료강좌
 
액세스 2000, 김규경님의 데이터베이스 기초 다지기 - 13강. 식의 작성 (1) - 데이터 형식과 식 #2, Access 2000
  


13강. 식의 작성 (1) - 데이터 형식과 식 #2

앞으로 하게 될 강좌의 내용은 대부분 액세스 도움말의 내용입니다. 그 내용을 좀 더 쉽게 정리하면서 몇몇 코멘트와 도움되는 내용을 삽입하였습니다. 항상 강조하는 말이지만 도움말을 가까이 하도록 하십시오. 그리고 몇 권의 책을 읽으셔야 합니다.

앞으로 하게 될 강좌의 내용입니다.

1. 데이터 형식과 식에 대하여
2. 연산자에 대하여
3. 식을 작성하는 방법
4. 식의 작성 예제
5. 간단히 다뤄보는 식 작성기

필드의 데이터 형식

필드에 형식이 있다는 것을 모르시는 분이 있다면 데이터베이스의 기초를 다시 한번 읽어보신 다음에 이 강좌를 보십시오.
액세스에서 지원하는 필드의 데이터 형식입니다. 보고 또 보고 머릿속에 넣어 둘 내용들 입니다.

데이터 형식  용도  크기
텍스트  주소처럼 텍스트 또는 텍스트와 숫자가 조합된 데이터를 비롯해서 전화 번호나 지역 번호우편 번호와 같이 계산이 필요 없는 번호.  255 문자까지 사용. 
Microsoft Access는 필드에 입력된 문자만 저장하고, 텍스트 필드에서 사용되지 않는 공간의 공백 문자는 저장하지 않습니다. 입력할 수 있는 최대 문자 수는 필드 크기/FieldSize 속성으로 조절할 수 있습니다.
메모  참고나 설명과 같이 길이가 긴 텍스트나 숫자.   32,000 문자까지 사용.
숫자  화폐 계산(통화 형식 사용)을 제외한 산술 계산에 사용되는 숫자 데이터. 특정 숫자 형식을 정의하려면 필드 크기/FieldSize 속성을 설정합니다.   1 또는 2 4 8 바이트. 
 16바이트는 복제 ID(GUID)에만 사용. 
날짜/시간  날짜와 시간  8바이트.
통화  통화 값. 계산 중에 반올림되지 않도록 할 때 통화 데이터 형식을 사용합니다. 소수점 위 15자리, 소수점 아래 4자리까지의 숫자를 저장할 수 있습니다.   8바이트.
일련 번호  레코드가 추가될 때 자동으로 삽입되는 1씩 증가하는 숫자 또는 임의 숫자.   4바이트.
 16바이트는 복제 ID(GUID)에만 사용됩니다.
예/아니오  Yes/No, True/False, On/Off 등 두 값 중 하나만 갖는 필드  1비트.
OLE 개체  OLE 프로토콜을 사용해서 다른 프로그램에서 만들어진 Microsoft Word 문서나 Microsoft Excel 스프레드시트, 그림, 소리, 기타 이진 데이터 등의 개체. 이 개체는 Microsoft Access 테이블에 연결 또는 포함될 수 있습니다. OLE 개체를 표시하려면 폼이나 보고서에서 바운드 개체 틀을 사용해야 합니다.   1GB까지 사용.
하이퍼링크  하이퍼링크를 저장할 필드. 하이퍼링크는 UNC 경로나 URL이 될 수 있습니다.   64,000 문자까지 사용.

VBA 데이터 형식

액세스 데이터베이스의 필드의 데이터 형식과 더불어 VBA에서 사용하는 변수가 지원하는 데이터 형식을 비교 대응시켜 보십시오.

이 강좌는 개체의 속성에 식을 작성하기 위한 것으로 지금 당장 아래 내용이 필요하지 않지만 머지않아 VBA로 작성하는 모듈을 사용해야 하고 따라서 이번 기회에 미리 읽어보고 외워 두시는 것이 좋겠습니다.

아래의 표는 지원되는 VBA 데이터 형식과 그 저장 용량 및 범위를 나타내고 있습니다.

데이터 형식 저장 용량  범위

Boolean

2바이트

True 또는 False

Byte

1바이트

0부터 255까지

Integer

2바이트

-32,768부터 32,767까지

Long
(긴 정수)

4바이트

-2,147,483,648부터 2,147,483,647까지

Single
(단정도 부동 소수점)

4바이트

-3.402823E38부터 -1.401298E-45까지(음수값). 1.401298E-45부터 3.402823E38까지(양수값)

Double
(배정도 부동 소수점)

8바이트

-1.79769313486232E308부터
-4.94065645841247E-324까지(음수값).4.94065645841247E-324부터 1.79769313486232E308까지(양수값)

Currency
(정수 값 잘림)

8바이트

-922,337,203,685,477.5808부터 922,337,203,685,477.5807까지

Decimal

14바이트

+/-79,228,162,514,264,337,593,543,950,335(소수점 이하 없음); +/-7.9228162514264337593543950335(숫자의 오른쪽으로부터 28번째); +/-0.0000000000000000000000000001(0이 아닌 최소 숫자)

Date

8바이트

100년 1월 1일부터 9999년 10월 31까지

Object

4바이트

모든 개체 참조

String
(가변 길이)

10바이트
+문자열 길이

0부터 약 20억까지

String
(고정 길이)

문자열 길이

1부터 약 65,400까지

Variant
(숫자)

16바이트

Double형 범위 내의 모든 숫자

Variant
(문자)

22바이트
+ 문자열 길이

변수 길이 String과 같은 범위

사용자 정의 형식
(Type 사용)

요소가
사용하는 숫자

해당 데이터 형식의 범위값과 각 요소의 범위값이 같음

메모  모든 데이터 형식의 배열은 20바이트 + 각 차원당 4바이트 + 데이터 자체가 차지하는 바이트만큼의 메모리를 차지하며, 각 항목의 수에 항목의 크기를 곱하면 데이터가 차지하는 메모리의 용량을 구할 수 있습니다. 예를 들면 2바이트를 차지하는 4개의 Integer 데이터 요소로 된 1차원 배열은 8바이트를 차지합니다. 데이터의 8바이트와 오버헤드 24바이트를 더하면 배열에 필요한 메모리 양은 32바이트가 됩니다.

Variant는 배열 자체보다 12바이트를 더 차지하는 배열을 가지고 있습니다.

메모 StrConv 함수는 문자열 데이터를 다른 형식의 문자열 데이터로 변환할 때 사용된다.

식이란?

당연한 얘기지만 데이터베이스를 다루기 위해 기본적인 것이 식입니다. 식은 식별자, 연산자, 값(리터럴 값, 상수값) 함수와 같이 결과를 산출하는 기호로 구성됩니다.

예를 들어, 폼이나 보고서의 컨트롤에서 다음 식을 사용하여 Subtotal과 Freight 컨트롤 값의 합계를 나타냅니다.

= [Subtotal] + [Freight]

식을 작성하는 경우

  조건식 작성기를 사용할 수 있는 경우
   1. 계산 컨트롤을 정의하고, 유효성 검사 규칙을 작성하며, 기본 필드 값을 정하는 속성을 설정할 때
   2. 조건 식을 입력하거나, 계산 필드를 작성하고, 쿼리나 필터의 레코드를 업데이트할 때
   3. 매크로 함수나 매크로에서 일련의 매크로 함수 수행 조건을 설정하거나, 여러 매크로 함수의
     인수를 지정할 때

  조건식 작성기를 사용할 수 없는 경우
   1. Microsoft Visual Basic for Applications 프로시저에서 여러 함수, 명령문, 메서드의 인수를
     지정할 때
   2. 쿼리 창의 SQL 보기에서 SQL 쿼리를 편집하거나 속성 설정이나 인수에 SQL 문을 사용할 때

리터럴 값

리터럴 값은 Microsoft Access에서 적혀진 대로 정확히 결과를 계산해 내는 숫자, 문자열, 날짜와 같은 값을 말합니다.

"뉴욕", 100, #2001-1-1# (ANSI-92에서 “1-Jan-01”)은 리터럴 값의 예입니다.

다음 내용을 반드시 알도록 합시다.

1. 날짜/시간 값
식 요소를 묶고 있는 숫자 기호(#)(또는 ANSI-92의 작은따옴표)는 해당 요소가 날짜/시간 값임을 표시합니다.
숫자 기호나 작은따옴표로 둘러 쌓인 값은 자동으로 날짜/시간 값으로 인식되므로 일반적인 형식으로 날짜나 시간 값을 입력할 수 있습니다.

데이터 형식이 날짜/시간인 필드의 조건식이나 유효성 검사 식에서는 날짜/시간 값을 입력할 때 주위에 숫자 기호나 작은따옴표를 사용하지 않아도 됩니다.
일반적인 형식으로 날짜나 일반 시간 값을 입력하면 자동으로 값 주위에 올바른 기호가 삽입됩니다. Access 2002 이상은 ANSI-92를 준수합니다.

Microsoft Access에서는 Microsoft Windows 제어판의 국가별 설정에 따라 값을 나타냅니다. 형식/Format 속성을 사용하여 날짜 출력 형식을 변경할 수 있습니다.

2. 텍스트 문자열
식의 요소가 큰따옴표(")로 묶여 있으면 해당 요소가 텍스트임을 의미합니다.

1) 유효성 검사 식이나 조건 식에서 텍스트를 입력할 때
큰따옴표 없이 텍스트를 입력하면 자동으로 큰따옴표가 삽입됩니다.

예를 들어, 식 파리를 입력하면 다음과 같은 결과가 나타납니다.

"파리"

2) 모듈에서 큰따옴표로 묶인 문자열로 나타내는 식을 사용하려면
해당 중첩 문자열을 작은따옴표(‘)로 묶거나 세 개의 큰따옴표(")로 묶어야 합니다.

예를 들어, 다음 두 식은 같은 결과를 나타냅니다.
(이 부분은 반드시 외워두셔야 합니다.)

Forms![Contacts]![City].DefaultValue = "파리"

Forms![Contacts]![City].DefaultValue = " " "파리" " "
 

초보자 코너]
폼, 보고서, 테이블 등의 개체 속성에 식을 사용하는 경우 앞서 설명한 바와 같이 텍스트를 입력하면 자동으로 큰따옴표를 붙여서 리터럴 값으로 표시를 합니다.

그러나 모듈에서 VBA로 코드를 작성할 때는 이러한 자동변환을 하지 않습니다.

그 이유는 앞서 언급한 ‘식을 사용하는 경우’의 1~3에 해당되는 경우에는 변수를 사용할 수 없어 일단 입력되는 텍스트는 텍스트 그 자체, 즉 리터럴 값으로 액세스가 판단하여 처리할 수 있지만 변수를 사용하는 모듈에서는 그게 변수를 의미하는지 텍스트를 의미하는지 액세스가 스스로 판단을 못합니다. 따라서 그대로 놔두게 됩니다. 그런데 리터럴 값은 큰따옴표로 둘러싸야 하고 변수는 큰 따옴표를 치지 않아야 합니다.

예를 들면, 모듈에서
MyValue = That    ‘ MyValue의 값은 That이란 변수가 가지고 있는 값
MyValue = “That”   ‘ MyValue의 값은 “That”
 

상수

상수는 변하지 않는 값을 나타냅니다. True, False Null은 Microsoft Access가 자동으로 정의한 상수입니다. Visual Basic 프로시저에서 사용하는 Microsoft Visual Basic for Applications의 상수를 정의할 수 있습니다.

참고] 식(표현식/조건식)에서 사용하는 함수에는 Visual Basic 상수를 사용할 수 없습니다. VBA로 모듈을 작성할 때만 가능합니다.
예를 들어 Visual Basic에는 일요일을 나타내는 vbSunday, 월요일을 나타내는 vbMonday와 같이 함수에 사용할 수 있는 요일에 해당하는 상수가 있습니다.
vbSunday의 경우 1, vbMonday의 경우 2와 같이 각 상수는 해당 숫자 값을 갖습니다. 식에서 사용되는 함수에서는 숫자 값을 사용하여 특정 요일을 표시해야 합니다.

함수

함수는 계산 결과나 다른 연산을 조건으로 값을 반환합니다. Microsoft Access에는 다음과 같은 여러 기본 제공 함수가 있습니다.

문자열함수, 날짜함수, 계산함수, 연산함수 등등……

필드, 컨트롤, 속성 식별자

식별자는 필드나 컨트롤, 속성 값을 참조합니다.

예를 들어, 다음 식별자는 Orders 폼에서 OrderDate 컨트롤의 기본값/Default Value 속성 값을 참조합니다.

Forms![Orders]![OrderDate].DefaultValue

식별자에 사용되는 Bang(!) 과 Dot(.)에 대해서는 다음에 좀더 자세히 설명합니다.
 

 

  목차 | 이전 | 다음