엑세스조회 (200192 Bytes)

Download Report

Transcript 엑세스조회 (200192 Bytes)

[조회기능에
대하여
by 컴활안]
1.해당 텍스트상자에 값을 집어넣고
2.조회(검색)버튼을 누르면
3.텍스트상자에
바운드된 레코드원본의
필드에서 일치하는 값을
찾아 표시한다.
직원테이블(레코드원본)
직원
전화번호
김영업
010-222-3333
[조건작성법]
검색(조회)단추가 해당 원본의 필드 값을 읽어오려면 조건을
작성해 줘야겠지.(txt제품명의 값이 제품명필드와 같다면)
결국 cmb제품명찾기 버튼을 누르면, txt제품명 에 입력된것과 같은 제품명의
레코드가 아래에 출력되어달라는 거지.
Cmb제품명찾기 버튼에 이벤트프로시저를
작성하는 거야.
1.넣고
Txt제품명
2.클릭
클릭하면 의 이벤트 프로시저
현재 명령버튼을
요사이에 조건식을 작성하면 되는거임
조회에 사용되는 속성은 대표적으로 3가지 이다.
1.
Me.filter=조건식
Me.filteron=True
2.
Me.RecordsetClone.Findfirst 조건식
Me.Bookmark=Me.RecordsetClone.Bookmark
3.
Me.RecordSource=Select 문 Where 조건식
닥외!!!! 닥외!!!! 닥외!!!!
조건식을 작성하는 법
1.현재 조건에 사용될 필드의 데이터 형식을 먼저 파악한다.
(즉,txt박스에 들어가는 값의 데이터형식이겠지요)
2.문제에서는 항상 컨트롤이 먼저 언급되고 후에 필드가 언급되겠지만, 조건식
작성에서는 반드시 필드=컨트롤의 순으로 나열하셔야 합니다.
1)필드값이 숫자일 경우(가장 쉽다)
“나이=”& txt나이
나이= & txt나이
2)필드값이 문자일 경우( ‘ 때문에 헛갈리니 조심하세요. 순서필독!)
품목=txt품목
① :먼저 필드명=컨트롤의 형식으로 조건을 작성
품목=‘txt품목’
②:컨트롤에 들어갈 값이 문자이므로 ‘ 로 컨트롤을 묶어주세요 “는 다른 용도로 쓰이거등요.
“
품목=‘
”
txt품목’ ③:요부분이 좀 헛갈리실 텐데 “로 컨트롤과 나머지부분을 분리해 주신다고 생각하시면 쉬워용
“ 품목=‘ ”
txt품목 “ ’ ”
“품목=‘ ”
&
txt품목
④: 뒤에 남는 홑따옴표를 “”로 묶어서 분리해 주시면 되용
& “’”⑤: 마지막입니다! 현재 컨트롤 앞뒤에 & 연산자를 넣어주시고 앞뒤로
한 칸 띄우시면 끝~~~~
2)필드값에 *조건을 쓸경우 (문자)
품목
Like “김*” 이해하시죠?
Like가 삽입되고 컨트롤 앞뒤에*을 붙인 후 똑같이 처리합니다.
Like ‘*txt품목*’
“품목 Like ‘*”txt품목 “*’”
“품목 Like ‘*” &
txt품목
날짜=#txt날짜#
날짜데이터가 표시되는 컨트롤은
#으로 묶어준답니다.
컨트롤을 “ “로 분리해주시고, 마지막
#을 “ “로 묶어주시고~
“날짜=#”txt날짜 “#”
txt날짜
컨트롤을 “ “로 분리해주시고, 마지막
*을 “ “로 묶어주시고~
앞뒤에 &연산자를 넣어서 연결한
& “*’” 컨트롤
후 앞뒤를 한칸씩 띄워주세요~
3)필드값이 날짜일때의 조건작성
“날짜=#” &
당연히 문자값이 들어가니까.
‘ ’로 묶어 줘야죠..
& “#”
컨트롤 앞뒤에 &연산자를 넣어서 연결한
후 앞뒤를 한칸씩 띄워주세요~
Filter와 FilterOn 속성을 이용한 조회 프로시저의 예
Me.Filter= 나이=txt나이 현재폼의 필터조건은 ~ 입니다.
Me.Filteron=True
현재폼의 필터조건을 사용합니다.
Me.Filter= “품목 Like ‘*” & txt품목 & “*’”
Me.Filteron=True
Me.Filter= “날짜=#” & txt날짜 & “#”
Me.Filteron=True
아주 복잡하게 여겨질 수 있지만 순서를 잡으시고,원리를 이해하시면
생각보다 쉽게 작성하실 수 있으세요.
만약 포기하시면…. 1급 접으세요 ㅠ
Recordsource속성을 이용한 조회 프로시저의 예
Recordsource=select * from 테이블 where 조건식 (sql을 사용)
조건식의 표현법은 똑같습니다.
ME.Recordsource= select * from 제품
where 수량= txt수량
수량값이 숫자이므로 매우 편안합니다.
ME.Recordsource= “select * from 제품
where 제품명=‘” & txt제품명 & “ ’ ”
문자이므로 ‘규칙을 따릅니다. 속성은 달라져도 조건식의 표현은 바뀌지 않습니다.
ME.Recordsource= “select * from 제품
where 구입일=#” & txt구입일 & “ # ”
날짜이므로 #규칙을 따릅니다.
ME.Recordsource= “select * from 제품
where 제품명 Like‘*” & txt제품명 & “*’ ”
와일드카드 조건이므로 Like규칙을 따릅니다.
Recordsetclone, findfirst , Bookmark속성을 이용한 조회
조건식의 표현법은 똑같습니다.
Me.recordsetclone.findfirst 조건식 : 현재 레코드원본의 사본에서 조건건에 맞는 첫번째 레코드를 찾는다.
Me.bookmark=Me.recordsetclone.bookmark : 현재 레코드원본의 사본의 책갈피정보를 현재폼의 책갈피로
Me.Recordsetclone.findfirst “ 제품명=‘” & txt제품명 & “ ’ ”
Me.Bookmark=Me.Recordsetclone.Bookmark
Me.Recordsetclone.findfirst “구입일=#” & txt구입일 & “ # ”
Me.Bookmark=Me.Recordsetclone.Bookmark
Me.Recordsetclone.findfirst “제품명 Like‘*” & txt제품명 & “*’ ”
Me.Bookmark=Me.Recordsetclone.Bookmark
결론! Filter로 조회하든, Recordsource로 조회하든, Recordsetclone,findfirst,Bookmark로 조회하든
여러분의 조건식표현 4개만 할 수 있다면 조회는 여러분에게 고통이 아닙니다!!!