프로그램/회원관리프로그램(진행중)

[엑셀VBA] 회원 관리 프로그램 Ver 1.0 (feat. UserForm, ACCESS)

도 박사 2021. 7. 18. 02:10
반응형

현재 엑셀과 액세스를 이용한 프로그램을 하나 제작중이다.

만들게된 계기는 지인 모임 중에서 돈이나 회비 관리를 엑셀 시트로만 작성하고 있었다. 

이게 문제가 되는건 아니지만, 매년 바뀌는 임원단으로 인해 양식이 각양각색이었다.

으... 그걸 보고 탄식이 절로 나올 수 밖에 없었다...

그래서 이 참에 한 번 싹 갈아 엎는건 어떤지 물어보고 내가 만들어주기로 했다.


1. 프로그램 기능

  • 회원 관리: 등록, 정보수정, 삭제, 복구, 상세정보
  • 입출 관리: 입출 입력, 입출 내역 조회 (검색 필터 포함)
  • 지원금 관리: 교통비, 미참석 지원금 자동 계산, 보고서 출력
  • 행사 관리: 등록, 수정, 삭제 
  • 랭킹: 회비 및 모임 참석 관련 랭킹 출력
  • 환경설정: 월 회비 및 지원금 변경, 파일 백업, 파일 이름 변경
  • 기타: 로그인, 지역간 거리 계산, 그 외 기능 수행에 필요한 프로시저 및 함수

참고사항.

이 프로그램에서 엑셀은 액세스에 저장된 데이터를 보여주고, 입력, 삭제, 수정하는 역할을 한다.


2. 기능 설명

2.1 실행

시작
아.. 잎새주 사러 가야되는데 언제가지

엑셀을 더블클릭하면 소주 포스터들을 볼 수 있다. 이것이 이 프로그램의 자랑스런 메인화면이다!

여기서부터 하나씩 기능들을 살펴보자. (아직 진행 중인 프로그램이라 미구현된 부분과 오류가 많다.)


2.2 계원 관리

도박사 신규 등록

도박사의 개인정보를 이용해 계원 등록을 해봤다. 그리고 생년월일, 가입일, 전화번호 등 숫자와 몇몇 특수문자가 들어가야하는 칸에는 입력제한을 하고 있다.(입력제한 방식: KeyDown 이벤트, 사용자 정의 함수)

그리고 계원 등록이 되면 데이터베이스에 개인 테이블이 하나씩 생성되며(이름+생일로 된 테이블명 이용) 고유 식별값으로는 이름과 생일을 이용한다.

 

 

생일 수정

정보수정을 하기위해 계원을 선택(키보드 Enter)하면 계원정보가 로드된다. 여기선 변동사항이 잘보이는 생일을 바꿔봤다. 실행 후 변경사항이 바로 목록에 출력되는 것을 볼 수 있다.

 

 

삭제, 복구, 완전삭제

이제 필요없어진 계원을 삭제해보자. 삭제는 완전 삭제, 삭제 두 가지로 나뉜다. 

-완전삭제: 데이터베이스에서 완전히 삭제되며 모든 정보가 삭제됨(복구 불가능)

-삭제: 탈퇴회원 목록으로 이동되며 데이터는 보존됨. 휴면 계정같은 느낌(복구가능)

 

 

상세조회 기능은 어떤식으로 해야할지 감이 안잡혀서 아직 구현하지 않았다.


2.3 입출 관리

 

도박사의 계비 입력하기

입출관리는 계비의 수입 지출과 조회를 할 수 있는 기능이다. 사유에는 기본적으로 계비, 기타 항목이 들어가 있다.

그리고 모임이나 행사로 인해 지출이 발생 할 경우에는 행사관리 탭에서 행사를 먼저 등록하고 입출관리를 이용하여야 한다. 자세한 내용은 아래 행사관리 항목에서 작성하겠다.

(그리고 계비 입력 알고리즘에는 어마어마한 기능을 탑재하였다.)

