Microsoft Calendar Control 10.0 und höhere Versionen verwenden einen falschen Wert für die FirstDay-Eigenschaft
Ursprüngliche KB-Nummer: 826761
Hinweis
Dieser Artikel bezieht sich auf eine Microsoft Access-Datenbankdatei (.MDB) oder eine Microsoft Access-Datenbankdatei (.ACCDB). Erfordert grundlegende Makro-, Codierungs- und Interoperabilitätskenntnisse.
Problembeschreibung
In Microsoft Access wird ein falscher Tag für den ersten Tag des Kalendersteuerelements angezeigt. Dieses Problem tritt auf, wenn Sie ein Microsoft-Kalendersteuerelement 10.0 oder eine höhere Version in ein Formular oder in einen Bericht einfügen und dann die FirstDay
Eigenschaft des Kalendersteuerelements mithilfe von microsoft Visual Basic for Applications (VBA) systeminternen Konstanten festlegen.
Beispielsweise legen Sie die FirstDay
-Eigenschaft des Kalendersteuerelements auf vbMonday oder vbTuesday fest. Wenn Sie die FirstDay
-Eigenschaft des Kalendersteuerelements auf vbTuesday festlegen, verwendet der Kalender Mittwoch als ersten Tag der Woche.
Hinweis
Wenn Sie die früheren Versionen des Kalendersteuerelements verwenden, können Sie die FirstDay
Eigenschaft richtig festlegen.
Ursache
Dieses Problem tritt auf, weil die systeminternen Konstanten für die in Microsoft Visual Basic definierten Tage, z. B. vbSunday und vbMonday, nicht dem richtigen Tagwert zugeordnet sind.
Problemumgehung
Gehen Sie folgendermaßen vor, um dieses Problem zu umgehen:
Bestimmen Sie die Zuordnung zwischen den Tagen, den intrinsischen VBA-Konstanten und den numerischen Werten, die den richtigen Tageswerten und systeminternen VBA-Konstanten zugeordnet sind. Gehen Sie dazu wie folgt vor:
Starten Sie Den Zugriff.
Öffnen Sie die Beispieldatenbank Northwind.
Klicken Sie im Fenster Datenbank unter Objekte auf Formulare.
Hinweis
Klicken Sie in Access 2007 auf die Registerkarte Erstellen, und klicken Sie dann in der Gruppe Formulare auf Formularentwurf.
Doppelklicken Sie im rechten Bereich in der Entwurfsansicht auf Formular erstellen.
Hinweis
Überspringen Sie in Access 2007 diesen Schritt.
Klicken Sie im Menü Einfügen auf ActiveX-Steuerelement.
Hinweis
Klicken Sie in Access 2007 auf die Registerkarte Entwurf, und klicken Sie dann in der Gruppe Steuerelemente auf ActiveX-Steuerelement einfügen.
Klicken Sie im Dialogfeld ActiveX-Steuerelement einfügen im Listenfeld ActiveX-Steuerelement auswählen auf Kalendersteuerelement 10.0 oder eine höhere Version, und klicken Sie dann auf OK.
Fügen Sie dem Formular, in dem die Eigenschaften wie folgt festgelegt sind, eine Befehlsschaltfläche hinzu:
Eigenschaft Wert Name
testFD Caption
Erster Tag ändern Klicken Sie im Menü Datei auf Speichern .
Hinweis
Klicken Sie in Access 2007 auf die Microsoft Office-Schaltfläche, und klicken Sie dann auf Speichern.
Geben Sie im Dialogfeld Speichern unter im Feld Formularname den Namen Form1 ein, und klicken Sie dann auf OK , um das Formular Form1 zu speichern.
Klicken Sie im Menü Ansicht auf Code.
Hinweis
Klicken Sie in Access 2007 auf die Registerkarte Entwurf, und klicken Sie dann in der Gruppe Tools auf Code anzeigen.
Geben Sie im Visual Basic-Editor den folgenden Code ein, oder fügen Sie ihn ein:
Option Compare Database Private Sub testFD_Click() Calendar0.FirstDay = vbTuesday End Sub
Öffnen Sie Form1 in der Formularansicht.
Klicken Sie auf die Schaltfläche Erster Tag ändern .
Hinweis
Wenn die erste Spalte des Kalendersteuerelements nicht auf Dienstag festgelegt ist, notieren Sie sich den Tag in der ersten Spalte.
Klicken Sie im Visual Basic-Editor im Menü Ansicht auf Direktfenster.
Geben Sie im Direktfenster ?vbTuesday ein, und drücken Sie dann die EINGABETASTE.
Beachten Sie den numerischen Wert.
Wiederholen Sie schritt j bis schritt o, indem Sie vbTuesday durch andere systeminterne VBA-Konstanten wie vbMondayund vbWednesday ersetzen.
Beachten Sie, dass die folgende Tabelle die Zuordnung zwischen den Tagen, den intrinsischen VBA-Konstanten und den numerischen Werten enthält, die den richtigen Tageswerten und intrinsischen VBA-Konstanten zugeordnet sind.
Wochentag Intrinsische VBA-Konstante Zugeordneter numerischer Wert Montag vbSunday 1 Dienstag vbMonday 2 Mittwoch vbTuesday 3 Donnerstag vbWednesday 4 Freitag vbThursday 5 Samstag vbFriday 6 Sonntag vbSaturday 7
Erstellen Sie eine globale benutzerdefinierte Enumeration, die den Wochentagen ordnungsgemäß zugeordnet ist. Gehen Sie dazu wie folgt vor:
Klicken Sie im Fenster Datenbank unter Objekte auf Modul.
Hinweis
Klicken Sie in Access 2007 auf die Registerkarte Erstellen, klicken Sie in der Gruppe Andere auf den Pfeil unter Makro, und klicken Sie dann auf Modul.
Klicken Sie im Menü Einfügen auf Modul.
Hinweis
Überspringen Sie in Access 2007 diesen Schritt.
Geben Sie den folgenden Code in die Visual Basic-Editor ein, oder fügen Sie ihn ein:
Option Explicit Public Enum nwFirstDay nwMonday = 1 nwTuesday = 2 nwWednesday = 3 nwThursday = 4 nwFriday = 5 nwSaturday = 6 nwSunday = 7 End Enum
Hinweis
Erstellen Sie die Enumeration wie in der Spalte "Wochentag" und in der entsprechenden Spalte "Zugeordneter numerischer Wert" der Tabelle in Schritt 1r beschrieben.
Benennen Sie das Modul Day_Association, und speichern Sie es.
Schließen Sie den Visual Basic-Editor.
Ersetzen Sie die systeminternen VBA-Konstanten in Ihrer Anwendung durch die Konstanten in der benutzerdefinierten Enumeration, die in Schritt 2 beschrieben wird.
Wenn Ihr ursprünglicher Code z. B.
Calendar0.FirstDay = vbTuesday
Ändern Sie Ihren Code so, dass die benutzerdefinierte Enumeration wie folgt verwendet wird:
Calendar0.FirstDay = nwTuesday
Führen Sie die Anwendung aus.
Weitere Informationen
Die systeminternen VBA-Konstanten hängen nicht von den lokalen Systeminformationen ab. Auf einem Computer, der über das lokalisierte Betriebssystem in der deutschen Sprache verfügt, ist der erste Tag der Woche der Montag. Der numerische Wert, der montags auf dem Computer zugeordnet ist, ist immer 0.
Da Calendar Control 10.0 oder eine höhere Version ein weltweites Microsoft ActiveX-Steuerelement ist, können Sie die numerischen Werte, die den systeminternen VBA-Konstanten zugeordnet sind, nicht basierend auf ihren Computerspezifikationen steuern. Daher tritt das Problem auf, das im Abschnitt "Symptome" dieses Artikels erwähnt wird.
Schritte zum Reproduzieren des Problems
Starten Sie Den Zugriff.
Öffnen Sie die Beispieldatenbank Northwind.
Klicken Sie im Fenster Datenbank unter Objekte auf Formulare.
Hinweis
Klicken Sie in Access 2007 auf die Registerkarte Erstellen, und klicken Sie dann in der Gruppe Formulare auf Formularentwurf.
Doppelklicken Sie im rechten Bereich in der Entwurfsansicht auf Formular erstellen.
Hinweis
Überspringen Sie in Access 2007 diesen Schritt.
Klicken Sie im Menü Einfügen auf ActiveX-Steuerelement.
Hinweis
Klicken Sie in Access 2007 auf die Registerkarte Entwurf, und klicken Sie dann in der Gruppe Steuerelemente auf ActiveX-Steuerelement einfügen.
Klicken Sie im Dialogfeld ActiveX-Steuerelement einfügen im Listenfeld ActiveX-Steuerelement auswählen auf Kalendersteuerelement 10.0 oder eine höhere Version, und klicken Sie dann auf OK.
Fügen Sie dem Formular, in dem die Eigenschaften wie folgt festgelegt sind, eine Befehlsschaltfläche hinzu:
Eigenschaft Wert Name
testFD Caption
Erster Tag ändern Klicken Sie im Menü Ansicht auf Code.
Hinweis
Klicken Sie in Access 2007 auf die Registerkarte Entwurf, und klicken Sie dann in der Gruppe Tools auf Code anzeigen.
Geben Sie im Visual Basic-Editor den folgenden Code ein, oder fügen Sie ihn ein:
Option Compare Database Private Sub testFD_Click() Calendar0.FirstDay = vbTuesday End Sub
Klicken Sie im Menü Datei auf Speichern .
Hinweis
Klicken Sie in Access 2007 auf die Microsoft Office-Schaltfläche und dann auf Speichern unter.
Geben Sie im Dialogfeld Speichern unter im Feld Formularname den Namen Form1 ein, und klicken Sie dann auf OK , um das Formular Form1 zu speichern.
Öffnen Sie Form1 in der Formularansicht.
Klicken Sie auf die Schaltfläche Erster Tag ändern .
Obwohl Sie die
FirstDay
Eigenschaft des Kalendersteuerelements auf vbTuesday festlegen, wählt der Kalender Mittwoch als ersten Tag der Woche aus.
References
Weitere Informationen zum Kalendersteuerelement und zu den Eigenschaften des Kalendersteuerelements finden Sie unter Mscal.hlp, und suchen Sie nach dem entsprechenden Thema. Mscal.hlp befindet sich in den folgenden Ordnern:
Microsoft Access 2002
Installationslaufwerk: \Program Files\Microsoft Office\Office10
Microsoft Office Access 2003
Installationslaufwerk: \Program Files\Microsoft Office\Office11
Hinweis
Installationslaufwerk ist ein Platzhalter für den Namen Ihres Installationslaufwerks.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für