드로우홀릭 더베이직

직장인을 위한 실무 엑세서 - 조회 폼 질문

2020.05.21 01:06:35 조회 수 2297 추천 수 0

안녕하세요 


현재 엑세스를 공부하며 조회 프로그램을 만들오 있습니다. 

직장인을 위한 실무 액세서를 보면 많은 도움이 되고 있습니다. 


공부하던중 조회 폼에 대하여 궁금한점이 있어 문의를 드립니다 

책에 나온 경우 모든 컨트롤 조건은 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프로그램을 어떻해야 할지 알고싶습니다. 

먼저 감사드립니다.  


profile

돌직구

2020.05.21 14:13:59
*.165.242.137

네, 도움이 되고 있으시다니 다행입니다.


좋은 질문 주셨는데요.. 결론부터 말씀드리자면, 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_값)))


이런 처리를 모두 포함하여 '조건식'에 입력되도록 해 주면 됩니다.


무척 어렵지요?

그래서 매우 어렵다고 말씀 드린 겁니다.


시도해 보십시오!

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31986
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 28136
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 23157


  주소  12925 경기도 하남시 미사대로 540, B동 917호 (현대지식산업센터 한강미사2차) ㈜팀데이터이십일  |  고객센터 전화번호  02-467-2998  |  대표이사  염기웅
개인정보관리책임자  염기웅 (ml_privacy@td21.com)  |  사업자등록번호  120-86-79260  |  통신판매업신고번호  제 2021-경기하남-1166 호  [사업자 정보 확인]
  TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.