상세 컨텐츠

본문 제목

[개미의 걸음 3과목 데이터베이스 일반] 입력 및 수정① 폼 생성

자격증/컴활 1급

by IT개미 데이터 2020. 12. 10. 23:23

본문

728x90

폼[FORM]

테이블이나 질의(쿼리), SQL문을 원본으로 하여 데이터의 입력, 수정, 삭제, 조회 등의 작업을 편리하게 수행할 수 있도록 환경을 제공하는 개체

  • 폼에서 데이터를 입력하거나 수정하면 연결된 원본 테이블/쿼리에 반영
  • 폼과 컨트롤의 여러가지 이벤트 속성을 이용해 원하는 작업을 자동화 가능
  • 폼 머리글, 본문, 폼 바닥글, 페이지 머리글, 페이지 바닥글로 구성
        → 모든 구역을 구성할 필요는 없음
    폼 머리글 * 폼 제목 등과 같이 모든 레코드에 동일하게 적용될 정보가 입력되는 곳
    * 폼 보기(단일 폼)에서는 상단에 매번 표시되고, 인쇄미리보기에서는 첫 페이지의 상단에 한번만 표시
    페이지 머리글 * 모든 페이지의 상단에 동일하게 표시될 정보 입력하는 곳
    * 인쇄 미리 보기에서 페이지마다 페이지 상단에 표시[첫 페이지에는 폼 머리글 아래에 표시됨]
    * 폼 보기에서는 표시되지 않음
    본문 * 실제 내용을 입력하는 곳
    * 단일 폼에서는 한 화면에 하나의 레코드가 표시됨
    * 연속 폼과 데이터시트 폼에서는 한 화면에 여러 개의 레코드가 표시됨
    폼 바닥글 * 폼 요약 정보 등과 같이 모든 레코드에 동일하게 적용될 정보가 입력되는 구간
    * 폼 보기(단일 폼)에서는 매번 하단에 표시
    * 인쇄 미리보기에서는 마지막 페이지 본문 다음에 한번만 표시됨
    페이지 바닥글 * 모든 페이지의 하단에 동일하게 표시될 정보가 입력되는 곳
    * 매 페이지마다 페이지 하단에 표시

자동폼

폼을 자동으로 만들어 주는 폼

  • 원본 테이블/쿼리의 필드와 레코드를 모두 표시
  • 기본적으로 한 개의 테이블이나 쿼리를 원본으로 하여 폼을 작성
  • 작성된 폼은 레이아웃 보기로 표시됨
        → 데이터를 보면서 컨트롤 크기 및 위치 변경 가능 

자동폼 생성 도구

* 열 형식의 폼이 작성됨
* 관계가 설정된 테이블이 있을 경우, 하단에 데이터시트 보기 형태로 표시됨
폼 분할 * 하나의 원본 데이터를 이용하여 상단에는 열 형식으로 하단에는 데이터시트 형식으로 화면에 작성
* 폼을 만들면 기본적으로 레이아웃 보기 형태로 표시됨
    컨트롤의 크기 조정 및 이동, 필드 추가가 가능함
* 두 형식은 하나의 원본 데이터를 사용하므로 서로 연결되어 있어 항상 동기화됨
* 디자인 보기 형태로 열면 열 형식의 형태로 컨트롤들이 표시됨
여러 항목 * 테이블 형식의 폼이 작성됨

 

하위 폼

폼 안에 있는 또 하나의 폼[1(기본 폼):M(하위 폼)관계에 있는 테이블 쿼리를 효과적으로 표현 가능]

  • 테이블, 쿼리나 다른 폼을 이용해 하위 폼을 작성 가능
  • 기본 폼의 현제 레코드와 관련된 레코드만 표시
  • 하위 폼은 연속 폼으로 표시 가능하지만 기본 폼은 연속 폼으로 표시 불가
  • 일반적으로 사용 가능한 하위 폼의 개수에는 제한 없음

기본 폼과 하위폼 연결

  • 연결 필드의 데이터 종류는 반드시 같아야함
    데이터 형식, 필드 크기도 같거나 호환되어야 함
  • 여러 개의 연결 필드를 지정하려면 세미콜론(;)으로 필드명을 구분하여 입력
    혹은 '하위 폼 필드 연결기' 창에서 여러 필드를 선택
  • 기본 폼과 하위폼을 연결한 필드는 하위 폼 컨트롤 속성에서 '테이터'탭의 '하위 필드 연결'과 '기본 필드 연결'에서 변경 가능

 

