컴퓨터활용능력1급/컴활1급 실기

취성패_컴활1급_16일차 <access: 유효성검사, 입력마스크, 형식>

삼토 2016. 12. 13. 19:15

* 엑세스 개요


데이터를 관리하는 프로그램


데이터베이스

: 데이터를 저장하고 유통시키는 창고. 은행과 유사한 역할을 한다.


데이터베이스관리자

: 클라이언트(사용자)가 입력한 정보를 데이터베이스에 저장함


로그인

: 로그인을 하면 데이터베이스 관리자가 데이터베이스로부터 기존에 저장되어 있던 클라이언트의 정보를 꺼낸다.


로딩중

: 게임을 시작할 때 클라이언트에게로 기존의 데이터를 전송하는 과정


저장없이 종료한다

: 사용자가 플레이했던 내용을 자동으로 서버에 저장.




* 명칭 *


메뉴탭


읽기창


저장하기창


-----------시작


제목표시줄


메뉴탭(파일탭 홈탭 ..)


리본메뉴


그룹


확장단추


(꺽쇠두개)셔터표시줄 --

탐색창 / 작업창




엑세스에서 취급하는 데이터 종류 : 테이블/쿼리/폼/보고서

- 테이블 (30점)

- 폼 (25점)

- 보고서 (25점)

- 쿼리 (20점) (Hard) : 10점 맞추는 걸 목표로



* 용어 *

테이블 (= 표)

필드 (= 열)

레코드 (= 행)






* 테이블 만들기 *

만들기 메뉴(데이블,쿼리,폼,보고서 다 여기서 만들 수 있다) - 테이블 디자인




<보기방식 2가지>

- 데이터시트 방식 : 결과물을 보기 ex. 데이터 입력

- 디자인 보기 방식 : 뼈대를 만드는 과정(공장). ex. 필드 만들기, 필드 옵션 지정


보기방식 선택

: [파일]-[보기]


※ 디자인보기에서 데이터시트로 가는 과정에서는 무조건 저장해야함




'기본키를 정의하지 않았습니다' 창이 뜬다

: 기본키는 테이블을 하나만 사용할 때는 상관없으나 여러 테이블을 연계할 때는 반드시 필요하다


[주의]

엑세스에서는 데이터 입력 시 행별로 채워서 내려가야 한다


[주의]

엑세스는 저장이 필수요건



* 수정하기 *

필드를 추가한 후 데이터를 입력해야 하므로,

디자인보기에서 필드추가 후 데이터시트 보기


그런데 보기가 비활성화 되어있음?

- 닫혀진 테이블을 열 때는 우클릭으로(혹은 db클릭) 열어야만 한다



필드선택기 - (디자인보기에서) 필드 선택할 때 사용. 왼쪽의 회색막대


필드선택한 후 행삽입


'번호'필드의 경우, 숫자보다는 일련번호 형식이 더 좋다. (자동으로 숫자가 달리므로)


'성별'필드의 경우, 텍스트보다는 예/아니오 형식이 더 좋다. (양자택일일 때 쓴다)





* 테이블 세부옵션 * (5개 출제, 개당4점. 그 중 입력마스크, 유효성 검사규칙은 필수)


- 디자인보기에서 볼 수 있다


- 필드크기 : 최대 입력가능한 글자. default는 255


- 형식 : 자동으로 표시해주긴함

    두 글자가 붙으면 "ㅇㅇ"

    한 글자가 붙으면 \표시한다. (\ = 이 뒤에 올 하나의 문자)


- 입력마스크 ★★★


- 캡션 : 겉보기 이름

  엑세스에서는 필드이름을 바꾸지 못하는 경우가 많다.

  테이블은 기초정보를 저장하고 쿼리나 폼, 보고서는 테이블로부터 데이터 가져와서 가공하는데

  이 때 테이블의 필드를 바꿔버리면 쿼리, 폼 등에서 오류를 일으킬 수 있기 때문

  이럴 때 캡션을 이용해 표시 이름을 바꾸는 것

  

- 기본값 : 새로운 레코드가 입력될 때 자동으로 값이 입력되도록 함


- 유효성 검사 규칙★★★


- 필수 : 필수입력항목을 설정하는 것. 예- 데이터를 항상 입력해야한다

     "이름이 반드시 입력되도록 설정하시오"


- 빈 문자열 허용


- 인덱스 : 중복 예- 중복가능/예-중복불가능.

   (문제에서 '중복'이라는 키워드가 나오면 반드시 인덱스 설정 )


- 유니코드 압축


- IME모드 : Tab키를 눌러서 이동했을 때 해당 컨트롤의 입력의 시작언어를 설정.

한국어 설정하고 싶을 땐 한글

영어를 설정하고 싶을 땐 무조건 영숫자 반자(1byte) cf. 전자는 2byte임

그 전에 썼던 컨트롤의 시작값을 유지하고 싶을 땐 현재상태유지


문장 입력 시스템 모드

스마트 태그

텍스트 맞춤






p. 10


출제유형1)

기본키는 다수를 설정할 수 있다



* 입력 마스크 * : 입력의 형식을 제한 (≠ 형식 속성)


[질문]

(999)9999-0000 엔터치면

\(999\)9999-0000


- 앞에 \가 왜 안생기는지?

: -는 문자가 아니라 구분기호로 인식되어 있기 때문


[tip]

디자인보기로 안넘어가지면 esc 세번 누르기




[예제] 우편번호 필드에 6자리 숫자가 반드시 입력되도록 하되,