조회 탭을 클릭하면 입출내역을 확인 할 수 있는 창이 나타난다. 검색 조건도 별도로 설정가능하며, 검색창에서 엔터를 누르거나 좌측하단의 조회버튼을 클릭하면 검색 결과를 볼 수 있다. 

조회 창의 기능은 모두 구현된 상태이며 여러 번의 테스트를 지속하여 오류를 찾아내는 일만 남아있다. 그리고 계비 입력 외에 지출항목에 아래에 있는 2.6 지원금 관리 기능 테스트를 하면서 만들어졌다.

 


2.4 행사 관리

도박사 가입기념 파티를 진행했다.

구현된 기능: 생성, 삭제

미구현 기능: 수정

행사를 생성할 때 계원 목록에서 다중 선택이 가능하도록 만들었다. 선택된 인원은 모임에 참가해단 의미로 데이터베이스에 저장이되며, 선택되지 않은 인원은 미참여로 입력된다. 현재로선 이미 진행된 행사에 대해 모임 후 정리 용도로만 사용 가능하지만 수정 기능을 구현하여 미리 행사를 계획할 수 있게 만들 예정이다.

행사 정보에 지역을 넣는 이유는 이 모임에서는 모임에 참여한 인원 중 거리 기준에 따라 지원금을 지급하기때문에 넣어야할 필수 요소이다.

만약 사는곳이 서울, 모임장소가 대구 두 지역간 거리는 230KM 정도된다. 이렇게되면 교통비 지원금 기준에 따라 230KM에 해당하는 금액을 지원해준다. 그리고 거리 기준 구하는 것은 위도와 경도를 데이터를 이용해 시군구의 시청이나 군청을 기준으로 한다. (혹시나 서울시청이 이전한다거나 그럴경우는 생각하지 않는다. 넘 복잡해짐 ㅜㅜ)

 

위치가 없는 경우
평양신지 군인지 몰것고 암때나 대충 입력했다.
추가 완료

모임 지역 중 데이터베이스에 저장되지 않는 장소가 있을 수도 있어서, 따로 추가할 수 있도록 기능을 만들어뒀다. 대신 경도와 위도를 직접 찾아서 넣어줘야한다 .. ㅎㅎ;;

그래도 좀 찾기 쉬우라고 상단에 구글맵 링크를 걸어줬다. 클릭하면 바로 구글맵 ㄷㄷㄷㅈ!!! 

 

오,ㅏ,, 쉣,;; 평양에서 파티했네 이런

위치 등록되자마자 바로 행사등록까지 마무리되는 아주 빠른 진행방식 칭찬해~ 근데 평양 간적없는데;; ㄷㄷ;; 나 간첩아님 빨갱이 아님; 김정은 개쓰레기 종간나쉨 꺼져라 분리수거도 안될 쉨 시진핑핑이랑 전립선암 유방암 뇌종양 뇌출혈 발병해라, 글고 6.25전쟁은 북한이 일으킨 남침이다. 알겠나 ㅡㅡ 함부러 대한민국을 얕보지마라 한복 김치 BTS 독도 대한독립만세다.(본인은 현재 대한민국의 육군 만기제대를 하였으며, 예비군 기간이 끝났고, 민방위대원으로 활동중인 사람으로써 안보관이 확실함)

바로 삭제해버리기 ~~


2.5 지원금 관리

모임의 자랑 지원금 시스템

이 모임에는 특별한 지원금이 존재한다. 참석한 사람들 중에서 먼 거리에서 온 인원들을 위한 교통비 지원금, 개인 사정으로 함께하지 못한 분들에게 주는 미참여 지원금이 있다. 이 지원금들은 현재 임원단의 임기 만료 한달 전에 정산하여 일괄 지급하도록 되어있다. 그래서 이런 지원금 조회 시스템을 만들었다.

관리자 모드로 전환하면 월 납부금 및 지원금 조절이 가능하도록 설계하였다. (아래에서 설명)

그리고 년도별로 조회도 가능하고, 전체년도를 볼 수 있다.

 

