주소 12925 경기도 하남시 미사대로 540, B동 917호 (현대지식산업센터 한강미사2차) ㈜팀데이터이십일 | 고객센터 전화번호 02-467-2998 | 대표이사 염기웅
개인정보관리책임자 염기웅 (ml_privacy@td21.com) | 사업자등록번호 120-86-79260 | 통신판매업신고번호 제 2021-경기하남-1166 호 [사업자 정보 확인]
TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.
1. 중복제거
기존 코딩을 조금 바꿔 보았습니다.
기존: SELECT 이름표.실적기준월, 실적기준월.실적기준월 FROM 실적기준월 INNER JOIN 이름표 ON 실적기준월.실적기준월 = 이름표.실적기준월;
변경: SELECT DISTINCT 이름표.실적기준월, 실적기준월.실적기준월 FROM 실적기준월 INNER JOIN 이름표 ON 실적기준월.실적기준월 = 이름표.실적기준월;
DISTINCT 는 중복을 제거해줍니다.
2. 지역과 실적월로 이름표 검색
아래처럼 지역 과 실적월을 변경 시 이벤트를 잡아서 목록상자의 행 원본(Rowsource)을 동적으로 변경해 줍니다.
Private Sub cboArea_AfterUpdate()
sbSetlist
'lstName.Requery
End Sub
Private Sub cbomonth_AfterUpdate()
sbSetlist
'lstName.Requery
End Sub
Private Sub lstName_AfterUpdate()
Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
rst.FindFirst "ID = " & lstName.Value
Me.Bookmark = rst.Bookmark
End Sub
Private Sub sbSetlist()
'cboArea : 지역
'cboMonth: 실적기준월
'지역에 값이 있을 때
If Nz(cboArea, "") <> "" Then
If Nz(cbomonth, "") <> "" Then
'실적기준월에 값이 있을 때
lstName.RowSource = "SELECT ID, 이름, 부서 FROM 이름표 WHERE 지역= '" & cboArea.Value & "' AND 실적기준월 = #" & cbomonth.Value & "#"
Else
'실적기준월에 값이 없을 때
lstName.RowSource = "SELECT ID, 이름, 부서 FROM 이름표 WHERE 지역= '" & cboArea.Value & "'"
End If
End If
End Sub
일단 원하시는 부분은 변경 해 보았습니다만, 좀더 다듬을 필요가 있습니다.
Rowsource를 이용해서 지역 선택 시 해당 지역의 실적월만 나오게 한다던가 등이 있으면 좋겠지요.
또는 실적월 선택 시 BETWEEN 구문을 사용하여 이름표 테이블의 실적월 데이터를 조회하여 해당 인원만 나오게 한다던가요.