'-' 기호는 테이블에 함께 저장하고, 표시될 때 ###-### 으로 표시되도록 하라!!

136-103



[답] 000-000;0;#

  <입력마스크 인수 형태>


- 입력기호;저장여부;표시기호


- 저장여부를 생략하면, -기호를 빼고 저장함

  저장여부에 0 표시하면, -기호와 함께 저장


- 세번째 인수에 #을 쓰면 ___-___ 가 아니라 ###-###으로 표시됨

   ★을 쓰면 ★★★-★★★로 표시됨 

<입력마스크 사용 문자> 반 드 시 암기할 것!! p.18

형식과는 다름


0 : 0~9까지 숫자 필수 입력 (공백x)

9 : 0~9까지 숫자 선택 입력 (공백o)


L : a~z까지 영문 필수 입력

? : a~z까지 영문 선택 입력


>, < : 이 기호 뒤에 올 영문을 모두 대/소문자로 (영문 기호 앞에 쓸 것)


Password : 암호화


\: 뒤에 나오는 한 문자가 표시됨


#: 9와 같은데 덧셈 뺄셈 기호 사용가능 (0,9는 숫자,공백만 가능)


A: 영문, 숫자 필수 입력

a: 영문, 숫자 선택 입력


&: 모든 문자 필수 입력 (공백포함)

C: 모든 문자 선택 입력 (공백포함)


!: 입력 마스크가 왼쪽에서 오른쪽으로 채워짐.


ex. 다음 영문 2자와 숫자 2자가 반드시 입력되도록 하고, 영문은 모두 대문자가 되도록 입력마스크를 설정하라 :

>LL00






* 유효성 검사 규칙 * : 입력의 을 제한



* 입력마스크와 구별하기

입력의 형식보다는 내용에 관련된 문제라면 유효성 검사 규칙을 적용

다섯자리의 숫자만 입력되도록 -> 입력마스크

"사랑" "평화"가 포함되지 않도록 -> 유효성



출제유형1의 3번


보호자 연락처

010-5746-3225


앞 세자리가 0부터 100사이의 숫자만 입력되도록 설정하시오

-> 유효성 검사규칙 문제

: 보호자연락처>=0 AND 보호자연락처<=100

또는

>=0 AND <=100 (대상값 생략 가능! : 생략 시 선택한 필드가 대상값이 되기 때문)


그러나!

>=0 AND <=100라고 쓰면 false가 나옴.


우리는 앞 세자리를 떼어와서 물을 것이므로,

Left([보호자연락처],3)>=0 AND Left([보호자연락처],3)<=100


[주의]

Left(보호자연락처,3)>=0 AND <=100

라고 쓰면 함수값이 '보호자'로 나옴

필드값임을 인지시켜주기 위해 [] 안에 넣는다!!!!


[Tip]

left로 뽑아낸 값을 >=0 으로 비교할 수 있는가? 문자인데.

: 엑셀에선 안되지만, 엑세스에서는 left로 뽑아낸 값이라도 숫자로 인지한다.



<엑셀과 엑세스 AND함수 차이>


엑셀 

 엑세스

 =AND(조건1,조건2)

 조건1 AND 조건2









* LIKE

 이 뒤에 올 제시값을 포함하는가?

보통 *과 함께 써준다.


>=10

<=10

>10

<10

=10

<>10

LIKE 10 : 10을 포함하니?



김씨만 입력해 :

LEFT([성명],1)="김"

LIKE "김*"


준으로 끝나는 글자만 입력해 :

RIGHT([성명],1)="준"

LIKE "*준"


중간에 봉이 끼어 있어야 해 :

LIKE "봉" (X) : "봉"과 같으냐?라는 뜻이 되어버림

LIKE "*봉*" (O)



공백이 포함되게 해라 :

LIKE "* *"


공백이 포함되지 않게 해라 :

NOT LIKE "* *"


[질문]

NOT >=10 하면 <10 이 되는건가?

: ㅇㅇ 해보니까 그렇다



[질문]

LIKE "*@*" 인 경우 @만 써도 되나?

: 된다. *은 뭐가 와도 상관없음.

?인경우는 하나당 한자리가 반드시 와야 함.







* INSTR(필드,"찾을글자")

문자열의 위치를 주소로 반환한다

찾을 수 없을 때는 결과값이 0이 나온다


성명필드에서 공백이 없게해라

INSTR([성명]," ")=0


반드시 공백이 있게 해라

INSTR([성명]," ")<>0

INSTR([성명]," ")>0



'전자우편' 필드의 문자사이에는 공백을 입력할 수 없고, 반드시 @가 포함되도록 유효성 검사 규칙을 설정하시오

InStr([전자우편]," ")=0 And Like "*@*"

Not Like "* *" And INSTR([전자우편],"@")<>0







* 유효성 검사 텍스트

유효하지 않은 값이 입력되면 출력되는 메시지









<출제유형2번 풀기>

[질문] 입력마스크 VS 형식
8번 '과목코드'필드는 숫자 3자리 형태로 표시되도록 설정하시오'
에서 '입력마스크'에 000이라고 쓰면 감점되는지?
(정답은 형식 000)
: 조건에 '값이 1이면 001로 표시'라고 써 있으므로 반드시 형식을 이용하자


<입력마스크 VS 형식>
입력마스크에 000이라고 쓰면, 1은 아예 입력 불가
형식에 000이라고 쓰면 1 입력 시 자동으로 001로 입력됨