단축키(바로가기 키) 란?
단축키(바로가기 키)에 대한 아무런 제한을 두지 않는 Access 폼 화면(Access프로그램)을 만들었다면 다음 예처럼 Access가 기본으로 제공하는 단축키(바로가기 키)를 누름으로서 특정 기능을 실행 할 수 있습니다.
- Ctrl + P 데이터 시트,폼 , 보고서의 인쇄 다이얼 로그 박스 열기
- Ctrl + O 기존 데이터베이스 열기
- Ctrl + F12 기존 데이터베이스 열기
- F11 키 탐색 창 표시 또는 숨기기
- 기타 등등 …
Access가 제공하는 기본 단축키(바로 가기 키) 일람은 다음의 공식 사이트를 참조 하세요.
Access의 기본 단축키(바로가기 키)가 문제가 되는 경우
다음 화면처럼 인쇄할 정보가 없는 폼 화면을 만들어도 Access 기본 단축키(바로가기 키) Ctrl + P 를 누르면 인쇄 대화 상자가 열립니다. 이 동작은 필요 없는 기능일 수 있으며 심플한 프로그램을 만들기 위해서는 필요 없는 단축키(바로가기 키)는 무효화하는 것이 좋습니다.
단축키(바로 가기 키) 무효화 코딩
다음 화면과 같이 작성하고자 하는 폼 화면의 On Key Down 이벤트에서 키를 무효화하는 프로그램을 작성합니다.
위 화면 (1) : 단축키(바로가기 키)를 무효화하고자 하는 폼을 선택합니다. 오른쪽 마우스 버튼 클릭으로 서브 메뉴를 표시합니다.
위 화면 (2) : [개체 보기] 서브 메뉴를 선택해 폼 화면을 표시합니다.
위 화면 (3) : 툴 바에서 [디자인 모드] 아이콘을 클릭하여 폼의 속성 시트를 표시합니다.
위 화면 (4) : […] 아이콘을 눌러 [코드 작성기]를 선택해 On Key Down의 [이벤트 프로시저]를 작성합니다.
위 화면 (5) : 다음 이벤트 프로시저가 자동으로 만들어지면 내부에 단축키 무효화 코딩을 합니다.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) End Sub
다음은 Ctrl + P 단축키의 무효화 코드입니다.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim intShiftDown As Integer Dim intAltDown As Integer Dim intCtrlDown As Integer intShiftDown = (Shift And acShiftMask) > 0 intAltDown = (Shift And acAltMask) > 0 intCtrlDown = (Shift And acCtrlMask) > 0 Select Case KeyCode Case vbKeyP If intCtrlDown Then KeyCode = 0 End Select End Sub
그리고 최종적으로 폼의 Key Preview를 [예]로 변경해야 합니다. 변경하지 않으면 위의 무효화 코드가 실행 되지 않습니다.
[주의사항] 복수의 폼 화면이 존재한다면 위의 작업을 모든 폼에서 똑같이 실행해야 합니다. 이 글에서는 [Form_탐색화면] 폼에만 적용했습니다.
결과 확인
위 글을 위해 Sample.accdb파일을 만들었습니다. 이 파일은 아래 화면의 (1)[Form_탐색화면], (2)[Form_첫화면], (4)[Form_두번째화면]의 3개의 폼으로 구성 되어 있습니다.
(1)[Form_탐색화면]은 (2)[Form_첫화면], (4)[Form_두번째화면]을 포함하고 있으며 초기 화면 표시에는 (2)[Form_첫화면]을 오른쪽 영역에 표시합니다.
(3)을 누르면 (4)[Form_두번째화면]을 오른쪽 영역에 표시합니다.
초기 화면 표시 때는 (1)[Form_탐색화면]에 제어가 있기 때문에 On Key Down 이벤트의 Form_KeyDown의 프로시저의 Ctrl + P 무효화 코드가 실행되어 인쇄 대화 상자가 열리지 않습니다.
그 외의 (2)[Form_첫화면],(4)[Form_두번째화면]에는 On Key Down 이벤트의 Form_KeyDown의 프로시저를 작성하지 않았기 때문에 다음의 동작에는 인쇄 대화 상자가 열립니다.
- (2)[Form_첫화면]의 영역에 마우스를 클릭하여 Ctrl + P를 누름
- (3) [두번째화면] 메뉴를 선택하여 Ctrl + P를 누름
- (4)[Form_두번째화면]의 영역에 마우스를 클릭하여 Ctrl + P를 누름
(2)[Form_첫화면], (4)[Form_두번째화면]에도 (1)[Form_탐색화면]처럼 On Key Down 이벤트의 Form_KeyDown의 프로시저의 Ctrl + P 무효화 코드를 넣어주어 인쇄 대화 상자가 열리지 않게 할 수 있습니다.
샘플 파일
이 글에서 사용한 Sample.accdb 파일을 다운로드해서 실행 할 수 있습니다.
실행 환경은 다음과 같습니다.