폼의 종류

폼의 모양에 따른 분류

열 형식 각 필드가 왼쪽의 레이블과 함께 각각의 행에 표시되고 레이아웃이 자동으로 설정됨
테이블 형식 각 레코드의 필드들이 한 줄에 나타나며, 레이블은 폼의 맨 위에 한 번 표시됨
데이터시트 레코드는 행으로, 필드는 열로 각각 나타나는 행/열 형식임
맞춤 필드 내용의 분량에 따라 각 필드를 균형있게 배치하는 형식임

테이블/쿼리와의 연결 여부에 따른 분류

바운드 폼 테이블이나 쿼리의 레코드와 연결되어 있는 폼
테이블이나 쿼리의 데이터를 표시하거나 입력, 수정, 삭제 등의 편집 작업이 가능
폼의 '레코드 원본'속성을 이용해 바운드시킴
언바운드 폼 테이블이나 쿼리의 레코드와 연결되지 않은 폼
주로 프로그램의 초기화면, 검색화면, 확인화면 등을 위한 명령 단추로 이뤄진 화면에 많이 사용됨

 

 

컨트롤

폼이나 보고서에서 데이터를 표시하고, 매크로나 함수 등의 명령을 실행하는 데 사용되는 그래픽 개체

바운드 컨트롤 * 테이블이나 쿼리의 필드가 컨트롤의 원본 데이터로 연결된 컨트롤
* 연결된 데이터를 표시하고, 이별, 수정 가능
* 하나의 필드를 여러 개의 컨트롤에 바운드 가능
* 폼 디자인 보기 상태에서 '필드 목록'창의 특정 필드를 폼으로 드래그하면 해당 필드가 바운드된 컨트롤 생성
언바운드 컨트롤 * 테이블이나 쿼리의 필드가 컨트롤의 원본 데이터에 연결되지 않은 컨트롤
* 언바운드 컨트롤에는 레이블, 명령 단추가 있음
* 언바운드 컨트롤을 바운드 컨트롤로 변경 가능
계산 컨트롤 * 데이터의 원본 데이터로 식을 사용하는 컨트롤
* 계산 컨트롤을 작성하려면 '='을 입력한 후 식을 지정함
* 값을 직접 입력할 수 없음

 

컨트롤 종류

텍스트 상자
* 폼이나 보고서의 원본으로 사용되는 데이터나 계산 결과를 표시하는 컨트롤
* 계산 결과를 표시하려면 컨트롤 원본에 '='로 시작하는 수식을 입력
* 필드에 바운드되었을 경우, 컨트롤의 값을 수정하면 필드의 값도 수정됨
레이블
* 제목이나 캡션, 설명 등과 같은 텍스트를 표시하는 컨트롤
* 다른 컨트롤에 덧붙일 수 있음
단추
* 레코드 탐색, 레코드 작업, 폼작업 등의 특정 기능을 실행할 때 사용하는 컨트롤
    "단추"라고 되어있지만 명령 단추임을 명심할 것!!!
옵션 그룹
* 확인란, 옵션단추, 토글 단추를 하나의 그룹으로 지정하여 사용하는 컨트롤
* 한 그룹에서는 하나의 옵션만 선택 가능
콤보 상자
* 텍스트 상자와 목록 상자가 결합된 형태의 컨트롤
* 좁은 공간에서 융용하게 사용되는 컨트롤
* 데이터를 목록에서 선택하거나 직접 입력 가능
* 테이블/쿼리, 값 목록, 필드 목록 등을 콤보 상자의 값으로 사용함
* 여러 개의 값 중 하나만 선택 가능
토글 단추
* YES나 NO 중 하나를 선택할 수 있는 컨트롤
확인란
* 여러 개의 값 중 하나 이상을 선택할 수 있는 컨트롤
* 폼이나 보고서에 'YES/NO' 필드 추가시 '확인란'컨트롤이 삽입됨
하위 폼/
하위 보고서
* 폼이나 보고서 안에 또 다른 폼이나 보고서를 작성하는 컨트롤
* 일 대 다 관계에 있는 테이블이나 쿼리를 효과적으로 표시 가능

 

 