지급 완료된 항목은 지급완료 버튼을 !!!

지급을 완료했다면 지급할 항목을 선택하고 지급완료 버튼을 눌러주면 처리되며 목록이 새로고침된다. 그리고 입출력 내역이 저장되는 테이블에도 지출항목으로 입력된다.


2.6 랭킹

디자인 어케 해야할지 몰라서 난감함...

데이터들을 기록하면서 쌓이는 정보가 많아진다. 그걸 이용해서 랭킹 시스템을 만들어보고자 하는데 디자인을 어떻게 해야할 지 모르겠다... 디자인이 좀 촌스러운거 같다.. ㅜ 미적감각이 부족한듯... 앞으로 수정보완할 부분이 상당히 많은 것 같다..


2.6 관리자 모드 전환

자물쇠 모양의 버튼이 귀엽다

관리자 모드 전환은 우측 상단의 잠긴 자물쇠를 클릭하여 로그인을 해야한다. 이 기능은 그냥 한 번 만들어봤다. 아이디와 패스워드 저장 가능하고, 자동 로그인도 할 수 있게 만들었다. 

관리자 모드가 일반 모드와 차이가 나는 부분은 환경설정 버튼이 활성화 되고, 닫기를 눌렀을 때 프로그램이 꺼지지않고 엑셀 시트가 나타나게 된다. (일반 모드일 경우 프로그램이 바로 닫힘)

 

아이디 패스워드 변경창
게임 npc 처럼 만들어봤닼ㅋㅋㅋㅋ

로그인 창에서 아이디 또는 비밀번호 변경하기를 누르면 새로운 창이 나타난다. 여기서 현재 계정 정보를 입력하고 

새로운 정보로 넣고 변경 버튼을 클릭하면 완료!

 

관리자 모드로 전환 성공 !

로그인 정보를 입력해 관리자 모드로 진입하였고, 프로그램이름에 관리자 모드라고 표시된다. 그리고 자물쇠 모양도 잠김에서 열림으로 바뀌었다. 그 옆에는 환경설정의 톱니바퀴가 활성화 되었다.

환경 설정으로 할 수 있는 것.
변경 사항이 있을 경우 빨갛게 변하고 안내 문구가 나타난다.

환경설정에서는 금전적인 부분 설정과 기타 항목으로 나눠져있다. 지금은 교통 지원금에서 금액만 변경가능하지만 나중에는 거리도 조절 할 수 있도록 바꿔볼 예정이다. 

만약 환경설정에서 뭔갈 변경한다면 빨간 글씨로 표시되며 안내 문구도 나타나게 만들었다. 적용 시기도 설정가능하여 원하는 날짜를 선택 할 수 있다.

 

날짜 선택기능

날짜선택 기능을 넣어 편하게 입력 할 수 있게 만들었다. 그리고 공휴일도 표시해봤다. 안해도 되는 부분인데 그냥 넣고 싶어서 다 해본다... 허허;;;

좌우 방향키로 날짜를 넘길 수도 있고 직접 입력해서 변경할 수도 있다.

 

기타 항목

환경설정 기타탭에는 데이터 유실을 방지하기 위한 백업 방식과 경로를 설정 할 수 있도록 했다. 완벽히 구현한건 아니고 일부분만 했다. 프로그램 이름 변경은 그냥 넣었다. ;ㅋㅋㅋㅋㅋㅋ 뭔가 좀 더 있어보이게 만들고 싶어서 아무거나 막 넣고 있는거 같네...

여기서 구현된 부분은 경로 설정과 프로그램 이름 변경 기능이다. 좀 더 추가 할게 생각나면 해봐야지 호호호호ㅗㅎ호

 


오늘은 대략적인 프로그램의 기능에 대해 작성해보았다. 상세 기능은 추후에 다시 적을 예정이다. 미구현 기능도 완성하고 !!! 이제보니 아주 장기프로젝트가 되어버렸다ㅜ 

반응형