안녕하세요, 엑세스 메크로 연결하는 문제에서요.
cmb구분 컨트롤이 있는 부분은 컨트롤 원본이 구분상세 테이블인데
[구분코드]=[forms]![회원관리]![cmb구분] 으로 설정하는게 아닌지 잘 모르겠습니다.
그 다음문제인 이벤트 프로시저에서는
[구분코드]='" & cmb구분 & "'" 으로 연결되는데, 왜 메크로 부분은 '[구분]= ~'으로 되는 걸까요?
안녕하세요.
핵심은 콤보상자의 ‘컨트롤 원본’과 실제로 조건에서 비교해야 하는 값이 반드시 같은 것은 아니라는 점입니다.
예를 들어 cmb구분의 컨트롤 원본이 구분상세라고 해도, 콤보상자의 행 원본이 다음처럼 구성되어 있을 수 있습니다.
구분코드 | 구분
1 | 일반
2 | 우수
그리고 바운드 열이 2열이라면 cmb구분의 실제 값은 구분코드가 아니라 구분 값입니다. 이 경우 매크로 조건은
[구분]=[Forms]![회원관리]![cmb구분]
처럼 작성하는 것이 맞습니다.
반대로 VBA 이벤트 프로시저에서
"[구분코드]='" & cmb구분 & "'"
을 사용했다면, 그 상황에서는 cmb구분이 구분코드 값을 반환하도록 설정되어 있거나, 코드에서 비교 대상이 구분코드이기 때문입니다.
즉, 판단할 때는 컨트롤 원본 이름만 보면 안 되고 cmb구분의 바운드 열(Bound Column)을 확인해야 합니다.
cmb구분이 구분코드를 반환 →[구분코드]=...cmb구분이 구분 값을 반환 →[구분]=...
또한 매크로와 VBA라서 비교 필드가 달라지는 것은 아닙니다. 각 문제에서 콤보상자가 실제로 어떤 값을 반환하고, 대상 폼·보고서의 어느 필드와 비교해야 하는지가 기준입니다.
즐거운 하루 되세요.
-
관리자2026-08-07 16:24:28
안녕하세요.
핵심은 콤보상자의 ‘컨트롤 원본’과 실제로 조건에서 비교해야 하는 값이 반드시 같은 것은 아니라는 점입니다.
예를 들어
cmb구분의 컨트롤 원본이구분상세라고 해도, 콤보상자의 행 원본이 다음처럼 구성되어 있을 수 있습니다.구분코드 | 구분 1 | 일반 2 | 우수그리고 바운드 열이 2열이라면
cmb구분의 실제 값은구분코드가 아니라 구분 값입니다. 이 경우 매크로 조건은[구분]=[Forms]![회원관리]![cmb구분]처럼 작성하는 것이 맞습니다.
반대로 VBA 이벤트 프로시저에서
"[구분코드]='" & cmb구분 & "'"을 사용했다면, 그 상황에서는
cmb구분이 구분코드 값을 반환하도록 설정되어 있거나, 코드에서 비교 대상이 구분코드이기 때문입니다.즉, 판단할 때는 컨트롤 원본 이름만 보면 안 되고
cmb구분의 바운드 열(Bound Column)을 확인해야 합니다.cmb구분이 구분코드를 반환 →[구분코드]=...cmb구분이 구분 값을 반환 →[구분]=...또한 매크로와 VBA라서 비교 필드가 달라지는 것은 아닙니다. 각 문제에서 콤보상자가 실제로 어떤 값을 반환하고, 대상 폼·보고서의 어느 필드와 비교해야 하는지가 기준입니다.
즐거운 하루 되세요.