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

Not

Office 365 ProPlus, Microsoft 365 Kurumsal Uygulamaları olarak yeniden adlandırılıyor. Bu değişiklik hakkında daha fazla bilgi için, bu blog yazısını okuyun.

Orijinal KB numarası:   826761

Not

Bu makale, bir Microsoft Access veritabanı (.mdb) dosyası veya bir 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. Bu sorun, bir Microsoft Takvim Denetimi 10.0 veya daha sonraki bir sürümü bir forma veya bir rapora eklediğinizde ve ardından FirstDay Microsoft Visual Basic for Applications (VBA) içsel sabitlerini kullanarak Takvim Denetimi'nin özelliğini ayarladığınızda oluşur.

Örneğin, FirstDay Takvim Denetimi'nin özelliğini vbMonday veya vbTuesdayolarak ayarlarsınız. FirstDayTakvim Denetimi'nin özelliğini vbTuesdayolarak ayarladığınızda, takvim Çarşamba'yı haftanın ilk günü olarak kullanır.

Not

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

Neden

VbSunday ve vbMonday gibi Microsoft Visual Basic'te tanımlanan günlerin içsel sabitlerinin vbMondaydoğru gün değeriyle ilişkilendirilmediği için bu sorun oluşur.

Geçici Çözüm

Bu sorunu aşmak için aşağıdaki adımları izleyin:

  1. Gün arasındaki ilişkiyi, VBA içsel sabitleri ve doğru gün değerleri ile VBA içsel sabitlerle ilişkili sayısal değerleri belirleyin. Bunu yapmak için aşağıdaki adımları izleyin:

    1. Erişimi başlatın.

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

    3. Veritabanı penceresinde, Nesneler altında Formlar'ıtıklatın. Forms

      Not

      Access 2007'de Oluştur sekmesini tıklatın ve ardından Formlar grubunda Form Tasarımı'nı tıklatın.

    4. Sağ bölmede, Tasarım görünümünde form oluştur'uçift tıklatın.

      Not

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

    5. Ekle menüsünde ActiveX Denetimi'nitıklatın.

    Not

    Access 2007'de Tasarım sekmesini tıklatın ve ardından Denetimler grubunda ActiveX Denetimini Ekle'yi tıklatın.

    1. EtkinX Denetimi Ekle iletişim kutusunda, ActiveX Denetim listesi seç kutusundan Takvim Denetimi 10.0 veya daha sonraki bir sürümü seçmek için tıklatın ve ardından Tamam'ıtıklatın.

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

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

      Not

      Access 2007'de Microsoft Office Düğmesi'nitıklatın ve sonra Kaydet'itıklatın.

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

    5. Görünüm menüsünde Kod'utıklatın.

      Not

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

    6. Visual Basic Düzenleyicisi'nde 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üğmesini tıklatın.

      Not

      Takvim Denetimi'nin ilk sütunu Salı gününe ayarlanmadıysa, ilk sütundaki güne dikkat edin.

    9. Visual Basic Düzenleyicisi'nde, Görünüm menüsündeki Hemen Pencere'yi tıklatın.

    10. Hemen penceresinde ?vbTuesdayyazın ve enter tuşuna basın.

      Sayısal değere dikkat edin.

    11. VbTuesday'i vbMondayve vbWednesdaygibi diğer VBA içsel sabitlerle değiştirerek adım o ile tekrarlayın.

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

      Hafta Günü VBA Intrinsic Constant İlişkili Sayısal Değer
      Pazartesi Vbsunday 1
      Salı vbPazartesi 2
      Çarşamba vbSalı 3
      Perşembe vbÇarşamba 4
      Cuma vbPerşembe 5
      Cumartesi vbCuma 6
      Pazar vbCumartesi 7
  2. Hafta günlerine doğru şekilde eşlenen genel bir özel numaralandırma oluşturun. Bunu yapmak için aşağıdaki adımları izleyin:

    1. Veritabanı penceresinde, Nesneleraltında Modül'e tıklayın.

      Not

      Access 2007'de Oluştur sekmesini tıklatın, Diğer grupta Makro'nun altındaki oku tıklatın ve ardından Modül'etıklayın.

    2. Ekle menüsünde Modül'etıklayın.

      Not

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

    3. Visual Basic Düzenleyicisine 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 1r adımda bulunan tablonun karşılık gelen "Sayısal Değer İlişkili" sütununda açıklandığı şekilde numaralandırmayı oluşturun.

    4. Modülü Day_Associationadlandırın ve kaydedin.

    5. Visual Basic Düzenleyicisini kapatın.

  3. Uygulamanızdaki VBA içsel sabitlerini, adım 2'de açıklanan özel numaralandırmada bulunan sabitlerle değiştirin.

    Örneğin, özgün kodunuz

    Calendar0.FirstDay = vbTuesday
    

    özel numaralandırmayı kullanmak için kodunuzu aşağıdaki gibi değiştirin:

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

Daha Fazla Bilgi

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

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

Sorunu yeniden oluşturma adımları

  1. Erişimi başlatın.

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

  3. Veritabanı penceresinde, Nesneler altında Formlar'ıtıklatın. Forms

    Not

    Access 2007'de Oluştur sekmesini tıklatın ve ardından Formlar grubunda Form Tasarımı'nı tıklatın.

  4. Sağ bölmede, Tasarım görünümünde form oluştur'uçift tıklatın.

    Not

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

  5. Ekle menüsünde ActiveX Denetimi'nitıklatın.

    Not

    Access 2007'de Tasarım sekmesini tıklatın ve ardından Denetimler grubunda ActiveX Denetimini Ekle'yi tıklatın.

  6. EtkinX Denetimi Ekle iletişim kutusunda, ActiveX Denetim listesi seç kutusundan Takvim Denetimi 10.0 veya daha sonraki bir sürümü seçmek için tıklatın ve ardından Tamam'ıtıklatın.

  7. Aşağıdaki gibi ayarlanmış özellikleri olan 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'utıklatın.

    Not

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

  9. Visual Basic Düzenleyicisi'nde 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'itıklatın.

    Not

    Access 2007'de Microsoft Office Düğmesi'nitıklatın ve ardından Farklı Kaydet'itıklatın.

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

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

  13. İlk Günü Değiştir düğmesini tıklatın.

    FirstDayTakvim Denetimi'nin özelliğini vbTuesdayolarak ayarlasanız da, takvim Çarşamba gününü haftanın ilk günü olarak seçer.

Başvuru

Takvim Denetimi ve Takvim Denetimi özellikleri hakkında daha fazla bilgi için Mscal.hlp'yi açın ve ardından uygun konuyu arayın. Mscal.hlp aşağıdaki klasörlerde yer alır:

Microsoft Access 2002

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

Microsoft Office Access 2003

Kurulum 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.