드로우홀릭 더베이직

VBA를 이용한 식 계산

2017.09.14 11:47:40 조회 수 5684 추천 수 0
안녕하세요.
액세스로 인력관리 프로그램을 만들고 있는 직장인입니다.
그동안 엑셀로는 구현하기 힘들었던 부분들이 많았는데, 저자님 도서 덕분에 하나둘씩 풀어 가고 있습니다.
많은 도움을 주셔서 감사합니다.
프로그램을 만들면서 궁금한 점이 있어서 질문합니다.

1. 인력관리 대상은 감리원으로, 다음과 같이 개인마다 경력 사항이 다양합니다.

직무분야 : 건축, 토목, 기계, 전기, 통신, 소방, 조경
공사종류 : 공동주택, 문화 및 집회시설, 교육연구시설, 업무시설, 교정 및 군사시설 등
담당업무 : 설계, 시공, 감리(건축법), 감리(주택법), 건설사업관리(시공단계), 건설사업관리(감독권한대행) 등
참여일 : 참여시작일~참여종료일

2. 건설공사 용역을 수주하기 위해서는 발주처에서 지정하는 기준을 충족하는 감리원을 선정해야 합니다.

예를 들어, A감리원이 B공사에 100일 동안 참여하였지만, 경력 사항이 아래의 조건과 같다면 발주처에서는 A감리원의 경력을 80일로 인정합니다.

직무분야 : 건축(1), 토목(2), 기계(3)
공사종류a : 공동주택(02)
공사종류b : 아파트(0201)
담당업무a : 설계(01)
담당업무b ; 사업책임기술자(0101), 분야별책임기술자(0102), 참여기술자(0103)
경력일 환산비 : 80%

IIf(([직원]![직무분야] In ("1","2","3")) And ([q참여일]![공사종류b]="0201") And ([q참여일]![담당업무b] In("0101","0102","0103")),0.8,0)

<그림1 - 쿼리 디자인 구성>
질문-이미지-01.png

<그림2 - 환산비 식 작성>
질문-이미지-02.png

3. 문제는 각각의 사업마다 위와 같은 조건이 약 20개 정도 있습니다.
쿼리-식 작성기에서 IIf 식을 반복해서 처리할 수 있지만, 조건이 너무 많은 관계로 인지하기가 힘듭니다.
그리고 추후 기준 변경 시 수정 작업이 다소 힘들 것으로 예상합니다.

4. 쿼리-식 작성기가 아닌 VBA 편집기에서 수많고 다양한 조건을 모듈로 작성하여 계산할 수 있을까요?
VBA 편집기에서는 행 구분과 주석을 추가할 수 있어서 검토 및 수정이 용이하여 사용성이 뛰어날 것 같습니다.
어떤 식으로 접근해야 하는지 고견 부탁드립니다.

감사합니다.


profile

윈드님

2017.09.18 10:52:34
*.149.161.117

안녕하세요, 


제가 보기엔 위 같은 작업을 위해 쿼리에서 복잡하게 중첩된 IF 문이나, VBA를 사용해서 적용하는 것은 매우 힘든 작업이 될 것 같습니다.  일단 구현도 힘드실테고, 추후 변경사항이 생기면 변경하는것도 힘드 실 것 같네요. 

경력인정일수를 테이블로 미리 정의 해 놓고 이 테이블과 조인하여 일자만 계산 시키는 것이 좋을 것 같습니다.

Sample.jpg

위 그림처럼 사업별/직무별/공사별/업무별  경력일 환산비 표와 조인하여 계산을 시키면 간단하게 해결 될 것 같습니다.

추후 환산비가 변경되어도 해당 테이블의 환산비만 변경 해 주면 간단하게 해결되는 일입니다.


첨부
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31939
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 28070
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 23135
380 무따2010 탭 컨트롤 안에 하위 폼 넣기 6 클로이 2020-04-28 5506
379 입력폼에서 작성자/작성일시 등의 필드 처리 1 클로이 2020-04-28 2507
378 강의 문의 겨루기 2020-04-01 454
377 ID와 암호 기반의 로그인 기능 클로이 2020-03-31 273
376 관계설정시 1 또는 무한대 표시가 안되네요. 3 클로이 2020-03-26 1533
375 직장인을 위한 실무 액세스 링크 문의 sdfawe 2020-03-02 299
374 [직장인을 위한 실무활용 엑세스] 메모장 한글 깨짐 file 1 전승진 2020-03-01 11300
373 책을 보다가 어떻게 궁금증이 하나 생겼는데 시도해보니 잘 안되서요.(급여대장/소득세계산) 3 ditto 2020-02-24 448
372 코드북 활용에 대한 질문입니다. 10 클로이 2020-02-23 9614
371 액세스 텍스트 연결방법과 관련하여 질문 드립니다. 2 broadside 2020-02-21 3725
370 콤보상자 단어 검색 문의 file 4 액알못 2020-02-17 9983
369 신규등록 코드 및 팝업 질문 file 액알못 2020-02-14 11661
368 입문자의 초보질문입니다 4 소목동 2020-02-12 5596
367 비슷한 단어 찾기 코드좀 알려주세요 4 액알못 2020-02-09 633
366 쿼리 구성방법 질문드려요 1 broadside 2020-02-03 423
365 쿼리 행간 계산 문의 file 5 라키7 2020-01-15 12694
364 튜터링 서비스 문의 1 sdifejidfieji 2020-01-06 497
363 Data 형태로 저장된 문장과 단어의 결합 2 라키7 2020-01-02 286
362 ㅎㅎ 질문이 끝이 없네요. 2 라키7 2019-12-28 1275
361 직장 프로그램 요구사항 명세서 만들면서 도움요청 1 엑세스00 2019-12-27 649


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