책 내용 질문하기
where 조건문 입력시 매크로와 이벤트프로시저의 차이점
도서
[2012] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2007 사용자용)
페이지
조회수
178
작성일
2012-08-29
작성자
첨부파일

바로질문들어가겟습니다

시나공 책 엑세스편

p200의 3번 문제의 해설을 보면

where 조건문에서

매크로의경우

[제품명]=[forms]![제품별조회]![txt제품명]

요렇게 입력합니다

이 이유가 보고서의 제품명 필드 입장에서 제품별조회 폼에 있는 txt 제품명이 외부에서 온 데이터기 때문에

위치를 지정해주는 것 맞지요?

근데 해설을 보면 이벤트 프로시저를 작성할 시

컨트룰의 해당위치를 지정하는 것도 아니고

바로

"제품명 ='" & txt제품명 & "'"

바로 이렇게 입력합니다 제가 입력해야할 문구로 생각했던 건

"제품명 ='" & [forms]![제품별조회]![txt제품명] & "'"

요거엿거든요

그래서 이벤트 프로시저는 해당위치를 지정하지 않는구나 대신 홑따옴표를 써주는구나라고

이해했었습니다

바로 위의 같은 페이지의 2번문제의 해설 같은 경우도

매크로는 where 조건문에서 컨트룰의 해당위치를 지정해주었지만

이벤트 프로시저에서는 홑따옴표만 하지 않았습니까?

그래서 당근 이렇게 이해하고 넘어갔는데

p273 기본모의고사 1회 문제 3 조회 및 출력기능 구현에서 3번문제에

입력해야 하는 내용은 다 넘어가고요

docmd.openreport "회원별사용현황", acviewpreview, ,

그다음 나오는 where 조건문 이거 분명 이벤트 프로시저죠?

그래서 전 당연히

"회원성명 ='" & lst회원정보 & "'"

로 입력했고

그밑에 같은 해당사항에도

"강사코드 ='" & lst강사정보 & "'"

요렇게 입력했습니다.

근데 답은 매크로에서 써야하는 형식으로 알고 있었떤

[forms]![~~~]![~~~]

요런 형식으로 나온거있죠...

p200 3번문제를 보면 제품별 납품 현황 보고서에 있는 제품명을 기준으로

txt제품명은 납품 현황 제품별 납품 현황 보고서에 있는 것이 아니라

제품별조회 폼에 있는 것이기 때문에 p273의 3번문제처럼

[forms]![~~~~]![~~~] 요렇게 써주는게 맞지않은가요?

where 조건문 쓸대 문자열은 어떻게 쓰고 숫자열 내지 날짜는 어떻게 쓰는지는

시나공책의 자세한 설명으로 이해했습니다

where 조건문 작성시 뭔가 원리를 하나 제대로 잡고 있으면 어떤 형태로 변형되든

문제에서 요구하는대로 알아서 적용할 수 있을 것 같은데

약간 헷갈리네요

어쩔때는 그냥 쓰고 어쩔때는 컨트룰의 해당 위치를 지정하고

매크로와 이벤트 프로시저 의 해당위치컨트룰지정의 유무와

이벤트 프로시저끼리의 해당위치컨트룰지정의 유무에 대해서

일목요연한 설명을 듣고 싶습니다

제가 아직 모르는게 많아 질문이 참 미숙하네요

하지만 이 글을 읽으시는 분께서는 제 질문이 무엇인지도 알고 있고 더 많은 것을 보시고

답해주시는 분이라는 것을 믿습니다

방황하고 있는 저에게 등대의 빛을 비춰주시리라 믿습니다 ^^ !

답변
2012-08-29 11:35:17

쉽게 설명하자면

현재 실행중인 폼에있는 컨트롤과 현재 폼의 레코드 원본의 필드를 비교할때는

"제품명 ='" & txt제품명 & "'"

과 같이 사용하고

현재 실행중인 폼의 레코드 원본의 필드와

다른 폼에 있는 컨트롤을 비교할때는

[제품명]=[forms]![제품별조회]![txt제품명]

으로 사용하는 것입니다.

그리고 매크로 에서 사용할때는 항상

[제품명]=[forms]![제품별조회]![txt제품명]

으로 사용하는 것이죠.

만약 txt제품명 컨트롤이 제품 폼에 있고

제품추가 폼의 제품명과 비교하여 사용해야 하는 경우는

[제품명]=[forms]![제품별조회]![txt제품명]

로 사용하고

제품 폼에서 조회하는 내용에는

"제품명 ='" & txt제품명 & "'"

와 같이 사용하시면 됩니다.

간혹 이경우에도

[제품명]=[forms]![제품별조회]![txt제품명]

으로 사용해도 결과가 나오는 경우도 있으므로

정확한 결과가 나오는 것을 사용하시면 되겠습니다.

좋은 하루 되세요.

"
  • *
    2012-08-29 11:35:17

    쉽게 설명하자면

    현재 실행중인 폼에있는 컨트롤과 현재 폼의 레코드 원본의 필드를 비교할때는

    "제품명 ='" & txt제품명 & "'"

    과 같이 사용하고

    현재 실행중인 폼의 레코드 원본의 필드와

    다른 폼에 있는 컨트롤을 비교할때는

    [제품명]=[forms]![제품별조회]![txt제품명]

    으로 사용하는 것입니다.

    그리고 매크로 에서 사용할때는 항상

    [제품명]=[forms]![제품별조회]![txt제품명]

    으로 사용하는 것이죠.

    만약 txt제품명 컨트롤이 제품 폼에 있고

    제품추가 폼의 제품명과 비교하여 사용해야 하는 경우는

    [제품명]=[forms]![제품별조회]![txt제품명]

    로 사용하고

    제품 폼에서 조회하는 내용에는

    "제품명 ='" & txt제품명 & "'"

    와 같이 사용하시면 됩니다.

    간혹 이경우에도

    [제품명]=[forms]![제품별조회]![txt제품명]

    으로 사용해도 결과가 나오는 경우도 있으므로

    정확한 결과가 나오는 것을 사용하시면 되겠습니다.

    좋은 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.