PROGRAMMING WORKSHOP

화일관리도구 |

개요

질문하였던 내용중에 억세스로 만든 화일관리도구를 어떻게
엑셀로 좀 만들수 없냐고 하는 요청이 있었다
억세스는 뭔가 좀 번거롭고 , 눈에 익숙한 엑셀화일로 처리하고 싶은 것이다
엑셀과 억세스는 어떻게 다를까?
우선 억세스는 데이타가 보안이 엑셀에 비하여 안정적이다
데이타테이블은 억지로 망가뜨리려고 하지 않는 다면
숨겨져있다고 보아도 되지만 ,엑셀은 시트상에 널려 있다 보니
그냥 손으로 지워도 그만이다
그런 약점만 스스로 알고 관리한다면 엑셀로 하여도 아무 지장이 없을 것이다
또한 큰 조직에서 방대한 화일을 관리한다면 또한 데이타베이스로
하여야 하겠지만, 엑셀로 관리할만한 작은 시스템에서는
거창한 것이 또한 필요 없을 것이다
최대한 시트의 보안을 지켜가면서 하는 방법을 찾아가면서 해보자

화일의 관리는 제각각일 것이다
프로젝트별로 관리를 하고 싶기도 하고
업무기능별로 관리를 하고 싶기도 하고
각부서나 사용자의 구성능력이나 안목에 따라서 달라질 것이다
진행하면서 질문도 하시고, 또 추가할 것이 있면 추가요청하시면서
가도록 하자
우선 중요한 것은 화일을 그룹별로 관리하여야 할 것이니 항목정보를
사용자가 입력하는 것이 중요할 것이다

항목관리

아래와 같이 항목입력도구를 만들어 보자
물론 만들면서 수정하고 추가하고 그러면서 갈 것이다
각자 만들어 보시면서 흥미를 느끼시기 바란다



항목..이것이 무엇을 의미하는 가?? 예를 들어서 우노사이트의 화일을 관리하고 싶다면 항목 Tree를 아래와 같이 하면 될 것이다

programming-workshop
 |__braingTraining
   |__각자 구분하기 좋은 또다른 항목
   |__.....
 |__solutionFiles
   |__.....
   |__.....
 |__others..
   |__.....
uno_weekly
 |__uno_zen
   |__.....
 |__frontPage
   |__.....
 |__VB.Net
   |__....
   |__....
 |__Access
   |__....
 |__BabySeries
   |__....
 |__vba_programming Basic
   |__....
 |__QandA
   |__chart
   |__pivottable
  

위와 같은 식으로 업무상의 A프로젝트, B프로젝트로 할수도 있을 것이고
또다른 분류방식으로 회계관련,재무관련,영업관련등으로 할수도 있을 것이고
다양한 방식으로 할수 있을 것이다
아무튼 항목관리를 하여야 할 것이고, 항목밑으로는 화일의 정보가 연결되어야 할것이다
우선 하여야 할 것은 항목의 관리를 하여야 할 것이고, 항목목록을 담아놓을
테이블이 필요할 것이다
아래의 그림과 같이 항목테이블에 항목이 저장되어있었다면
UserForm이 열리면서 이 테이블의 내용을 읽어 들여 사용자가 UserForm상에서
보아야 할 것이다
이때 항목은 부모와 자식관계를 유지하고 있게 되어 있다
A항목밑에 B가 있고 B 항목밑에 C가 있고, 이런 식으로 항목간의
부모자식간의 관계를 유지하여야 하고, 이것을 DB에서는 테이블을 두개로
나누어서 하는 경우가 흔하지만 , 그림과 같이 ID열을 두개 만들어서
사용하면 테이블 하나로 부모자식간의 관계를 정의하면서 관리할수 있다



또, 생각하기에 따라서 까다로워보이는 재귀용법을 사용하게 된다
재귀용법은 어떤 소루션이던지 한번이상은 사용하는 것이니
반드시 이해하고 상황에 따라서 활용하는 능력이 필요하다
항목의 부모자식간의 관계를 위하여 TreeView콘트롤을 사용하면 좋겠지만
이것은 외부라이브러리에서 갖여오는 것이고, 또한 버전에 따라서
에러가 많이 나므로, 그냥 목록상자에 TreeView모양으로 표현하면 된다
테이블의 두번째열(P_CategoryID)이 첫째열에서 부모ID를 지정하면
부모자식의 관계를 알게 된다, 이런 식으로 하면 자식이 100개가 내려가도
죄다 찾아서 보기좋게 정리할수 있는 것이다

테이블에는 항상 키값을 갖게 하는 습관이 그래서 좋은 것이다
다른 항목과 관계가 있다면 키값을 참조하면 되는 것이고,
여기에서는 부모키값이라는 휠드로 참조하게 되는 것이다

이런 작업을 할때 어떤 것을 기준으로 할것인지 판단을 해야 한다
테이블을 기준으로 정보를 주고 받을 것인가
아니면 목록상자를 기준으로 정보를 주고 받을 것인가?
하나도 통일하여야 한다
테이블을 기준으로 하는 것이 바람직하다
목록상자는 테이블의 내용을 사용자의 눈에 보이게 하는 것으로
만족하고 정보를 입력하고, 읽어 오고, 수정하고는 모두
테이블의 내용을 읽고,수정하고, 편집하는 것이다
그리고 테이블의 내용이 변경될때마다 목록상자를 갱신하는 순서가
좋은 것이다
위의 대화상자를 조금 아래와 같이 수정했다..
항목추가를 위한 대화상자를 별도로 하지 않고 하나의 UserForm에 모두
넣도록 한다



항목관리부분의 일부만 우선 실행해보시면서
이해하시는 것이 좋을 것 같다

***[LOG-IN]***