드로우홀릭 더베이직
안녕하세요~
폼에서 콤보상자에 입력된 값에 따라 후의 콤보상자의 값이 자동으로 변하게되는 내용이 궁금해서 질문드립니다.
예를
목록상자 (대분류:경기/강원/충북) 목록상자2(중분류:성남.수원/춘천,원주/제천,충주) 를 만들었을때
대분류에서 선택하면 대분류에 선택된 목록만 중분류에 보이게 만들려 합니다.
여러단으로 목록간 연결이 되는지 궁금합니다.
엑셀에서는 유효성 목록을 통해서 쉽게 구현되는데
액세스에서는 잘 모르겠습니다.
부탁드립니다.
감사합니다.
윈드님
- 추천
- 1
- 비추천
- 0
-
- Cap 2018-01-27 20-36-42-102.png [File Size:6.3KB/Download49]
- Cap 2018-01-27 20-40-44-247.png [File Size:6.4KB/Download46]
- Cap 2018-01-27 20-38-13-188.png [File Size:7.4KB/Download93]
- Cap 2018-01-27 20-37-40-384.png [File Size:8.6KB/Download62]
- Cap 2018-01-27 20-56-39-847.png [File Size:15.1KB/Download71]
- sample_20180127.accdb [File Size:580.0KB/Download102]
안녕하세요
질문주신 기능을 구현하려면 다음의 개념을 알아야 합니다.
이벤트
매크로 또는 이벤트프로시저
행 원본
개념적으로 먼저 설명 드리면 다음과 같은 로직으로 프로그래밍을 해야 합니다.
'대분류'를 선택했을 때 이벤트가 발생하여 '중분류'의 행 원본을 '대분류'값에 속한 '중분류'로 변경 해 주어야 합니다.
일단 '대분류'와 '중분류'의 데이터 구조를 만듭니다.
위와 같이 만들면 '대분류' 에 종속된 '중분류' 데이터를 사용 할 수 있습니다.
그 후에 폼을 만들어 '대분류' 와 '중분류' 콤보 상자를 만들어 줍니다.
여기에서 '대분류' 콤보에 할 작업은 '행 원본' 지정과 'AfterUpdate' 이벤트 입니다.
'중분류' 콤보에 할 작업은 '행 원본' 지정입니다.
'대분류' 콤보의 행 원본 지정
그 다음 '중분류' 콤보의 행 원본 지정 입니다.
[Forms]![지역선택]![cboBig] 의 의미는 '지역선택' 이라는 폼의 'cboBig'이라는 컨트롤의 값을 참조 한다는 뜻 입니다. ('cboBig'이 '대분류' 콤보의 이름입니다.)
이렇게 '중분류'콤보의 행 원본을 지정해 주면 '대분류' 선택 시 해당 '대분류' 값에 종속되는 '중분류' 리스트가 표시되게 됩니다.
여기서 중요한점은 이 변경되는 '증분류' 리스트가 실시간으로 화면에 표시되지 않는다는 점 입니다.
이런 이유로 '대분류' 선택 시 '중분류' 컨트롤을 '갱신' 해 주어야 합니다.
'대분류' 컨트롤의 After Update 이벤트에 다음 매크로를 만들어 줍니다.
이 매크로의 의미는 '중분류' 컨트롤인 'cboMid' 를 갱신(Requery) 하는 매크로 입니다.
vb로 구현하려는 분은 첨부 파일의 '지역선택_vb' 폼을 보시면 될 것 같습니다.