Microsoft Takvim Denetimi 10.0 ve sonraki sürümler FirstDay özelliği için yanlış bir değer kullanıyor

Özgün KB numarası: 826761

Not

Bu makale, Microsoft Access veritabanı (.mdb) dosyası veya Microsoft Access veritabanı (.accdb) dosyası için geçerlidir. Temel makro, kodlama ve birlikte çalışabilirlik becerileri gerektirir.

Belirtiler

Microsoft Access'te Takvim Denetimi'nin ilk günü için yanlış bir gün görüntülenir. Microsoft Takvim Denetimi 10.0 veya sonraki bir sürümü bir forma veya rapora eklediğinizde ve ardından Microsoft Visual Basic for Applications (VBA) iç sabitlerini kullanarak Takvim Denetimi özelliğini ayarladığınızda FirstDay bu sorun oluşur.

Örneğin, Takvim Denetimi özelliğini vbMonday veya vbTuesday olarak ayarlarsınızFirstDay. Takvim Denetimi özelliğini vbTuesday olarak ayarladığınızdaFirstDay, takvim haftanın ilk günü olarak Çarşamba'yı kullanır.

Not

Takvim Denetiminin önceki sürümlerini kullandığınızda, özelliği doğru ayarlayabilirsiniz FirstDay .

Neden

Bu sorun, VbSunday ve vbMonday gibi Microsoft Visual Basic'te tanımlanan günlerin iç sabitleri doğru gün değeriyle ilişkilendirilmediğinden oluşur.

Geçici Çözüm

Bu soruna geçici bir çözüm bulmak için şu adımları uygulayın:

  1. Gün, VBA iç sabitleri ve doğru gün değerleri ve VBA iç sabitleriyle ilişkili sayısal değerler arasındaki ilişkiyi belirleyin. Bunu yapmak için şu adımları uygulayın:

    1. Access'i başlatın.

    2. Northwind örnek veritabanını açın.

    3. Veritabanı penceresinde, Nesneler'in altındaki Formlar'a tıklayın.

      Not

      Access 2007'de Oluştur sekmesine tıklayın ve ardından Formlar grubunda Form Tasarımı'na tıklayın.

    4. Sağ bölmede Tasarım görünümünde Form oluştur'a çift tıklayın.

      Not

      Access 2007'de bu adımı atlayın.

    5. Ekle menüsünde ActiveX Denetimi'ne tıklayın.

    Not

    Access 2007'de Tasarım sekmesine tıklayın ve ardından Denetimler grubunda ActiveX Denetimi Ekle'ye tıklayın.

    1. ActiveX Denetimi Ekle iletişim kutusunda, ActiveX Denetimi Seç liste kutusunda Takvim Denetimi 10.0 veya sonraki bir sürümü seçmek için tıklayın ve ardından Tamam'a tıklayın.

    2. Özellikleri aşağıdaki gibi ayarlanmış forma bir komut düğmesi ekleyin:

      Özellik Değer
      Name testFD
      Caption İlk Günü Değiştir
    3. Dosya menüsünde Kaydet'e tıklayın.

      Not

      Access 2007'de , Microsoft Office Düğmesi'ne ve ardından Kaydet'e tıklayın.

    4. Farklı Kaydet iletişim kutusunda, Form Adı kutusuna Form1 yazın ve ardından Form1 formunu kaydetmek için Tamam'a tıklayın.

    5. Görünüm menüsünde Kod'a tıklayın.

      Not

      Access 2007'de Tasarım sekmesine ve ardından Araçlar grubunda Kodu Görüntüle'ye tıklayın.

    6. Visual Basic Düzenleyici aşağıdaki kodu yazın veya yapıştırın:

      Option Compare Database
      
      Private Sub testFD_Click()
          Calendar0.FirstDay = vbTuesday
      End Sub
      
    7. Form görünümünde Form1'i açın.

    8. İlk Günü Değiştir düğmesine tıklayın.

      Not

      Takvim Denetiminin ilk sütunu Salı olarak ayarlı değilse, ilk sütundaki günü not edin.

    9. Visual Basic Düzenleyici Görünüm menüsünde Hemen Pencere'ye tıklayın.

    10. Anlık penceresinde ?vbTuesday yazın ve ENTER tuşuna basın.

      Sayısal değere dikkat edin.

    11. vbTuesday'i vbMonday ve vbWednesday gibi diğer vbA iç sabitleriyle değiştirerek j adımlarını o adımında yineleyin.

      Gün arasındaki ilişkiyi, VBA iç sabitlerini ve doğru gün değerleriyle ve VBA iç sabitleriyle ilişkili sayısal değerleri göstermek için aşağıdaki tabloya sahip olacağınıza dikkat edin.

      Hafta Günü VBA İç Sabiti İlişkili Sayısal Değer
      Pazartesi Vbsunday 1
      Salı vbMonday 2
      Çarşamba vbTuesday 3
      Perşembe vbWednesday 4
      Cuma vbThursday 5
      Cumartesi vbFriday 6
      Pazar vbSaturday 7
  2. Hafta günlerine doğru şekilde eşlenmiş genel bir özel sabit listesi oluşturun. Bunu yapmak için şu adımları uygulayın:

    1. Veritabanı penceresinde, Nesneler'in altında Modül'e tıklayın.

      Not

      Access 2007'de Oluştur sekmesine tıklayın, Diğer grubundaki Makro'nun altındaki oka tıklayın ve ardından Modül'e tıklayın.

    2. Ekle menüsünden Modül'e tıklayın.

      Not

      Access 2007'de bu adımı atlayın.

    3. Visual Basic Düzenleyici aşağıdaki kodu yazın veya yapıştırın:

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

      Not

      "Hafta Günü" sütununda ve 1. adımda yer alan tablonun karşılık gelen "Sayısal Değer İlişkili" sütununda açıklandığı gibi numaralandırmayı oluşturun.

    4. Modül Day_Association adlandırın ve kaydedin.

    5. Visual Basic Düzenleyici kapatın.

  3. Uygulamanızdaki VBA iç sabitlerini, 2. adımda açıklanan özel sabit listesindeki sabitlerle değiştirin.

    Örneğin, özgün kodunuz

    Calendar0.FirstDay = vbTuesday
    

    kodunuzu aşağıdaki gibi özel numaralandırma kullanacak şekilde değiştirin:

    Calendar0.FirstDay = nwTuesday
    
  4. Uygulamayı çalıştırın.