예제 문제

출처 : 대한상공회의소 홈페이지

 

1. 폼의 디자인 보기

  • 영업소이용관리 폼을 마우스 오른쪽 클릭 후 디자인 보기 클릭

 

2. 레이블 생성

  • '디자인 → 컨트롤'에서 레이블 선택
  • 폼 머리글 영역에 드래그해서 레이블 박스 생성
  • 해당 레이블 컨트롤에 '서울요금소의 입구영업소 관리'라는 제목 표시

 

3. 레이블 컨트롤 속성 변경

  • 레이블 컨트롤 더블 클릭[or F4키]하면 컨트롤 속성 시트가 켜짐
  • 레이블 이름, 글꼴 크기, 문자색을 문제에서 주어진대로 설정

※ 컨트롤 콤보상자로 변경

  • 해당 컨트롤 마우스 오른쪽 클릭
  • [변경 → 콤보 상자]클릭

 

 

4. 두 폼 연결

  • 하위폼을 더블클릭한 뒤 기본 필드 연결의 단추를 클릭해 '하위 폼 필드 연결기'를 켬
        → 하위폼에 노란색 테두리가 생겨야 함
  • 자동으로 기본 필드와 하위 필드가 설정되므로 확인 클릭
  • 레코드 원본 및 관계를 참조하여 적절한 필드를 기준으로 연결되었는지 확인
        → 이전 문제에서 <지역정보>테이블의 지역코드와 <통행목록>테이블의 입구ID가 서로 관계를 가지고 있음
            [1:M관계]
        →지역코드를 바탕으로 통행차량목록 정보가 나타나야 하므로 올바른 관계 설정

 

5. 탐색 단추 및 레코드 선택기 감추기

  • 하위폼 클릭
        → 하위폼 좌측 상단에 검은색 표시가 나타나야함
  • 레코드 선택기, 탐색 단추를 감추기 위해 "아니오"로 설정
        구분선 감추기 문제도 출제됨
  • 폼 속성 시트에서 레코드 원본 설정 가능

6. 탭 전환시 포커스 설정

  • 하위 폼의 본문에서 '납입액' 더블 클릭
  • 기타에서 탭정지 설정을 "아니오"로 설정
        → TAB키를 눌려도 포커스가 이동하지 않음

※ 컨트롤 팁 텍스트

  • 컨트롤 팁 텍스트에서 해당 컨트롤에 마우스 포인터가 위치하는 경우 나타나는 메시지 설정 가능

 

7. 컨트롤 원본과 형식 속성을 설정

  • 하위 폼 바닥글의 통행차량수 컨트롤 더블 클릭
  • [...]을 클릭하면 폼의 필드명, 함수 등 설정하기 좀 더 용이
  • 컨트롤 원본과 형식 속성을 문제에 주어진대로 변경
        → Count(*) : Null값을 포함한 전체 레코드의 개수
        → Count([필드명]) : Null값을 제외한 레코드의 개수 
  • 0은 숫자값이 없으면 0으로 표시
    #은 숫자값이 없으면 아무표시 안함 

※ 총인원*총 건수가 출력되도록 설정하기

  • 해당 컨트롤 원본에 작성
         ex>   =COUNT(*)     /    =COUNT([필드명])
              단, 필드명으로 지정할 때는 NULL값은 COUNT하지 않으므로 기본키 필드를 사용하는 것이 좋음
  • 만약 뒤에 명,건 등의 문자가 붙을 경우
         ex> 방법1  컨트롤 원본 : =COUNT(*) & "명/건"
               방법2  컨트롤 원본 : =COUNT(*)
                        형식          :  #"명/건"   /    0"명/건"
  • FORMAT함수 사용
         ex> format(count(*), "#명")  /  format(count(*), "0명")
             format함수를 사용할 때는 0,#을 문자열에 포함시켜서 작성해도 됨!!

※ 컨트롤에 필드 바운드시키기

  • 언바운드된 컨트롤의 컨트롤 원본에 필드명 입력시켜주면됨!

