Microsoft Calendar Control 10.0 en latere versies gebruiken een onjuiste waarde voor de eigenschap FirstDay

Origineel KB-nummer: 826761

Opmerking

Dit artikel is van toepassing op een Microsoft Access-databasebestand (.mdb) of op een Microsoft Access-databasebestand (.accdb). Vereist basisvaardigheden op het gebied van macro's, coderen en interoperabiliteit.

Symptomen

In Microsoft Access wordt een onjuiste dag weergegeven voor de eerste dag van het agendabeheer. Dit probleem treedt op wanneer u een Microsoft Agenda-besturingselement 10.0 of een latere versie invoegt in een formulier of in een rapport en vervolgens de FirstDay eigenschap van het agendabesturingselement instelt met behulp van intrinsieke constanten van Microsoft Visual Basic for Applications (VBA).

U stelt bijvoorbeeld de FirstDay eigenschap van het besturingselement Agenda in op vbMaandag of op vbTuesday. Wanneer u de FirstDay eigenschap van het besturingselement Agenda instelt op vbTuesday, gebruikt de agenda woensdag als de eerste dag van de week.

Opmerking

Wanneer u de eerdere versies van Agendabeheer gebruikt, kunt u de FirstDay eigenschap correct instellen.

Oorzaak

Dit probleem treedt op omdat de intrinsieke constanten voor de dagen die zijn gedefinieerd in Microsoft Visual Basic, zoals vbSunday en vbMonday, niet zijn gekoppeld aan de juiste dagwaarde.

Tijdelijke oplossing

Volg deze stappen om dit probleem te omzeilen:

  1. Bepaal de koppeling tussen de dagen, de intrinsieke VBA-constanten en de numerieke waarden die zijn gekoppeld aan de juiste dagwaarden en intrinsieke VBA-constanten. Ga hiervoor als volgt te werk:

    1. Start Access.

    2. Open de voorbeelddatabase Northwind.

    3. Klik in het venster Database op Formulieren onder Objecten.

      Opmerking

      Klik in Access 2007 op het tabblad Maken en klik vervolgens in de groep Formulieren op Formulierontwerp.

    4. Dubbelklik in het rechterdeelvenster op Formulier maken in de ontwerpweergave.

      Opmerking

      Sla in Access 2007 deze stap over.

    5. Klik in het menu Invoegen op ActiveX-besturingselement.

    Opmerking

    Klik in Access 2007 op het tabblad Ontwerpen en klik vervolgens op ActiveX-besturingselement invoegen in de groep Besturingselementen .

    1. Klik in het dialoogvenster ActiveX-besturingselement invoegen op Agendabeheer 10.0 of een latere versie in de keuzelijst Een ActiveX-besturingselement selecteren en klik vervolgens op OK.

    2. Voeg een opdrachtknop toe aan het formulier waarvoor de eigenschappen als volgt zijn ingesteld:

      Eigenschap Waarde
      Name testFD
      Caption Eerste dag wijzigen
    3. Klik in het menu Bestand op Opslaan.

      Opmerking

      Klik in Access 2007 op de Microsoft Office-knop en klik vervolgens op Opslaan.

    4. Typ in het dialoogvenster Opslaan als formulier1 in het vak Formuliernaam en klik vervolgens op OK om het formulier Form1 op te slaan.

    5. Klik in het menu Beeld op Code.

      Opmerking

      Klik in Access 2007 op het tabblad Ontwerpen en klik vervolgens op Code weergeven in de groep Extra .

    6. Typ of plak de volgende code in de Visual Basic-Editor:

      Option Compare Database
      
      Private Sub testFD_Click()
          Calendar0.FirstDay = vbTuesday
      End Sub
      
    7. Open Formulier1 in de formulierweergave.

    8. Klik op de knop Eerste dag wijzigen .

      Opmerking

      Als de eerste kolom van het besturingselement Agenda niet is ingesteld op Dinsdag, noteert u de dag in de eerste kolom.

    9. Klik in de Visual Basic-Editor op Direct venster in het menu Beeld.

    10. Typ in het venster Direct ?vbTuesday en druk op Enter.

      Let op de numerieke waarde.

    11. Herhaal stap j tot en met stap o door vbTuesday te vervangen door andere intrinsieke VBA-constanten, zoals vbMondayen vbWednesday.

      U ziet dat u de volgende tabel hebt om de koppeling weer te geven tussen de dagen, de intrinsieke VBA-constanten en de numerieke waarden die zijn gekoppeld aan de juiste dagwaarden en intrinsieke VBA-constanten.

      Weekdag VBA Intrinsiek constante Numerieke waarde gekoppeld
      Maandag vbSunday 1
      Dinsdag vbMonday 2
      Woensdag vbTuesday 3
      Donderdag vbWednesday 4
      Vrijdag vbThursday 5
      Zaterdag vbFriday 6
      Zondag vbSaturday 7
  2. Maak een globale aangepaste opsomming die correct is toegewezen aan de weekdagen. Ga hiervoor als volgt te werk:

    1. Klik in het venster Database op Module onder Objecten.

      Opmerking

      Klik in Access 2007 op het tabblad Maken , klik op de pijl onder Macro in de groep Overige en klik vervolgens op Module.

    2. Klik in het menu Invoegen op Module.

      Opmerking

      Sla in Access 2007 deze stap over.

    3. Typ of plak de volgende code in de Visual Basic-Editor:

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

      Opmerking

      Maak de opsomming zoals beschreven in de kolom 'Weekdag' en in de bijbehorende kolom 'Numerieke waarde gekoppeld' van de tabel in stap 1r.

    4. Geef de module de naam Day_Association en sla deze op.

    5. Sluit de Visual Basic-Editor.

  3. Vervang de intrinsieke VBA-constanten in uw toepassing door de constanten in de aangepaste opsomming die wordt beschreven in stap 2.

    Als uw oorspronkelijke code bijvoorbeeld

    Calendar0.FirstDay = vbTuesday
    

    wijzig uw code als volgt om aangepaste opsomming te gebruiken:

    Calendar0.FirstDay = nwTuesday
    
  4. Voer de toepassing uit.