Ek Bilgi

VBA iç sabitleri sistem yerel bilgilerine bağlı değildir. Örneğin, Almanca dilinde yerelleştirilmiş işletim sistemine sahip bir bilgisayarda haftanın ilk günü Pazartesi'dir. Bilgisayardaki Pazartesi ile ilişkili sayısal değer her zaman 0'dır.

Takvim Denetimi 10.0 veya sonraki bir sürüm dünya çapında bir Microsoft ActiveX denetimi olduğundan, bilgisayar belirtimlerinize göre VBA iç sabitleriyle ilişkili sayısal değerleri denetleyemezsiniz. Bu nedenle, bu makalenin "Belirtiler" bölümünde bahsedilen sorun oluşur.

Sorunu yeniden oluşturma adımları

  1. Access'i başlatın.

  2. Northwind örnek veritabanını açın.

  3. Veritabanı penceresinde, Nesneler'in altındaki Formlar'a tıklayın.

    Not

    Access 2007'de Oluştur sekmesine tıklayın ve ardından Formlar grubunda Form Tasarımı'na tıklayın.

  4. Sağ bölmede Tasarım görünümünde Form oluştur'a çift tıklayın.

    Not

    Access 2007'de bu adımı atlayın.

  5. Ekle menüsünde ActiveX Denetimi'ne tıklayın.

    Not

    Access 2007'de Tasarım sekmesine tıklayın ve ardından Denetimler grubunda ActiveX Denetimi Ekle'ye tıklayın.

  6. ActiveX Denetimi Ekle iletişim kutusunda, ActiveX Denetimi Seç liste kutusunda Takvim Denetimi 10.0 veya sonraki bir sürümü seçmek için tıklayın ve ardından Tamam'a tıklayın.

  7. Özellikleri aşağıdaki gibi ayarlanmış forma bir komut düğmesi ekleyin:

    Özellik Değer
    Name testFD
    Caption İlk Günü Değiştir
  8. Görünüm menüsünde Kod'a tıklayın.

    Not

    Access 2007'de Tasarım sekmesine ve ardından Araçlar grubunda Kodu Görüntüle'ye tıklayın.

  9. Visual Basic Düzenleyici aşağıdaki kodu yazın veya yapıştırın:

    Option Compare Database
    
    Private Sub testFD_Click()
     Calendar0.FirstDay = vbTuesday
    End Sub
    
  10. Dosya menüsünde Kaydet'e tıklayın.

    Not

    Access 2007'de Microsoft Office Düğmesi'ne ve ardından Farklı Kaydet'e tıklayın.

  11. Farklı Kaydet iletişim kutusunda, Form Adı kutusuna Form1 yazın ve ardından Form1 formunu kaydetmek için Tamam'a tıklayın.

  12. Form görünümünde Form1'i açın.

  13. İlk Günü Değiştir düğmesine tıklayın.

    Takvim Denetimi özelliğini vbTuesday olarak ayarlasanız FirstDay da, takvim Çarşamba'yı haftanın ilk günü olarak seçer.

Başvurular

Takvim Denetimi ve Takvim Denetimi özellikleri hakkında daha fazla bilgi için Mscal.hlp dosyasını açın ve uygun konuyu arayın. Mscal.hlp aşağıdaki klasörlerde bulunur:

Microsoft Access 2002

Yükleme Sürücüsü: \Program Files\Microsoft Office\Office10

Microsoft Office Access 2003

Yükleme Sürücüsü: \Program Files\Microsoft Office\Office11

Not

Yükleme Sürücüsü , yükleme sürücünüzün adı için bir yer tutucudur.