※ 컨트롤 왼쪽/오른쪽 정렬

  • 해당 컨트롤 선택 후 [형식 → 글꼴]에서 주어진 정렬 선택

※ 조건에 따라 다른 값 출력

  • SWITCH함수 사용
        =SWITCH(조건1, 값1, 조건2, 값2, ....)
  • 필드명은 반드시 [ ]안에 작성
          [필드명] 

 

 

 

※ 가로/세로 간격 같게 설정

  • 해당되는 컨트롤 모두 선택
  • [정렬 → 크기 및 순서 조정]에서 크기/공간 선택
  • 해당되는 간격 조건 선택
  • [정렬 → 크기 및 순서 조정]에서 맞춤 설정 가능
        눈금에 맞춤, 왼쪽, 오른쪽, 위쪽, 아래쪽

※ 탭,컨트롤, 레이블 순서 설정

     유형1 탭순서 설정

  • 폼의 빈공간에서 마우스 오른쪽 클릭
  • 탭 순서 선택

     유형2. 컨트롤과 관련 레이블 순서 설정

  • shift키를 눌린 상태에서 컨트롤 및 텍스트 상자 선택하여 방향키로 직접 이동시킴

※ 엑세스/프로시저에서 대소문자 설정

  • 대문자 : UCASE
    소문자 : LCASE
  엑셀 엑세스/프로시저
대문자 UPPER UCASE
소문자 LOWER LCASE

 

※ 행 원본에 특정 필드값이 중복없이 표시되도록 쿼리 작성기 설정

  • 행 원본의 [...]아이콘 클릭
  • 문제에 주어진 테이블을 추가
  • 해당 테이블에서 문제에 주어진 필드 더블클릭해서 추가
  • 쿼리 작성기의 빈공간 더블클릭하면 속성 시트창이 생김
  • 고유값을 예로 설정

 

728x90

※ 속성 시트의 형식 탭에서 설정 가능한 속성

형식 설명
형식  
소수 자리수  
열 개수 목록/콤보 상자에 표시되는 열의 개수
열 너비 목록/콤보 상자에 표시되는 열의 너비
열 이름  
행 수  
목록 너비  
구분 문자  
너비  
높이  
위쪽  
왼쪽  
배경 스타일  
배경색  
테두리 스타일  
테두리 색  
특수 효과  
글꼴 이름  
글꼴 크기  
텍스트 맞춤  
글꼴 두께  
글꼴 밑줄  
글꼴 기울임꼴  
문자색  
확장 가능  
축소 가능  
표시 시기  

※ 속성 시트의 데이터 탭에서 설정 가능한 속성

데이터 설명
레코드 원본  
레코드 집합 종류  
기본값 반입  
필터  
로드할 때 필터링  
정렬 기준 필드명 desc
필드명 asc
로드할 때 정렬  
추가 가능 예       : 레코드 추가 가능
아니오 : 레코드 추가 불가
삭제 가능  
편집 가능  
필터 사용  
레코드 잠금  
데이터 설명
컨트롤 원본  
텍스트 형식  
행 원본  
행 원본 유형 테이블/쿼리
바운드 열 선택한 목록의 여러 열 중 해당 컨트롤에 저장되는 열을 설정[기본값 1]
    * 목록의 첫번째 열이 1(두번째 열 2,세번째 열 3,....)
    * 열 개수는 목록/콤보 상자에 표시되는 열의 개수
입력 마스크  
기본값  
유효성 검사 규칙  
유효성 검사 텍스트  
검색 필터  
사용 가능  
잠  금    예    : 데이터 수정 불가
아니오 : 데이터 수정 가능

 속성 시트의 기타 탭에서 설정 가능한 속성

데이터 설명
탭 인덱스 인덱스를 통해 탭 순서를 부여한 것
   ex> 탭 인덱스 :  0
        → 로드 시, 바로 커서가 컨트롤에 나타나도록 설정한다는 의미
            [단, 탭 정지가 예로 설정되어있어야지만 포커스가 이동함]

탭 정지    예    : 탭 이동시에 포커스가 옮겨감
아니오 : 탭 이동시에 포커스가 옮겨가지 않음 
추가 가능  
삭제 가능  
편집 가능  
필터 사용  
레코드 잠금  

 

728x90

관련글 더보기

댓글 영역