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:
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:
Start Access.
Open de voorbeelddatabase Northwind.
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.
Dubbelklik in het rechterdeelvenster op Formulier maken in de ontwerpweergave.
Opmerking
Sla in Access 2007 deze stap over.
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 .
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.
Voeg een opdrachtknop toe aan het formulier waarvoor de eigenschappen als volgt zijn ingesteld:
Eigenschap Waarde Name
testFD Caption
Eerste dag wijzigen Klik in het menu Bestand op Opslaan.
Opmerking
Klik in Access 2007 op de Microsoft Office-knop en klik vervolgens op Opslaan.
Typ in het dialoogvenster Opslaan als formulier1 in het vak Formuliernaam en klik vervolgens op OK om het formulier Form1 op te slaan.
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 .
Typ of plak de volgende code in de Visual Basic-Editor:
Option Compare Database Private Sub testFD_Click() Calendar0.FirstDay = vbTuesday End Sub
Open Formulier1 in de formulierweergave.
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.
Klik in de Visual Basic-Editor op Direct venster in het menu Beeld.
Typ in het venster Direct ?vbTuesday en druk op Enter.
Let op de numerieke waarde.
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
Maak een globale aangepaste opsomming die correct is toegewezen aan de weekdagen. Ga hiervoor als volgt te werk:
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.
Klik in het menu Invoegen op Module.
Opmerking
Sla in Access 2007 deze stap over.
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.
Geef de module de naam Day_Association en sla deze op.
Sluit de Visual Basic-Editor.
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
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
Start Access.
Open de voorbeelddatabase Northwind.
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.
Dubbelklik in het rechterdeelvenster op Formulier maken in de ontwerpweergave.
Opmerking
Sla in Access 2007 deze stap over.
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 .
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.
Voeg een opdrachtknop toe aan het formulier waarvoor de eigenschappen als volgt zijn ingesteld:
Eigenschap Waarde Name
testFD Caption
Eerste dag wijzigen 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 .
Typ of plak de volgende code in de Visual Basic-Editor:
Option Compare Database Private Sub testFD_Click() Calendar0.FirstDay = vbTuesday End Sub
Klik in het menu Bestand op Opslaan.
Opmerking
Klik in Access 2007 op de Microsoft Office-knop en klik vervolgens op Opslaan als.
Typ formulier1 in het dialoogvenster Opslaan als in het vak Formuliernaam en klik vervolgens op OK om het formulier Form1 op te slaan.
Open Formulier1 in de formulierweergave.
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.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor