배움터  
  HOME > 배움터 > 무료강좌
무료강좌
 
액세스 2000, 김규경님의 데이터베이스 기초 다지기 - 18강. 신뢰성 있는 자료 구축 (3) - 조회필드, Access 2000
  


18강. 신뢰성 있는 자료 구축 (3) - 조회필드

- 조회필드
- 화면 표시값 그리고 실제값
- 콤보상자/목록상자의 효율적인 사용법


조회필드

여러 항목 중에서 무언가를 선택을 하고자 할 때 이용할 수 있는 인터페이스 컨트롤로는 목록상자, 콤보상자, 체크박스, 라디오버튼 등이 있습니다. 액세스 폼에서는 이러한 커트롤을 모두 사용할 수 있지만 액세스 테이블에서는 콤보상자와 체크박스 입력 인터페이스만 사용할 수 있습니다.

테이블에서 콤보/목록상자 인터페이스를 이용하여 목록에서 값을 선택 입력하는 사용자 입력 형식을 '조회 필드'라고 합니다.

조회필드를 만들 때 마법사를 이용할 수도 있고 테이블을 디자인 보기로 열고 필드 디자인 창의 아래에 있는 속성영역의 조회 탭에서 컨트롤 표시를 콤보상자나 목록상자로 설정하고 제반 속성을 직접 설정하여 만들 수도 있습니다.

테이블에서는 설령 목록상자를 설정하였어도 콤보상자로 나타납니다. 단지 폼을 만들 때 이 설정을 참고로 하여 목록상자로 설정된 경우는 당연히 목록상자 형식으로 만들게 됩니다.

일반적인 조회 테이블의 구성은 간단하게 1개의 필드(키필드) 또는 2개의 필드(코드화된 키필드, 설명 필드)로 구성됩니다. 물론 2-3개의 보조필드가 추가될 수 있습니다. 그런 경우도 조회할 때는 대개 1~2개 정도의 필드만을 조회해서 사용합니다.

조회 필드 형식은 매우 효율적이며 융통성 있는 자료 입력 방식입니다. 또한 인터넷 익스플로러의 주소 입력창에서 몇 글자만 입력해도 주소를 완성해주는 것과 같이 자동완성 기능이 있어 매우 신속하게 자료를 입력할 수 있도록 합니다.

장점
1) 입력할 때 편리하고 오류를 줄인다.
2) 다른 정보도 한 필드에 표현할 수 있다.

참고] 속성에 대한 도움말 보기

개체의 속성에 대한 자세한 내용을 보려면 속성 시트에서 해당 속성을 클릭한 다음 F1 키를 누릅니다.


Microsoft SQL Server 2000이나 Microsoft SQL Server 2000 Desktop Engine에 연결된 Access 데이터베이스나 Access 프로젝트에서 이러한 속성을 사용하여 조회 필드를 사용자 지정할 수도 있습니다.

다음은 콤보/목록 상자의 중요한 속성에 대해 정리한 표입니다.

속성 설명

행 원본 유형
Row Source Type

행 원본의 종류(테이블/쿼리, 테이블/뷰/저장 프로시저, 값 목록, 필드 목록, Visual Basic 함수)를 지정한 다음 행 원본/Row Source 속성의 실제 행 원본을 지정합니다.

값목록, 테이블/쿼리, 필드목록 중 하나를 지정할 수 있습니다.

행 원본 유형의 선택항목에는 나타나지 않지만 행원본 유형에 직접 함수이름을 지정할 수 있습니다.

행 원본
Row Source

행 원본 유영에 따라 다음과 같이 행원본을 작성합니다.

값목록 - 행원본에 남;여 등과 같이 목록 값을 세미콜론(;)으로 구분하여 직접 작성합니다.

테이블/쿼리 - 목록에서 테이블(질의테이블 포함)이름을 선택하거나 직접 쿼리문을 입력합니다.

필드목록 - 행원본에 선택한 테이블의 필드를 목록으로 작성해 줍니다.

함수이름 - 행원본 내용을 작성할 필요가 없습니다.

바운드 열
Bound Column

정말 중요한 속성입니다.

행원본에 포함된 여러 열(또는 필드) 중에서 필드 값으로 저장할 열을 지정합니다. 화면에 나타난 값이 꼭 저장되는 것은 아닙니다. 화면에 나타나는 내용은 실제값을 사용자가 이해하기 좋게 풀어쓴 내용인 경우가 많습니다. 실제 값에 해당되는 열을 숨겨두는 겁니다.

열 개수
Column Count

목록 상자나 콤보 상자에 들어 갈 열 개수를 지정합니다.

아무리 많은 필드(열)을 행원본에 포함시켜도 이 열의 개수를 제대로 맞추어 주지 않으면 포함된 열은 일부 사용할 수 없게 됩니다.

열 너비
Column Widths

세미콜론으로 분리된 각 열의 너비를 지정합니다.

열 숨기기 - 해당 열의 너비를 0으로 설정하면 됩니다. 그러나 보이지만 않을 뿐 목록에 열이 포함되어 있으므로 언제든지 이 열의 내용을 참조할 수 있습니다.

기본너비 - 기본값을 사용하려면 아무것도 입력하지 않고 세미콜론만 찍으면 됩니다.

콤보 상자에서는 처음 보이는 열이 컨트롤 텍스트 상자에 표시됩니다. 콤보 상자에 입력하는 값은 바운드열로 결정한다는 것을 명심해야 합니다.

열 머릿글
Column Heads

테이블처럼 열 이름을 보여주면 해당 열이 무엇을 나타내는가를 쉽게 알 수 있을 겁니다. 행원본으로 테이블/쿼리를 사용하는 경유 레코드 원본의 필드나 열 이름이 열 머리글로 사용됩니다. 값 목록을 행원본으로 사용하는 경우 첫번째 값부터 열 개수 속성에서 설정된 숫자만큼을 열 머릿글로 사용합니다.

목록상자에서 열이름을 사용하는 경우 열이름은 선택할 수 없지만 하나의 행을 차지하므로 행 인덱스 참고시 주의해야 합니다.

목록 너비/List Width

콤보 상자에 있는 목록 상자 부분의 너비를 지정합니다.

행 수/List Rows

항목을 보여 줄 최대 행 개수를 지정합니다.

목록 값만 허용
Limit To List

목록값만 허용을 '예'로 설정하면 입력된 값이 항목에 있어야 합니다. 없으면 자료가 저장되지 않습니다. 사용자가 입력한 값이 목록에 없는 경우 이 값을 목록에 추가하려면 이 속성을 '아니오'로 설정하고 이벤트 프로시저를 OnNotInList 속성에 연결합니다.

OnNotInList

NotInList 이벤트가 발생할 때 연결된 이벤트 프로시저를 수행합니다. 이 속성을 사용하여 새로운 값을 목록에 추가할 수 있습니다. 테이블 디자인 보기의 조회 탭에서는 이 속성을 사용할 수 없습니다. 폼에서 사용하게 됩니다.

자동 확장
Auto Expand

콤보 상자에 입력하는 문자에 해당하는 값을 자동으로 채울지 여부를 지정합니다. 그러나 테이블에서는 기본으로 자동확장으로 설정되어 있고 변경할 수 없습니다. 폼에서만 이 속성을 변경할 수 있습니다.

컨트롤 표시
Display Control

폼에 조회 필드를 추가할 때 기본적으로 만들어지는 컨트롤 종류(콤보 상자나 목록 상자)를 지정합니다. 테이블 디자인 보기의 조회 탭에서만 이 속성을 사용할 수 있습니다. 그러나 테이블에서는 어떤 값이더라도 콤보상자로 표시됩니다.

다음은 콤보상자 생성시 각 속성의 기본값을 보여주고 있습니다. 이러한 기본값은 그대로 두지 말고 가능하면 사용자 설정을 하도록 합니다.


 
화면 표시값 그리고 실제값

콤보/목록상자는 실제값을 화면에 표시하지 않고 해당되는 다른 값을 화면에 표시할 수 있습니다.

1) 취급하는 열 중에서 처음으로 나타나는 열이 화면에 보인다. 따라서 열의 순서가 중요합니다.
2) 실제 데이터 값은 ‘바운드열 속성’에 설정하여 보이는 값과 실제 값을 다르게 표시할 수 있습니다.
3) 열의 순서를 중요시 하는 경우, 즉 항상 첫번째 열이 바운드열로 설정하고 그 열대신 다른 열의 값을 화면에 표시하고자 하는 경우 해당 열의 ‘열 너비’속성 값을 0 으로 설정하여 숨길 수 있습니다.
4) 열 너비 속성 설정시 열에 따른 값의 구분은 세미콜론(;)으로 구별한다.
   참고] 세미콜론은 액세스에서 항목을 구별하는 표준적인 구분자입니다.

예를 들면, 회사코드가 ‘k-001’ 이고 회사명이 ‘해피랜드’ 라고 할 때 필드에 저장될 실제 값이 회사코드인 경우 사용자에게 k-001을 보여주는 것은 불편할 겁니다. 대신 코드에 대한 설명값인 회사이름을 보여주는 것이 좋겠지요?

이 경우 콤보/목록상자의 열의 순서를 생각해 볼 필요성이 있습니다.

1) 회사코드-회사명 순서로 되어 있다면
열의 개수 속성은 ‘2’, 회사코드열을 바운드열로 해야 하므로 바운드열 속성은 ‘1’, 그리고 화면에 나타나는 값은 첫번째 열, 즉 회사코드이므로 그 값이 화면에 나타나지 않도록 해기위해 열너비속성은 ‘0’ 이라고 주어야 할 겁니다.(실제로 열너비 속성은 ‘0;3’ 등과 같이 2열의 너비가 표시되어야 하나 ‘0’ 과 같이 하면 첫번째 열은 보이지 말고 그 다음 열부터는 기본 너비로 보이라는 뜻이 됩니다.)

2) 회사명- 회사코드 순서로 되어 있다면
열의 개수 속성은 ‘2’, 회사코드열을 바운드열로 해야 하므로 바운드열 속성은 ‘2’, 그리고 그 값이 화면에 나타나므로 굳이 열너비 속성에서 두번째 열을 숨길 필요는 없을 겁니다.

그러나 1)과 2)의 내용은 약간의 차이가 존재합니다.

1)의 경우 항목리스트에 코드열이 전혀 보이지 않으나 2)의 경우 항목리스트에 코드열이 보인다는 것입니다. 따라서 상황에 맞게 열의 순서를 설정하고 바운드 열 및 열 너비 속성을 적절하게 사용해야 합니다.

다음 그림을 참고하십시오.

바운드열(1=회사코드) = 화면표시열(1)


 

바운드열(1=회사코드), 화면표시열(2) = 목록에서 회사코드를 볼 수없음


 

바운드열(2=회사코드) 화면표시열(1) = 설명필드(회사명)가 보이도록 열의 순서를 바꿈


 

바운드열(1=회사코드), 화면표시열(2) = 계산필드이용하여 회사명과 코드가 같이 보이도록


참고] 콤보/목록 상자와 입력마스크
콤보/목록 상자에서는 입력마스크가 적용되지 않습니다. 실제값을 그대로 나열하게 됩니다. 따라서 형식을 갖추려면 계산필드를 하나 만들어 원하는 형식으로 보여주도록 해야 합니다.


 
콤보상자/목록상자의 효율적인 사용법

1. SQL 문을 사용하지 않고 저장된 질의테이블을 사용한다.

2. 꼭 필요한 필드만 포함시킨다.

3. 연결 테이블은 가능하면 사용하지 않는다.

4. 반드시 인덱스를 만든다.(첫번째 필드와 바운드 필드 모두)

5. 자동 확장 기능을 가능을 사용할 때 숫자필드는 피한다.

6. 자동 확장기능은 사용하지 않는다.

7. 단 하나의 테이블만 포함한다.
 

반드시 인덱스를 만듭니다.

참고] 행 원본의 SQL문을 질의테이블로 저장하려면 행원본 속성의 우측에 나타나는 작성 버튼(Build button)을 눌러 질의디자인 창이 뜨면 도구모음 버튼에서 저장버튼을 눌러 질의테이블로 저장합니다.

다음 강좌에서는 질의에 대한 강좌입니다. 질의에 대해서 이해를 하신다면 데이터베이스의 기초를 마스터하신 것이 됩니다.
 

 

  목차 | 이전 | 다음