컴활

컴활 엑세스(ACCESS) 2016 #1.엑세스란, 기본키 외래키, 입력마스크, 유효성검사규칙, InStr 함수

peachystal 2021. 6. 3. 05:15

 

1. ACCESS 란?

쿼리 : 가공데이터
엑셀의 고급필터, 피벗테이블
조건해서 원하는것만 뽑아놓은 데이터

(화면용)
화면에서 보기쉽게 만드는것

보고서(출력용)
화면에서 보기쉽게 만드는것
합계나오는 수식 걸어줌,,,


테이블 : 표(원본데이터를 표 형태로 해둠)
필드 : 열
레코드 : 행

 

* 단원소개

1-1 테이블/필드설정
2-1 폼/컨트롤 설정
3-1 보고서/컨트롤설정
------------------------------------
1-2, 1-3 조건부서식/ 관계설정/ 외부데이터 가져오기 / 조회설정
------------------------------------
조회검색
2-2. 2-3
3-2
유형 3가지 - 프로시저, 컨트롤생성+매크로, 매크로
------------------------------------
4-1~4 쿼리(1~1개정도 버린다)
- 선택쿼리/매개변수쿼리 + 테이블생성(고급필터 비슷)
- 크로스탭 (= 피벗테이블 비슷)
- 프로시저

 

 

1-1 테이블/필드설정

-필드설정 (옵션설정)
데이터 종류
크기
필수값인지 아닌지
중복데이터 가능여부

기본키와 외래키
형식
입력마스크
기본키
유효성검사규칙
유효성검사텍스트
필수
인덱스
IME모드


1. 기본키(갑)와 외래키(을)
지정할 레코드 선택 후 우클릭, 기본키 지정
* 두개 이상의 레코드 선택시 Ctrl 누른 상태로 지정해야함

 

*사원   나이  기본급   부서코드 > 부서코드 중복 되니까 외래키(을) 다(∞)
이나라   37   200000   개발부

*부서코드 부서명 > 부서코드 중복 안되니까 1> 기본키(갑) 1
   a001    개발부
   a002    사업부

기본개념 : 부서에 있는 데이터 끌어다 쓰는것

별개의 내용이지만 부서코드로 연결
기본키의 부서코드는 중복 안되니까 1이고,
외래키의 부서코드는 중복가능하니까 다(∞)


2. 입력마스크 - 틀/ 숫자,문자,자리수
- 어떤 데이터가 들어가야하는지 틀을 만든다.(틀이 안맞으면 안들어감)
- 데이터 입력의 정확성을 높이기 위해 씀,
- 오타 방지를 위함

## 코드
숫자대신하는 코드
0 - 필수 - 공백X, 기호X , 0~9까지 입력되도록 = 숫자 0 쓰라는 말
9 - 선택 - 공백O, 기호X
# - 선택 - 공백O, 기호O(+,-)

문자대신하는 코드
L - 필수
? - 선택

대문자로 변환 : > (크다기호)
소문자로 변환 : < (작다기호)

예) '코드' 필드에는 숫자 4자와 영문대문자 1자가 필수 입력되도록 설정하시오 : >(대문자)0000(숫자4개)L

* 만약 영문 대문자 2개, -문자(빼기문자)와 숫자 3자리 필수 라면?  :    >LL-000

대문자가 2~4자리 들어갈수 있도록 입력마스크 설정해라 : >LL??
최소 문자 2개는 필수니까 LL, 3,4자리는 들어갈 수도 있고 아닐 수도 있으니까(선택)

* 필수로 입력해야하는지, 선택입력가능한지에 따라 입력마스크의 문자가 달라짐

예) 입력마스크 기호는 골뱅이@ 표시
기호를 실제 데이터에 같이 저장한다면 > 0
순수하게 데이터만 저장한다면 > " " 공백

## 입력포맷 : 코드; 기호저장여부 0 or 공백 ; 입력마스크 기호
>0000-L;0 ;@ 1234-A (기호저장)
>0000-L; ; @ 1234A (데이터만 저장)

최신기출 3회 4-195p
반드시 앞의 두자리는 숫자, 세번째 자리는 한글, 뒤의 네자리는 숫자로 입력되어야하는 입력마스크를 설정하시오 > 입력마스크 : 00L0000
0~9까지 입력되도록 설정 = 숫자 0 쓰라는 말


 

3. 유효성 검사 규칙
- 들어올 수 있는 값 자체를 제한
- 조건을 걸어서 합당한 데이터만 입력되도록 하는것

ㄱ. 숫자구간 : 0~100 숫자만
1) >=0 and <=100 - 함수 섞일 경우
[학번] >=0 and [학번] <=100
Left([학번],3)>=0 and Left([학번],3) <=100
[대상], 함수, 특정필드명 들어갈수 있음

2) Between 0 and 100 - 함수사용 어려움
문자 : ~~~ 내용을 포함하는
A문자를 포함하는
* 만능문자 : 뭐가오든 상관없음
Like "*A*" A를 포함하는
Like "A*" A로 시작하는: A뒤에는 뭐가오든 다된다
Like "*A" A로 끝나는

 

ㄱ- 예) 보호자연락처 필드의 왼쪽 3글자는 0부터 100 사이의 숫자만 입력되도록 설정하시오. + 유효하지 않은 값이 입력되면 '국번이 불분명합니다.'라고 메시지를 출력할 것

 

ㄴ. ~ 포함하지 않는 / 포함하도록
1) NOT Like "*A*" A문자를 포함하지 않는
   NOT Like "* *" 공백을 포함하지 않는

2) @ 포함하도록
Like *@*

ㄴ-예) '성명'필드의 이름사이에 공백이 입력되지 않도록 유효성 검사 규칙을 설정하시오.

 

ㄷ. inStr([필드명],"찾을문자")
- 찾을문자가 몇번째 위치에 있는지 위치번호를 돌려줌

inStr([전자우편]," ")=0
-공백을 찾았는데 없으면 0 나옴 .. 0과 같냐? = 공백이 없지?

 = NOT Like "* *"

 

예) '전자우편' 필드의 문자사이에는 공백을 입력할 수 없고, 반드시 '@'가 포함되도록 유효성검사규칙을 설정하시오.+유효하지않은 값이 입력되면 '올바른 형식으로 입력하세요.' 라고 메시지를 출력할 것

> inStr([전자우편]," ")=0 And like "*@*"

 

ㄹ. ##문자
1) "A" OR "B" OR "C" A,B,C 중에서만 입력되도록

2) IN("A","B","C") A,B,C만 입력되도록 / *NOT IN(("A","B","C") A,B,C 제외하고

3) 글자수 6개 - Len(셀주소or[필드명])=6 

ㅁ. 함수

              엑셀   엑세스  프로시저
현재날짜  Today  Date()     Date
현재시간  Now()  Time()     Time
날짜+시간 Now()  Now()    Now()

 

4. 그외

두가지 값 중 하나만 입력될 수 있도록 : 데이터형식- Yes/No
"숫자 3자리 형태로 표시되도록 설정" : 형식
"새로운 레코드를 추가하면 자동으로" : 기본키
"반드시 값이 입력되도록 설정" : 필수
"중복가능한 인덱스를 설정하시오" : 인덱스 속성 - 예(중복가능)/ 예(중복불가능) / 아니오
"영문입력상태가 되도록 설정하시오" : IME모드 - 영숫자반자(표준)
"필드이름은 그대로 두고, 레이블만 ~로 표시되도록 설정": 캡션