자격증/컴활 1급
[개미의 걸음 3과목 데이터베이스 일반] 입력 및 수정① 폼 생성
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