Meer informatie

De intrinsieke VBA-constanten zijn niet afhankelijk van de lokale systeeminformatie. Op een computer met het gelokaliseerde besturingssysteem in de Duitse taal is de eerste dag van de week bijvoorbeeld maandag. De numerieke waarde die is gekoppeld aan maandag op de computer is altijd 0.

Omdat Calendar Control 10.0 of een latere versie een wereldwijd Microsoft ActiveX-besturingselement is, kunt u de numerieke waarden die zijn gekoppeld aan de intrinsieke VBA-constanten niet beheren op basis van de specificaties van uw computer. Daarom treedt het probleem op dat wordt vermeld in de sectie Symptomen van dit artikel.

Stappen om dit probleem te reproduceren

  1. Start Access.

  2. Open de voorbeelddatabase Northwind.

  3. Klik in het venster Database op Formulieren onder Objecten.

    Opmerking

    Klik in Access 2007 op het tabblad Maken en klik vervolgens in de groep Formulieren op Formulierontwerp.

  4. Dubbelklik in het rechterdeelvenster op Formulier maken in de ontwerpweergave.

    Opmerking

    Sla in Access 2007 deze stap over.

  5. Klik in het menu Invoegen op ActiveX-besturingselement.

    Opmerking

    Klik in Access 2007 op het tabblad Ontwerpen en klik vervolgens op ActiveX-besturingselement invoegen in de groep Besturingselementen .

  6. Klik in het dialoogvenster ActiveX-besturingselement invoegen op Agendabeheer 10.0 of een latere versie in de keuzelijst Een ActiveX-besturingselement selecteren en klik vervolgens op OK.

  7. Voeg een opdrachtknop toe aan het formulier waarvoor de eigenschappen als volgt zijn ingesteld:

    Eigenschap Waarde
    Name testFD
    Caption Eerste dag wijzigen
  8. Klik in het menu Beeld op Code.

    Opmerking

    Klik in Access 2007 op het tabblad Ontwerpen en klik vervolgens op Code weergeven in de groep Extra .

  9. Typ of plak de volgende code in de Visual Basic-Editor:

    Option Compare Database
    
    Private Sub testFD_Click()
     Calendar0.FirstDay = vbTuesday
    End Sub
    
  10. Klik in het menu Bestand op Opslaan.

    Opmerking

    Klik in Access 2007 op de Microsoft Office-knop en klik vervolgens op Opslaan als.

  11. Typ formulier1 in het dialoogvenster Opslaan als in het vak Formuliernaam en klik vervolgens op OK om het formulier Form1 op te slaan.

  12. Open Formulier1 in de formulierweergave.

  13. Klik op de knop Eerste dag wijzigen .

    Hoewel u de FirstDay eigenschap van het agendabesturingselement instelt op vbTuesday, selecteert de agenda woensdag als de eerste dag van de week.

Verwijzingen

Open Mscal.hlp en zoek vervolgens naar het juiste onderwerp voor meer informatie over Agendabeheer en de eigenschappen agendabesturingselement. Mscal.hlp bevindt zich in de volgende mappen:

Microsoft Access 2002

Installatiestation: \Program Files\Microsoft Office\Office10

Microsoft Office Access 2003

Installatiestation: \Program Files\Microsoft Office\Office11

Opmerking

Installatiestation is een tijdelijke aanduiding voor de naam van het installatiestation.