Microsoft Calendar Control 10.0 이상 버전에서는 FirstDay 속성에 잘못된 값을 사용합니다.

원본 KB 번호: 826761

참고

이 문서는 Microsoft Access 데이터베이스(.mdb) 파일이나 Microsoft Access 데이터베이스(.accdb) 파일에 적용됩니다. 기본 매크로, 코딩 및 상호 운용성 기술이 필요합니다.

증상

Microsoft Access에서 달력 컨트롤의 첫 날에 잘못된 날짜가 표시됩니다. 이 문제는 Microsoft Calendar Control 10.0 이상 버전을 폼이나 보고서에 삽입한 다음 Microsoft VBA(Visual Basic for Applications) 내장 상수를 사용하여 Calendar Control의 속성을 설정할 FirstDay 때 발생합니다.

예를 들어 Calendar Control의 속성을 vbMonday 또는 vbTuesday로 설정합니다FirstDay. 일정 컨트롤의 FirstDay 속성을 vbTuesday로 설정하면 달력은 수요일을 요일로 사용합니다.

참고

이전 버전의 Calendar Control을 사용하는 경우 속성을 올바르게 설정할 FirstDay 수 있습니다.

원인

이 문제는 vbSundayvbMonday와 같이 Microsoft Visual Basic에 정의된 일의 내장 상수가 올바른 일 값과 연결되지 않기 때문에 발생합니다.

해결 방법

이 문제를 해결하려면 다음과 같이 하십시오.

  1. 일, VBA 내장 상수 및 올바른 일 값과 VBA 내장 상수에 연결된 숫자 값 간의 연결을 결정합니다. 이렇게 하려면 다음과 같이 하십시오.

    1. 액세스를 시작합니다.

    2. Northwind 샘플 데이터베이스를 엽니다.

    3. 데이터베이스 창의 개체 아래에서 클릭합니다.

      참고

      Access 2007에서 만들기 탭을 클릭한 다음 양식 그룹에서 양식 디자인을 클릭합니다.

    4. 오른쪽 창에서 디자인 보기에서 양식 만들기를 두 번 클릭합니다.

      참고

      Access 2007에서 이 단계를 건너뜁니다.

    5. 삽입 메뉴에서 ActiveX 컨트롤을 클릭합니다.

    참고

    Access 2007에서 디자인 탭을 클릭한 다음 컨트롤 그룹에서 ActiveX 컨트롤 삽입을 클릭합니다.

    1. ActiveX 컨트롤 삽입 대화 상자의 ActiveX 컨트롤 선택 목록 상자에서 일정 컨트롤 10.0 이상 버전을 클릭하여 선택한 다음 확인을 클릭합니다.

    2. 다음과 같이 속성이 설정된 양식에 명령 단추를 추가합니다.

      속성
      Name testFD
      Caption 첫날 변경
    3. 파일 메뉴에서 저장을 클릭합니다.

      참고

      Access 2007에서 Microsoft Office 단추를 클릭한 다음 저장을 클릭합니다.

    4. 다른 이름으로 저장 대화 상자의 양식 이름 상자에 Form1을 입력한 다음 확인을 클릭하여 Form1 양식을 저장합니다.

    5. 보기 메뉴에서 코드를 클릭합니다.

      참고

      Access 2007에서 디자인 탭을 클릭한 다음 도구 그룹에서 코드 보기를 클릭합니다.

    6. Visual Basic 편집기 다음 코드를 입력하거나 붙여넣습니다.

      Option Compare Database
      
      Private Sub testFD_Click()
          Calendar0.FirstDay = vbTuesday
      End Sub
      
    7. 폼 보기에서 Form1을 엽니다.

    8. 첫 날 변경 단추를 클릭합니다.

      참고

      Calendar Control의 첫 번째 열이 화요일로 설정되지 않은 경우 첫 번째 열의 날짜를 확인합니다.

    9. Visual Basic 편집기 보기 메뉴에서 직접 실행 창을 클릭합니다.

    10. 직접 실행 창에서 ?vbTuesday를 입력한 다음 Enter 키를 누릅니다.

      숫자 값을 확인합니다.

    11. vbTuesday를 vbMondayvbWednesday와 같은 다른 VBA 내장 상수로 바꾸어 단계 o를 통해 j단계를 반복합니다.

      다음 표에는 일, VBA 내장 상수 및 올바른 일 값과 VBA 내장 상수에 연결된 숫자 값 간의 연결을 보여 주는 표가 있습니다.

      요일 VBA 내장 상수 연결된 숫자 값
      월요일 vbSunday 1
      화요일 vbMonday 2
      수요일 vbTuesday 3
      목요일 vbWednesday 4
      금요일 vbThursday 5
      토요일 vbFriday 6
      일요일 vbSaturday 7
  2. 요일에 올바르게 매핑되는 전역 사용자 지정 열거형을 만듭니다. 이렇게 하려면 다음과 같이 하십시오.

    1. 데이터베이스 창의 개체 아래에서 모듈을 클릭합니다.

      참고

      Access 2007에서 만들기 탭을 클릭하고 기타 그룹의 매크로 아래에 있는 화살표를 클릭한 다음 모듈을 클릭합니다.

    2. 삽입 메뉴에서 모듈을 클릭합니다.

      참고

      Access 2007에서 이 단계를 건너뜁니다.

    3. Visual Basic 편집기 다음 코드를 입력하거나 붙여넣습니다.

      Option Explicit
      
      Public Enum nwFirstDay
         nwMonday = 1
         nwTuesday = 2
         nwWednesday = 3
         nwThursday = 4
         nwFriday = 5
         nwSaturday = 6
         nwSunday = 7
      End Enum
      

      참고

      "주일" 열과 1r단계에 있는 테이블의 해당 "숫자 값 연결" 열에 설명된 대로 열거형을 만듭니다.

    4. 모듈 Day_Association 이름을 지정하고 저장합니다.

    5. Visual Basic 편집기 닫습니다.

  3. 애플리케이션의 VBA 내장 상수를 2단계에서 설명하는 사용자 지정 열거형에 있는 상수로 바꿉니다.

    예를 들어 원래 코드가 인 경우

    Calendar0.FirstDay = vbTuesday
    

    다음과 같이 사용자 지정 열거형을 사용하도록 코드를 수정합니다.

    Calendar0.FirstDay = nwTuesday
    
  4. 애플리케이션을 실행합니다.

