참고 . 컴 활 시험 에 주로 출제 되 는 속성 들 은 아래 4 개 임 . F i l t e r R ecordSourceRecordsetClone ADO 개체 조회 1 . Filter 및 FilterOn 속성 filter = 폼 , 보고서 , 테이블 , 쿼리 에서 조건 에 맞 는 레코드 만 추출 하 는 속성 where 절 에서 where 를 제외 한 이후 부분 만 입력 하 여 정의 filterOn = Filter 에 정의 된 조건 을 폼 이나 보고서 에 적용 할지 를 지정 . true ( - 1 , 예 ) : 개체 의 Filter 속성 을 적용 False ( 0 , 아니 오 ) : Filter 에 정의 된 조건 을 폼 이나 보고서 에 적용 할지 를 지정 . ( 기본 값 ) Filter 와 FilterOn 의 차이 . 예 ) 빵 을 만든다면 . . Filter => 빵틀 을 만들 고 , 재료 를 넣 어 놓 는다 ( 굽 는 것 만 남음 ) FilterOn => 필터 를 실행 한다는 것 . FilterOn = true 하 면 굽 어 ! ! 결국 필터 라는 것 은 원 하 는 것 을 필터 링 한다는 것 임 . 내 가 빵 만 을 보 겠 다 라는 필터링 인 것 임 . me 의 의미 . 현재 구문 이 실행 되 고 있 는 폼 을 의미 . 경우 에 따라서 필터 가 실행 되 어야 할 위치 가 애매 해 지 는 경우 가 있 는데 . . 필터 를 실행 하 는 폼 , 아니 만 상위 폼 에서 코딩 하 고 하위 폼 을 필터 링 할 것 인가 . .. 등등 그래서 필터링 이 되 어야 할 폼 을 지정 해 주 는 것 이 원칙 me 가 없 는 경우 는 커서 가 위치 한 폼 에서 필터링 이 됨 . ( VBA 구문 에서 진행 되 고 있 는 순서 에 맞 게 ) Me ( 현재 폼 의 ) . Filter ( 필터 속성 값 으로 한다 ) = " 제 품명 ="' & txt 제 품명 & ' "" ( 제 품명 필드 의 값 이 txt 제 품명 에 입력 된 값 과 같 은 것 의 . Me ( 현재 폼 개체 의 ) . FilterOn ( Filter 속성 에 정의 된 Filter 적용 or 부 적용 한다 ) = true ( 적용 한다 ) Me . FilterOn = false ( 리셋 효과 ) 2 . RecordSource 속성 . 테이블 , 쿼리 , SQL 문 등 의 데이터 를 폼 이나 보고서 의 데이터 원본 으로 지정 할 때 . 3 . RecordsetClone . FineFirst 속성 레코드 셋 Record setado 객체 중 하나 임 . 기본 테이블 이나 명령 실행 결과 로 얻 어 진 데이터 를 임시 로 저장 해 두 는 레코드 집합 . => 메모리 상 의 가상 테이블 , 사용 자 가 원 하 는 자 룔를 메모리 에 올려놓 은 후 여러 가지 작업 을 수행 . ( 기존 방법 보다 속도 가 빠르 다는 장점 ) RecordsetClone => 레코드 셋 을 복사 한다 . => 현재 레코드 셋 을 복사 한 개체 = 복사 된 레코드 셋 Me . RecordsetClone . FineFirst 조건 Me . RecordsetClone . FineFirst " 판매 번호 =" & txt 판매 번호 ==> 1 . 현재 레코드 셋 을 복사 한다 . ==> 2 . 복사 한 레코드 셋 에서 조건 에 맞 는 첫 번 째 레코드 로 이동 . ==> 2 . 복사 한 레코드 셋 에서 [ 판매 번호 ] 와 txt 판매 번호 가 같 은 레코드 중 First ( 1 번 째 ) 레코드 로 이동 . Bookmark 현재 의 레코드 를 유일 하 게 식별 할 수 있 는 표식 , 흔히 책갈피 라고 함 . 왜냐하면 , 레코드 셋 or 복사 된 레코드 셋 을 열 었 을 때 여러 개 의 레코드 가 존재 할 건데 . 레코드 가 여러 개 일지 라도 레코드 포인터 는 항상 1 개 만 을 가르키 기 때문 . Me . Bookmark = Me . RecordsetClone . Bookmark 현재 작업 대상 의 책갈피 = 현재 작업 대상 의 복사 된 레코드 셋 의 책갈피 즉 . 구문 에서 복사 한 레코드 셋 의 첫 번 째 행 ( 레코드 ) 에 레코드 포인트 가 위치 하 고 있 고 , 이 포인트 위치 가 Bookmark 임 . 복사 한 레코드 셋 의 책갈피 가 현재 레코드 셋 의 책갈피 가 되 는 것 임 . 4 . Ado 개체 ( 별도 의 게시 글 로 작성 해 둠 . 참고 할 것 ) Dim rs As ADODB . Recordset / / ADODB . Recordset 형식 의 rs 변수 선언 함 . ( rs 변수 를 recordset 형식 으로 지정 . ) Set rs = New ADODB . Recordset / / ADODB . Recordset 형식 의 변수 rs 에 임시 로 저장 할 레코드 셋 할 당 . ( recordset 객체 를 생성 해 rs 에 할당 ) DoCmd . OpenForm " 제품 정보 "// 제품 정보 라는 폼 을 염 . rs . ActiveConnect = CurrentProject . Connection / / rs 라는 레코드 셋 에 현재 데이터베이스 ( 현재 프로젝트 ) 연결 . ActiveConnect ==> 지정 한 개체 에 현재 속해 있 는 Connection 개체 임 . ( rs 레코드 셋 을 의미 ) CurrentProject . Connection ==> 현재 데이터베이스 의 ADO 연결 복사본 에 대한 참조 를 반환 . ==> 현재 DB ( 현재 프로젝트 ) 연결 을 => rs ( 레코드 셋 ) 의 ActiveConnect ( 연결 시키 는 객체 ) 에 입력 . 전 단계 에서 제품 정보 폼 을 오픈 했 기 에 현재 프로젝트 는 제품 정보 폼 에 관련 된 것 을 의미 하 는 것 같 음 . rs . Open " select * from 제품 별 판매 현황 where 판매 번호 =" & txt 판매 번호 / / 컨트롤 에 ( txt 판매 번호 ) 입력 된 값 이 제품 별 판매 현황 쿼리 의 필드 ( 판매 번호 ) 의 값 과 동일 하 면 , 그 값 을 rs 레코드 셋 에 할당 . Forms ! 제품 정보 . txt 판매 번호 = rs ! 판매 번호 / / rs 레코드 셋 의 할당 된 판매 번호 를 제품 정보 폼 의 txt 판매 번호 컨트롤 에 표시 함 . ...... rs . close / / rs 레코드 셋 을 종료 . 조 회식 에서 컨트롤 연결 ★★ 컨트롤 을 연결 할 때 , 분리 하 거나 연결 해야 함 . 지금 여기 서 설명 하 는 것 은 분리 하 는 경우 임 . ★★ 여기 내용 을 우선 이해 한 다음 에 . " 컨트롤 분리 및 연결 " 에 대한 별도 의 게시 글 참고 하 면 됨 . 1 . 문자 데이트 컨트롤 = " 수식 =" & "'" & 컨트롤 명 & "'" => " 수식 ='" & 컨트롤 명 ( 변수 ) "'" 2 . 숫자 컨트롤 = " 수식 =" & 컨트롤 명 => " 수식 =" & 컨트롤 명 ( 변수 ) 3 . 날짜 컨트롤 = " 수식 =" & "#" & 컨트롤 명 & "#" => " 수식 =#" & 컨트롤 명 "#" 4 . like 구문 ( 문자 데이터 컨트롤 만 가능 ) = Select * From 테이블 명 where 필드 like "*'" & 컨트롤 명 "'*" 문자열 연결 하 기 1 . 기본 편 문자열 ( 문자 로 된 열 ) 연결 = 문자열 을 "" 로 묶 고 각각 의 문자 를 & 로 연결 하 는 것 임 . 1 - 1 . 큰 따옴표 로 문자열 묶 기 " 문자열 " 1 - 2 . & ( 문자열 더하기 연산자 ) 사용 " 오늘 " & " 날씨 " = " 오늘 날씨 "" 100 " & " 23 " = " 10023 " -> 큰 따옴표 를 사용 했 기 에 문자 로 인식 하 는 것 임 . " 문자열 " & " 문자열 " ==> 문자열 은 "" 묶 어야 함 . 그리고 & 으로 연결 . 200 + 200 ==> 200 은 문자 가 아니 라 숫자 이 므로 "" 로 묶 지 않 음 . 2 . 수식 편 ( 조 회식 ( SQL ) 등 의 수식 에서 사용 할 때 . ) 위 1 . 기본 편 + 수식 에서 사용 하 는 규칙 적용 하 는 것 임 . => 수식 에서 문자 / 숫자 및 컨트롤 ( 변수 ) 사용 하 기 ( 프로시저 에서 의 SQL 사용 ) 2 - 1 . 큰 따옴표 로 수식 묶 기 프로시저 에서 SQL 을 사용 할 때 는 SQL 문 을 "" 로 묶 어서 사용 해야 함 . Me . Filter = " 수식 " 2 - 2 . 수식 안 에 문자열 이 있 을 때 문자열 을 묶 는 ""( 큰 따옴표 ) 가 겹치 므로 ''( 작은따옴표 ) 로 바꿔서 표현 해 줌 . SQL 문 안 에서 문자열 은 문자 값 을 나타냄 . Me . Filter = " 제 품명 =' 책상 '" 여기 서 제 품명 은 필드 명이 여서 작 은 따옴표 없이 그냥 사용 . 작 은 따옴표 가 없 으면 필드 명 으로 인식 함 . 2 - 3 . 수식 안 에 숫자 값 있 을 때 . 따옴표 없이 사용 하 면 됨 . Me . Filter = " 제품 번호 >= 1 " 여기 서 1 은 숫자 값 이 라서 그냥 사용 . 2 - 4 . 수식 안 에 컨트롤 사용 할 때 2 - 4 - 1 . 숫자 데이터 컨트롤 사용 할 때 . Me . Filter =" 제품 번호 >=" & txt 번호 2 - 4 - 2 . 문자 데이터 컨트롤 사용 할 때 . 2 - 4 - 3 . 문자 데이터 컨트롤 사용 할 때 . Me . RecordSource =" Select * From 테이블 where 필드 like " 키워드 ( 컨트롤 , 컨트롤 은 변수 이 기 도 함 ) " SQL 구문 Select * from 테이블 명 where 필드 명 like " 키워드 " ( like 구문 은 문자 데이터 컨트롤 에서 만 사용 가능 ) 필드 명 안 에서 키워드 를 검색 할 때 , 전체 데이터 가 일치 하 지 않 고 , 일부 만 일치 되 는 모든 데이터 를 검색 하 는 것 임 . 예 를 들 어 Select * from 테이블 where 필드 like " 날씨 " 일 때 . 해당 필드 의 레코드 중 에 날씨 키워드 가 있 는 레코드 는 전부 검색 되 는 것 임 . => 어제 날씨 오늘 날씨 , 10 월 날씨 만약 like 구문 이 없 다면 , 날씨 만 있 는 것 을 찾 는 것 임 . 어쩌면 확장 검색 이 라고 여기 면 될 듯 . Me . RecordSource =" Select * From 테이블 명 where 필드 명 like " & "'" & txt 문자 컨트롤 & "'" SQL 구문 Select * from 테이블 명 where 조건 " Select * from tbname where fieldname = " & txt 수량 tbname 테이블 의 fielname 필드 의 값 과 txt 수량 의 값 이 서로 일치 하 는 값 을 모든 필드 에서 찾 아라 AND 연산자 사용 판매량 이 txt 판매량 이상 이 고 txt 판매량 컨트롤 에 숫자 200 넣 고 , 판매량 과 비교 하 는 것 이 기 때문 에 . . 판매량 >= txt 판매량 ( 200 ) 이 되 는 것 임 . 1 . [ 판매량 ] 이 txt 판매량 >= 2002 . [ 제 품명 ] 이 txt 제 품명 =' 책상 ' Filter 사용 시 Me . Filter =" 판매량 >=" & txt 판매량 Me . Filter =" 제 품명 Like " & "*'" & txt 제 품명 & "*'"==> Me . Filter =" 판매량 >=" & txt 판매량 & " And 제품 명 Like " & "'*" & txt 제 품명 & "*'" RecordSource 사용 시 . Me . RecordSource =" Select * From 제품 별 판매 현황 where 판매량 >=" & txt 판매량 Me . RecordSource =" Select * From 제품 별 판매 현황 where 제품 명 Like " & "'*" & txt 제 품명 & "*'"==> " Select * Frome 제품 별 판매 현황 Where 판매량 >=" & txt 판매량 & " And 제품 명 Like '*" & txt 제 품명 & "*'"[ 출처 ] 엑세스 2 . 조회 및 컨트롤 연결 방법 | 작성자 상주 곶감 공유 하 기 글 요소