드로우홀릭 더베이직
안녕하세요
현재 엑세스를 공부하며 조회 프로그램을 만들오 있습니다.
직장인을 위한 실무 액세서를 보면 많은 도움이 되고 있습니다.
공부하던중 조회 폼에 대하여 궁금한점이 있어 문의를 드립니다
책에 나온 경우 모든 컨트롤 조건은 And 조건으로 하위 폼에 적용되는 것으로 보입니다.
조회 컨트롤 설정
obj판매일.Init_Between "판매일", enmSearchDataType_Date, txt판매일S, txt판매일E
obj품목코드.Init_Equal "품목코드", enmSearchDataType_Text, cbo품목코드
obj수량.Init_Between "수량", enmSearchDataType_Number, txt수량S, txt수량E
)
위에서 보면 판메일, 품목코드, 수량이 And 조건입니다.
제가 알고 싶은 것은 And 와 or 조건이 복합적으로 필요한 경우 검색 버튼의 VBA 프로그램을 어떻게 해야하는지 궁금합니다
예를 들면 검색하고 싶은 조건은 아래와 같습니다.
조건 1) txt시작일, txt종료일
조건 2-1) txt제품1, txt지역1
조건 2-2) txt제품2, txt지역2
조건 2-3) txt제품3, txt지역3
조건 2-1) 2-2), 2-3)은 or 조건으로 검색결과를 내고 싶습니다. 이경우 버튼의 VBA프로그램을 어떻해야 할지 알고싶습니다.
먼저 감사드립니다.
네, 도움이 되고 있으시다니 다행입니다.
좋은 질문 주셨는데요.. 결론부터 말씀드리자면, OR 조건을 포함하는 것은 매우 힘든 일이 됩니다.
일단 조회 화면 구성부터 생각해 봐야 합니다.
어떨 때는 AND 조건이고, 어떨 때는 OR 조건일 것입니다.
항상 OR조건만 필요한 것은 아니지요?
그렇다면, 액세스 폼 필터처럼.. 조회 조건을 입력하는 '페이지'가 여러 페이지가 되어야 합니다.
한 페이지 안에서는 모두 AND 조건이고, 각 페이지는 OR 조건인 것이지요.
그래서, 만약 미르님께서 정의한 대로 조건을 만들려면, '조회 모듈'을 사용할 수 없습니다.
'조회 모듈'은 모두 AND 조건으로 이어지는 상황을 상정해서 만든 것이기 때문입니다.
조회 모듈을 사용하지 않고 만드는 방법에 대해서 말씀드리겠습니다.
지면관계상 핵심 내용만 설명해 드리겠으니, 필요한 것은 따로 질문해 주시기 바랍니다.
일단, 조회 폼을 만들어 보십시오.
그리고 시작일, 종료일, 제품1~3, 지역1~3 까지의 컨트롤을 배치하시고..
'조회' 버튼의 'Click' 이벤트에 다음과 유사한 코드를 입력하시면 됩니다.
조회결과폼_하위폼_컨트롤이름.Form.RecordSource="조건식"
문제는 이 '조건식'이 매우 복잡할 수 있다는 겁니다.
어떨 때는 제품1, 지역1만 입력될 수 있고..
어떨 때는 제품1~2, 지역1~2 까지만 입력될 수 있겠죠?
이런 것을 해결해 주는 것이 조회 모듈이긴 합니다.
어쨌든, 제품1~2, 지역1~2까지 모두 포함한다면, 다음과 같은 조건식이 만들어져야 합니다.
(판매일 BETWEEN #시작일_값# AND #종료일_값#) AND (((제품=txt제품1_값) AND (지역=txt지역1_값)) OR ((제품=txt제품2_값) AND (지역=txt지역2_값)))
반면, 제품1, 지역1만 입력된다면 다음과 같은 조건식이 만들어져야 합니다.
(판매일 BETWEEN #시작일_값# AND #종료일_값#) AND (((제품=txt제품1_값) AND (지역=txt지역1_값)))
이런 처리를 모두 포함하여 '조건식'에 입력되도록 해 주면 됩니다.
무척 어렵지요?
그래서 매우 어렵다고 말씀 드린 겁니다.
시도해 보십시오!