<폼 속성>
폼 열었을 때 나타나는 오류
- #Name? : 레코드 원본이 설정되지 않으면 나타나는 오류
즉, 폼의 자료의 원본인 테이블이나 쿼리가 지정되지 않은 경우
폼 기본 보기 속성(64page)
- 단일 폼 : 자료 하나씩 보기
(레코드 탐색 단추나 명령단추로 다음 레코드로 이동)
- 연속 폼 : 레코드 여러 개 보여주는 보기
(세로 스크롤바로 이동)
- 데이터 시트 : 테이블의 데이터 시트 보기과 같은 형태
- 분할 표시 폼 : 상단 폼(단일 폼)이고, 하단에 관련 자료가 테이블(데이터시트)처럼 보여지는 형태
테두리 스타일
- 가늘게 = 폼의 크기 조정 불가능(조절 불가능)
- 굵게 = 폼의 크기 조정 가능(조절 가능)
색상 - RGB(화면 색상)
- #000000(검정) - #FFFFFF(흰색)
- #C0C0C0(무채색-회색) : 12632256
인쇄색상 - CMYK
모달
- 현재 폼(창)을 닫기 전에는 다른 폼이나 개체 작업을 진행할 수 없도록 하는 기능
- 개체 탐색기 자체가 닫힘.
- 우선순위를 높혀서 다른 작업을 못함.
- 기본값 : 모달리스(modalless)
<컨트롤 속성>
컨트롤 오류
- 컨트롤이 하얗게 보이는 경우 : 컨트롤 원본이 설정되지 않은 경우
즉, 각 컨트롤의 원본인 필드(쿼리나 테이블 필드)와 연결이나 지정되지 않는 경우, 디자인 보기 상태에서는 언바운드 컨트롤로 나타남.
예) 각 필드에 바운드 시켜라.
각 필드를 컨트롤 원본으로 설정하세요.
각 필드에 연결하세요.
=> 결과적으로는 텍스트 상자 컨트롤에 필드명이 보인다.
(필드명은 컨트롤 이름과 다르게 지정되기 하고, 같을 수도 있다.)
계산 컨트롤 = 계산식이 입력된 텍스트 상자 컨트롤,
- 계산식은 컨트롤 원본에 입력하거나, 컨트롤에 수식을 직접 입력
텍스트 상자 컨트롤 = 입력란 컨트롤 = 필드 컨트롤 = 계산 컨트롤
컨트롤의 데이터를 편집하지 못하게 하는 경우
- 데이터(자료) 보호 기능 : 데이터 탭-잠금-예로 설정
(데이터는 변경 불가능하지만, 컨트롤은 클릭 가능)
컨트롤에 포커스를 가질 수 없도록 하는 경우
- 컨트롤 사용하지 못하게 하는 기능, 커서나 탭이 지정 컨트롤로 들어가지 못함.(클릭이 안됨)
데이터 탭-사용 가능-아니오로 설정
탭 순서
- 탭 설정은 텍스트 상자 컨트롤과 명령 단추에만 가능
- 화면에 보이는 대로 순서를 할 경우 <자동 순서>를 지정하면 됨.
- 자동 순서를 지정해도 순서가 맞지 않으면, 앞의 필드 선택기로 순서 변경(드래그)
1-7. 컨트롤 오른쪽 맞춤 : 정렬 탭 - 맞춤 - 오른쪽 - 텍스트 상자 컨트롤이 이동
1-8. 텍스트 오른쪽 맞춤 : 형식 탭 - 글꼴 - 오른쪽 맞춤 -텍스트 상자는 이동 안하고 텍스트만 이동
컨트롤 크기 : 가장 긴 길이로, 가장 넓은 너비로(왼쪽 설정만)
컨트롤 맞춤 : 위쪽/아래쪽->왼쪽/오른쪽
<폼 컨트롤 변경>
폼의 텍스트 상자 -> 마우스 오른쪽 변경 -> 콤보상자 컨트롤
행 원본 = rowsource
행 원본 유형 : 값목록, 테이블/쿼리, 필드목록
저장되는 열 = 바운드 열 = 연결되는 열 : 가져오신 순서에서 열번호
목록 값만 허용 -> 콤보 상자에서만 설정
여러 항목 선택 -> 목록 상자에서만 선택 가능
콤보상자가 문제 그림에서 가로 스크롤바가 있는 경우 -> 목록 너비 자동
콤보상자가 문제 그림에서 가로 스크롤바가 없는 경우 -> 목록 너비는 열 너비를 합친 크기로 설정(잘림없이 나타남)
콤보 상자 컨트롤 설정 사항
: 데이터 원본(행 원본) 설정 필요
행원본 유형 - 테이블/쿼리, 값목록(입력시), 필드목록
연결(저장될) 열번호=바운드 열 번호-가져온(select) 필드 순서에서 지정
열개수 - 가져온 필드 수만큼 설정
열너비 순서대로 입력(열 너비를 숨길 경우 0cm)
0cm;2cm (첫열은 숨기고, 두번째 열은 2cm)
0cm; (첫열은 숨기고, 두번째 열은 목록 너비만큼 자동 2.54cm)
;0cm (첫 열은 목록 너비만큼 자동, 두번째 열을 숨기기)
목록 너비 : 열들의 너비를 합친 만큼하거나 자동으로 설정,
잘리지 않게 설정하려면 열너비들의 합 이상(약간 커도 괜찮음).
목록 값만 허용 : 행원본에 존재하는 것만 사용(콤보상자만 가능)
<출제유형2>
저장되는 열번호가 1이면
행원본 : 데이터 입력 순서는 -1;남;0;여
행원본 유형 : 값목록
바운드열 : 1
열개수 : 2
열너비 : 0cm; (첫 열은 숨기고, 두번째 열너비 자동)
저장되는 열번호가 2이면
행원본 : 데이터 입력 순서는 남;-1;여;0
행원본 유형 : 값목록
바운드열 : 2
열개수 : 2
열너비 : ;0cm (첫 열너비 자동이고, 두번째 열을 숨김)
<보고서>
보고서 오류
- #Name? : 레코드 원본(테이블/쿼리)이 설정(연결/바운드) 안됨
- 컨트롤이 흰색 : 컨트롤 원본이 설정(연결/바운드) 안됨(디자인 보기 - 언바운드)
보고서 보기형태
- 보고서 보기 : 모든 페이지가 연결되어서 1페이지로 나타남(연속 용지)
- 디자인 보기 : 수정
- 인쇄미리 보기 : 인쇄용, 결과확인은 이 방법으로 해야 페이지 레이아웃이 확인
- 레이아웃 보기 : 자료를 확인하면서 너비, 위치 조정 가능
영역(구역)
- 보고서 머리글/바닥글 : 보고서의 맨앞/맨뒤, 보고서에서 한번만 보임.
보고서 바닥글에 sum을 실행하면 총합계가 나온다.
- 페이지 머리글/바닥글 : 매 페이지마다 반복되는 내용
페이지 머리글에 반복할 행 레이블 위치
페이지 바닥글에 페이지번호, 날짜 등 입력
페이지 바닥글에 sum을 실행하면 해당 페이지의 합계가 나타남.
- 그룹 머리글/바닥글 : 그룹의 맨앞, 맨뒤, 그룹의 갯수만큼 보임.
본문 바로 위가 그룹머리글, 본문 아래가 그룹바닥글
정렬 및 그룹화
- 정렬, 그룹화는 순서가 변경되면 보고서의 모양이 틀어지므로, 꼭 순서를 지킬 것.
- 정렬이나 그룹화 중 필드가 이미 한번이라도 설정(사용되고)되어 있는 필드가 있으면, 더이상 추가하지 말고, 설정되어 있는 필드는 변경만해서 적용
- 그룹화 설정은 '자세히'단추를 클릭해서 지정 머리글/바닥글을 표시
<Docmd 개체>
Docmd.OpenForm "폼이름", 보기형식(생략), 필터생략, "조건"
Docmd.OpenReport "보고서이름", 보기형식(인쇄미리보기), 필터생략, "조건"
Docmd.OpenQuery "쿼리이름"
예) DoCmd.OpenForm "고객정보", , , "이름='" & txt조건 & "'"
DoCmd.OpenReport "대여목록", acViewPreview, ,
"대여일자>=#" & me.txt시작일 & "# and 대여일자<=#" & me.txt종료일 & "#"
"대여일자 between #" & me.txt시작일 & "# and #" & me.txt종료일 & "#"
<폼 종료시 저장 옵션>
DoCmd.Close 개체타입, "개체명", 저장 옵션
acSaveYes : 무조건 저장
acSavePrompt : 기본값, 선택 저장 -예/아니오/취소
acSaveNo : 무조건 저장 안함
예) DoCmd.Close acForm, "동아리정보", acSaveYes
<추출 - 조회>
- filter, filteron
Me.Filter = "조건식"
Me.FilterOn = True
Me.Filter = "거래처명='" & Me.Cmb거래처찾기 & "'"
Me.FilterOn = True
Me.Filter = "year([구매일자])=" & Me.txt년 &
" and month([구매일자])=" & Me.txt월 &
" and day([구매일자])=" & Me.txt일
Me.FilterOn = True
- 조건
"필드명=값"
"상품명='모자'" - 텍스트는 작은따옴표
"수량>=10",
"매출일>=#2017-1-1#" - 날짜는 #안에
"수량>=10 and 수량<=20" - 10~20
"필드명=컨트롤명" : 컨트롤명은 큰따옴표에 들어가지 못함.
컨트롤명 = 텍스트 상자 컨트롤 이름, 콤보상자 컨트롤 이름
"필드명=" & 컨트롤명
텍스트 : "필드명='컨트롤명'" => "필드명='" & 컨트롤명 & "'"
숫자 : "필드명=컨트롤명" => "필드명=" & 컨트롤명
날짜 : "필드명=#컨트롤명#"=> "필드명=#" & 컨트롤명 & "#"
"필드명>=#" & 컨트롤명1 & "# and 필드명<=#" & 컨트롤명2 & "#"
텍스트 일부 : "필드명 like '*" & 컨트롤명 & "*'"
예) DoCmd.OpenForm "고객정보", , , "이름='" & txt조건 & "'"
"대여일자>=#" & txt시작일 & "# and 대여일자<=#" & txt종료일 & "#"
- RecordsetClone, FindFirst, Bookmark
Me.RecordsetClone.FindFirst "조건식"
Me.Bookmark = Me.RecordsetClone.Bookmark
Me.RecordsetClone.FindFirst "제품코드='" & Me.txt조회 & "'"
: 조건에 맞는 레코드 집합을 복사한 후 첫번째 자리로 찾아가라.
Me.Bookmark = Me.RecordsetClone.Bookmark
: 복사본에서 찾은 첫번째 자리(에 있는 북마크)를 현재 폼에 표시해라.
출제유형3. ~~~'찾기(cmd찾기)' 버튼을 클릭하면
<txt찾기에 입력된> 강좌명에 해당하는 ~~
- RecordSource
(교재 124page SQL 참조)
Me.RecordSource = "SQL"
select */필드명 from 테이블명 where 조건식 order by 필드명 asc/desc
강좌명의 전체로 조회할 경우
Me.RecordSource = "select * from 강좌 where 강좌명='" & Me.txt찾기 & "'"
강좌명의 일부분만으로 조회할 경우
Me.RecordSource = "select * from 강좌
where 강좌명 like '*" & me.txt찾기 & "*'"
출제유형 7.
ApplyFilter 함수 - 매크로 작성기
Me.txt대여횟수 = DCount("대여번호", "대여",
"전화번호='" & Me.txt전화번호 & "'")
Me.txt연체횟수 = DCount("대여번호", "대여",
"전화번호='" & Me.txt전화번호 & "' and 연체료>0")
<프로시저 쿼리 실행>
Docmd.OpenQuery "쿼리명" : 쿼리를 실행
Me.requery : 폼 새로고침의 개념처럼 변형된 자료를 다시 적용
<프로시저 내에서 다른 프로시저 실행>
Call 프로시저명
(서브 프로그램 호출은 call)
- Docmd.RunSQL "insert~~~"
<MSGBOX 함수-180page>
형식1 : 메시지만 표시할 때
= 선택사항이 없는 경우 = 확인 버튼만 존재(버튼이 여러 개가 아님)
= 반환값이 필요없는 경우 = 변수가 불필요한 경우 = if구문 X
- msgbox "메시지내용"
msgbox "수고하셨습니다!!!"
형식2 : 반환값이 있는 경우
= 선택사항 있는 경우 = 버튼 여러개(예/아니오/취소) 버튼이 존재
= 변수가 필요한 경우(버튼의 선택여부) = if 구문(변수 상태)이 나타남.
- 변수 선언(생략가능) : Dim a
- a = msgbox("메시지내용", [아이콘종류+]버튼종류, [타이틀])
: a는 메시지박스의 선택 사항의 값을 받는 변수
- 변수 값에 따라 다르게 처리되므로 if문이 나타남.
if a=버튼종류(선택값) then
처리문
end if
<프로시저 내의 sql문 처리 - 182page >
Docmd.RUNSQL "sql문"
- 삽입
DoCmd.RunSQL "insert into 테이블명(필드명1, 필드명2....)
values(컨트롤명1, 컨트롤명2....)"
예) DoCmd.RunSQL "insert into 호봉기준(호봉, 기본급)
values('" & me.txt호봉 & "', " & me.txt기본급 & ")"
Me.Requery
- 수정
DoCmd.RunSQL "update 테이블명 set 필드명=변경값
where 필드명=컨트롤명"
예) Docmd.RunSQL "update 호봉기준 set 기본급=" & txt기본급 &
" where 호봉='" & txt호봉 & "'"
Me.Requery
- 삭제
DoCmd.RunSQL "delete from 테이블명 where 필드명=컨트롤명"
예)DoCmd.RunSQL "delete from 호봉기준 where 호봉='" & txt호봉 & "'"
me.requery
컨트롤 클리어-초기화(공란)으로 설정
Me.txt호봉 = ""
Me.txt기본급 = ""
'ETC > 자격증' 카테고리의 다른 글
[SQLD]SQL 자격검정 실전문제(노랭이) 2과목 SQL 신판 / 구판 번호 비교 (0) | 2024.03.06 |
---|---|
[컴퓨터활용능력1급]수업 정리 7 (1) | 2022.09.11 |
[컴퓨터활용능력1급]수업 정리 6 (0) | 2022.08.14 |
[컴퓨터활용능력1급]수업 정리 5 (0) | 2022.08.04 |
[컴퓨터활용능력1급]수업 정리 4 (0) | 2022.07.31 |