추가 정보

VBA 내장 상수는 시스템 로컬 정보에 의존하지 않습니다. 예를 들어 독일어로 지역화된 운영 체제가 있는 컴퓨터에서 요일은 월요일입니다. 컴퓨터의 Monday와 연결된 숫자 값은 항상 0입니다.

Calendar Control 10.0 이상 버전은 전 세계 Microsoft ActiveX 컨트롤이므로 컴퓨터 사양에 따라 VBA 내장 상수와 연결된 숫자 값을 제어할 수 없습니다. 따라서 이 문서의 "증상" 섹션에 언급된 문제가 발생합니다.

문제를 재현하는 방법

  1. 액세스를 시작합니다.

  2. Northwind 샘플 데이터베이스를 엽니다.

  3. 데이터베이스 창의 개체 아래에서 클릭합니다.

    참고

    Access 2007에서 만들기 탭을 클릭한 다음 양식 그룹에서 양식 디자인을 클릭합니다.

  4. 오른쪽 창에서 디자인 보기에서 양식 만들기를 두 번 클릭합니다.

    참고

    Access 2007에서 이 단계를 건너뜁니다.

  5. 삽입 메뉴에서 ActiveX 컨트롤을 클릭합니다.

    참고

    Access 2007에서 디자인 탭을 클릭한 다음 컨트롤 그룹에서 ActiveX 컨트롤 삽입을 클릭합니다.

  6. ActiveX 컨트롤 삽입 대화 상자의 ActiveX 컨트롤 선택 목록 상자에서 일정 컨트롤 10.0 이상 버전을 클릭하여 선택한 다음 확인을 클릭합니다.

  7. 다음과 같이 속성이 설정된 양식에 명령 단추를 추가합니다.

    속성
    Name testFD
    Caption 첫날 변경
  8. 보기 메뉴에서 코드를 클릭합니다.

    참고

    Access 2007에서 디자인 탭을 클릭한 다음 도구 그룹에서 코드 보기를 클릭합니다.

  9. Visual Basic 편집기 다음 코드를 입력하거나 붙여넣습니다.

    Option Compare Database
    
    Private Sub testFD_Click()
     Calendar0.FirstDay = vbTuesday
    End Sub
    
  10. 파일 메뉴에서 저장을 클릭합니다.

    참고

    Access 2007에서 Microsoft Office 단추를 클릭한 다음 다른 이름으로 저장을 클릭합니다.

  11. 다른 이름으로 저장 대화 상자의 양식 이름 상자에 Form1을 입력한 다음 확인을 클릭하여 Form1 양식을 저장합니다.

  12. 폼 보기에서 Form1을 엽니다.

  13. 첫 날 변경 단추를 클릭합니다.

    Calendar Control의 FirstDay 속성을 vbTuesday로 설정했지만 달력은 수요일을 요일로 선택합니다.

참조

일정 컨트롤 및 일정 컨트롤 속성에 대한 자세한 내용은 Mscal.hlp를 연 다음, 적절한 항목을 검색합니다. Mscal.hlp는 다음 폴더에 있습니다.

Microsoft Access 2002

설치 드라이브: \Program Files\Microsoft Office\Office10

Microsoft Office Access 2003

설치 드라이브: \Program Files\Microsoft Office\Office11

참고

설치 드라이브는 설치 드라이브의 이름에 대한 자리 표시자입니다.