Freigeben über


Ersetzen des Kalendersteuerelements in Access 2010-Anwendungen (maschinell übersetzt)

Wichtig

Dieser Artikel wurde maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss. Die englische Version des Artikels ist als Referenz hier verfügbar: here.

Office Visual - gewusst wie

Zusammenfassung:  Erfahren Sie, wie Sie das veraltete Kalendersteuerelement in Microsoft Access 2010-Anwendungen ersetzen können.

Letzte Änderung: Mittwoch, 16. September 2015

Gilt für: Access 2007 | Access 2010 | Access Services | Office 2007 | Office 2010

Veröffentlicht:  Oktober 2010

Zur Verfügung gestellt von:  Ken Getz, http://www.mcwtech.com/default.htmMCW Technologies, LLC

Übersicht

Microsoft Access hat ein Calendar -Steuerelement enthalten, da es Unterstützung für ActiveX-Steuerelemente, zuerst in Access 2.0 hinzugefügt. Das Calendar-Steuerelement MSCAL.OCX, ist nicht mit Access 2010 enthalten. Zusätzlich, wenn Sie versuchen, ein Formular zu öffnen, die das Steuerelement enthält, erhalten Sie die folgende Fehlermeldung: "eine Microsoft Office Access-Datenbank oder ein Projekt enthält einen fehlenden oder fehlerhaften Verweis auf die Datei ꞌMSCAL.OCXꞌ."

Code schreiben

Um das Calendar-Steuerelement in Access 2010 Anwendungen zu ersetzen, haben Sie mehrere Optionen. Sie können:

  • Verwenden Sie die integrierte DatePicker-Funktion für jedes TextBox -Steuerelement, das ein Date-Feld gebunden ist.

  • Verwenden Sie das Windows- DatePicker -Steuerelement Teil der allgemeinen Windows-Steuerelemente.

  • Verwenden Sie ein Unterformular, das aussieht und funktioniert wie ein Kalender.

  • Datum-Kalender-Steuerelement eines Drittanbieters verwenden.

In diesem Visual wie wird alle außer der letzten Option. Um zu beginnen, downloaden Sie die Beispieldatenbank CalendarDemo.accdb (Access 2010-Datenbank). Beachten Sie, dass die Datenbank eine Tabelle namens Geburtsdaten mit drei Feldern (ID, Kundenname und Geburtsdatum) und zwei Formen enthält:

  • Geburtsdaten, gebunden, die Beispieltabelle namens Geburtsdaten.

  • FrmCalendar, Beispiel Ersatz für das Calendar -Steuerelement.

Wenn Ihre aktuellen Anwendungen MSCAL verwenden.OCX Calendar-Steuerelement müssen Sie jede Instanz des Steuerelements entfernen, bevor Sie die Formulare verwenden können, die das Steuerelement derzeit enthält. Dieses Beispiel zeigt, dass die nächste Step─that ist die Verwendung von alternativen Zugriff auf Kalender -Steuerelement.

Verwenden der integrierten DatePicker

Access 2007 und Access 2010 ermöglichen eine Datumsauswahl zu jedem Textfeld-Steuerelement hinzufügen, die ein Date-Feld gebunden ist. Um das Formular in Aktion zu sehen, öffnen Sie die Geburtsdaten bilden (siehe Abbildung 1). Das Textfeld Geburtsdatum an Feld Birthdate in der Tabelle Geburtsdaten gebunden ist, und wenn das Textfeld den Fokus hat, können Sie das Symbol der kleine Kalender neben dem Feld, um einen Kalender anzuzeigen, und wählen ein Datum. Das Kalender-Symbol wird nur angezeigt, wenn das Textfeld den Fokus hat.

Abbildung 1. Integrierte Datumsauswahl

Integrierte Datumsauswahl

Um die integrierte Datumsauswahl verwenden, müssen Sie bestätigen, dass für Datumsangaben, die ShowDatePicker-Eigenschaft festgelegt wurde wie in Abbildung 2 dargestellt. Das TextBox -Steuerelement muss an ein Datumsfeld gebunden sein, und die InputMask-Eigenschaft für das Steuerelement muss entfernt werden, wenn Sie ein Eingabeformat zuvor erstellt haben.

Abbildung 2. ShowDatePicker-Eigenschaft

ShowDatePicker-Eigenschaft

Verwenden Sie das DatePicker-Steuerelement

Die Windows-Standardsteuerelemente stellt ein ActiveX DatePicker -Steuerelement für die Verwendung in allen Anwendungen und Ihrer Access-Anwendungen können dieses Steuerelement auch verwenden. Mithilfe dieses Steuerelements erfordert mehr Aufwand als die Verwendung der integrierten Datumsauswahl, bietet jedoch mehr Flexibilität.

Die Beispielanwendung enthält mehrere Instanzen des Windows- DatePicker -Steuerelements. Allerdings sollten Sie eine Instanz selbst hinzufügen. Um das Windows- DatePicker -Steuerelement verwenden, öffnen Sie das Geburtsdaten-Formular in der Entwurfsansicht. Klicken Sie in der Multifunktionsleiste auf die Dropdown Schaltfläche in der unteren rechten Ecke die Gruppe von Steuerelementen, um alle Steuerelemente anzuzeigen, und wählen Sie ActiveX-Steuerelemente aus der Liste der Optionen (siehe Abbildung 3).

Abbildung 3. Optionen für ActiveX-Steuerelemente

Optionen für ActiveX-Steuerelemente

Das Dialogfeld Einfügen eines aktiven Steuerelements , einen Bildlauf nach unten zu finden, Microsoft Date und Time Picker-Steuerelement 6.0 (SP4) (das Steuerelement auf Ihrem Computer möglicherweise einen höheren SP wie SP6), und klicken Sie dann auf OK , um das Steuerelement einfügen (siehe Abbildung 4). Beachten Sie, dass die Liste der verfügbaren Steuerelemente möglicherweise nicht in der Abbildung übereinstimmt.

Abbildung 4. Microsoft Datums- und Zeitauswahl-Steuerelement

Microsoft-Steuerelement für die Datums- und Uhrzeitauswahl

Auswählen des Steuerelements fügt eine Instanz des aktuellen Formulars. Sie können die Größe ändern, verschieben und ändern das Steuerelement genau wie jedes andere Steuerelement in Access (genau wie Sie mit dem ursprünglichen Kalender -Steuerelement könnte). Löschen Sie das Steuerelement, dass Sie zuvor Added─there bereits ist auf dem Formular eine Instanz des DatePicker steuern (siehe Abbildung 5).

Beachten Sie folgende Informationen über dieses Steuerelement:

  • Die ControlSource-Eigenschaft für das DatePicker- Steuerelement Birthdate, sodass es aussieht und Funktionen wie andere Access-Control─when, in der Datumsauswahldas Datum ändern, festgelegt wurde, Access speichert automatisch den Wert im Feld "Birthdate" für die aktuelle Zeile des Formulars.

  • CheckBox-Eigenschaft des Steuerelements wurde auf Ja festgelegt. Diese Eigenschaft bestimmt, ob das Steuerelement anzeigen soll, ein Kontrollkästchen, die angibt, dass es sich um einen nicht-Null-Wert enthält. Die Benutzer des Formulars die zugrunde liegende Tabelle eine neue Zeile hinzufügen, legen Sie diese Eigenschaft auf Ja, sonst das Steuerelement angeben nicht den null-Wert der neuen Zeile für das Feld Geburtsdatum.

  • Sie haben eine hervorragende Kontrolle über die Benutzeroberfläche des Steuerelements. Sie können ein- oder Ausblenden von Pfeile nach oben und nach unten weisenden Pfeil; Sie können die Schriftart (festgelegt Calibri im Beispiel zu den anderen Steuerelementen entspricht) und andere visuellen Eigenschaften ändern.

Abbildung 5. Beispielformular enthält ein DatePicker-Steuerelement

Beispielformular mit einem DatePicker-Steuerelement

Versuchen Sie das Steuerelement: Geburtsdaten Formular öffnen, und klicken Sie dann auf den Dropdownpfeil im Steuerelement (siehe Abbildung 6). Wählen Sie ein Datum, verschieben Sie auf der nächsten Zeile und zurück, und Sie werden sehen, dass Sie das Geburtsjahr erfolgreich für die aktuelle Person geändert haben. Wechseln Sie zur neuen Zeile, und beachten Sie, dass das Kontrollkästchen im Steuerelement nicht aktiviert ist (d. h., dass der Wert null ist). Wenn Sie fertig sind, schließen Sie das Formular.

Abbildung 6. DatePicker-Steuerelement

DatePicker-Steuerelement

Verwenden Sie einen benutzerdefinierten Kalender-Formular

Zusätzlich zu den vorherigen Techniken sollten Sie einen Kalender, der genau wie das alte Calendar -Steuerelement immer angezeigt wird. Eine Möglichkeit, dies zu erreichen ist, ein Unterformular zu verwenden, die das Verhalten eines Kalenders enthält. Mindestens eine dieser für Sie erstellt wurde, und die Beispielanwendung enthält das Formular mit dem Namen FrmCalendar. Das Formular ist Self-Contained─you das Formular nur in Ihrer eigenen Anwendung importieren und Sie können betten es in anderen Formular als ein Unterformular. Open FrmCalendar in der Entwurfsansicht anzeigen (siehe Abbildung 7), und Sie werden sehen, dass es ein kleines Formular mit einem Schaltflächen und anderen Controls─the Code innerhalb der Form übernimmt die gesamte Arbeit aktualisieren und Verwalten von die Form. Wählen Sie in der Multifunktionsleiste in der Gruppe ExtrasCode anzeigen. Überprüfen Sie den Code. Ändern Sie den Code nicht. Schließen Sie die Visual Basic-Editor und dann FrmCalendar, wenn Sie fertig sind.

Abbildung 7. Beispiel-FrmCalendar in der Entwurfsansicht

Beispiel für 'frmCalendar' in der Entwurfsansicht

Wählen Sie zum Testen des Formulars Kalender in der Multifunktionsleiste Erstellenund dann auf Formularentwurf. Ziehen Sie aus dem Navigationsbereich eine Kopie des FrmCalendar auf das neue Formular. Diese Aktion erstellt ein neues Unterformular, wie in Abbildung 8 dargestellt. Standardmäßig ist der Name für das Unterformular Kalender. Sie können den Namen ändern, aber lassen wie es jetzt ist.

Abbildung 8. Instanz des FrmCalendar eines neuen Formulars

Instanz von 'frmCalendar' in einem neuen Formular

Das Kalenderformular ist nicht sinnvoll, wenn Sie nur auswählen können Dates─you muss auch zu bestimmen, wann das ausgewählte Datum geändert haben. Das Beispielformular löst ein DateChanged-Ereignis, die an den Ereignishandler übergibt einen Parameter, der das neue ausgewählte Datum enthält. Auf dieses Ereignis reagieren erfordert zusätzliche Arbeit, da das Unterformular kein Steuerelement ist. Eigentlich nur zwei zusätzliche Codezeilen ist erforderlich: die folgenden Schritte zeigen, wie der Ereignishandler verknüpfen.

Fügen Sie das neue Formular, das Sie zuvor in der Entwurf öffnen erstellt, ein TextBox -Steuerelement auf das Formular neben dem Kalender. Benennen Sie die neue TextBox -Steuerelement SelectedDate. Wählen Sie auf der Multifunktionsleiste Code anzeigen. Fügen Sie in das Formularmodul die folgende Deklaration.

```VB Private WithEvents calendarForm as Form_frmCalendar ```

Diese Erklärung definiert eine Variable, die auf den Kalender-Form-Klasse verweisen kann (benannte Form_frmCalendar, Default─every-Formular bietet eine Klasse, deren Name Form_ < Formularname >). Mit dem WithEvents-Schlüsselwort können Sie auf Ereignisse reagieren, das löst das Objekt die Variable verweist. In diesem Fall das Objekt löst das DateChanged-Ereignis aus, und fügen Sie einen Ereignishandler für das Ereignis hinzu.

Wählen Sie aus der Dropdown-Liste Objekt auf der linken oberen Ecke des Visual Basic-Editor-Fensters Formular. Diese Aktion wird den Form_Load-Ereignishandler erstellt. Ändern Sie den Ereignishandler so, dass es im folgenden Codebeispiel ähnelt.

```VB Private Sub Form_Load() Set calendarForm = Calendar.Form End Sub ```

Dieser Code legt die Variable, die Sie zuvor erstellt haben, so dass es auf die Form-Eigenschaft des Unterformulars verweist, die Sie auf dem Formular erstellt. Das heißt, können Sie für die programmgesteuerte Interaktion mit dem Kalenderformular.

Wählen Sie abschließend in der Dropdown-Liste ObjektCalendarForm (die Variable, die Sie zuvor mithilfe des Schlüsselwortes WithEvents deklariert). Diese Aktion wird den calendarForm_DateChanged-Ereignishandler erstellt. Ändern Sie den Ereignishandler so, dass es im folgenden Codebeispiel ähnelt.

```VB Private Sub calendarForm_DateChanged(newDate As Date) selectedDate = newDate End Sub ```

Dieser Code hat den Parameter, der durch das Formular an den Ereignishandler übergeben wird, und kopiert den Wert in das Textfeld " SelectedDate " auf dem Formular.

Speichern Sie Ihre Änderungen, benennen das Formular Form1, und wechseln Sie zurück zur Access 2010. Öffnen Sie das Formular, und wählen Sie ein Datum im Kalender. Sollten Sie das ausgewählte Datum in das TextBox -Steuerelement angezeigt werden (siehe Abbildung 9). Schließen Sie das Formular, wenn Sie fertig sind.

Abbildung 9. Kalenderdatum

Kalenderdatum

Obwohl Sie das Formular an ein Tabellenfeld binden können als Sie das Calendar -Steuerelement könnten, können Sie Code, um das Verhalten emulieren schreiben. Das Beispielformular Geburtsdaten, enthält einige einfachen Code zum Einbinden der Bindung. Öffnen Sie das Formular in der Entwurf , und wählen Sie Code anzeigen. Beachten Sie, dass der Code im Modul Formulars Code, die Sie bereits haben ähnelt, außer für eine Ergänzung gesehen: der Current-Ereignishandler des Formulars wie im folgenden Codebeispiel gezeigt.

```VB Private Sub Form_Current() On Error Resume Next calendarForm.Value = Me.Birthdate End Sub ```

Dieser Code überprüft, ob das Kalenderformular Feld Birthdate in der aktuellen Zeile, wie Sie Zeilen auf dem Formular bewegen zeigt. Das Hinzufügen der On Error Resume Next-Anweisung ermöglicht Code spezielle Fehlerbehandlung zu vermeiden, die andernfalls für die neue Zeile erforderlich wären in denen Feld Birthdate null ist.

DateChanged-Ereignishandler legt außerdem fest, den Feldwert Geburtsdatum des Formulars, anstatt den Wert eines TextBox -Steuerelements auf das Formular.

```VB Private Sub calendarForm_DateChanged(newDate As Date) Me.Birthdate = newDate End Sub ```

Diese Änderung im zuvor gezeigten Code bewirkt, dass Änderungen im Kalenderformular zurück zu den zugrunde liegenden Feld Birthdate sofort verbreiten so jedes andere Steuerelement gebunden, die Feld-Updates, sobald Sie die Änderung vornehmen.

Schließen Sie Visual Basic-Editor-Fenster zu und öffnen Sie das Formular Geburtsdaten. Verschieben von Zeile zu Zeile, und stellen Sie sicher, dass das Formular aktualisiert das aktuelle Birthdate-Feld übereinstimmen. Ändern Sie Geburtsdatum im Kalenderformular, und überprüfen Sie, dass auch die anderen Steuerelemente an Update Feld Birthdate gebunden. Schließen Sie das Formular, wenn Sie fertig sind.

Lesen

Die hier angezeigten Optionen wird angegeben, sollten Sie das Calendar -Steuerelement mit der integrierten Datumsauswahl, das DatePicker- Steuerelement oder ein Unterformular Kalender ersetzen können. Ohne diese funktionieren genau wie der ursprüngliche Kalender -Steuerelement. Jedoch sollte es möglich, ersetzen Sie das Steuerelement mit einer dieser Optionen.

Berücksichtigen Sie die folgenden vor- und Nachteile der einzelnen Optionen:

  • Integrierte Datumsauswahl

    • Einfach zu verwenden (erfordert nur die ShowDatePicker-Eigenschaft festlegen).

    • Keine Anpassung zur Verfügung.

    • Funktioniert nur mit TextBox -Steuerelemente, die an ein Date-Feld in einer Tabelle gebunden werden.

  • DatePicker Steuerelement

    • Relativ einfach zu verwenden.

    • Ermöglicht eine weitere Anpassung als integrierte Datumsauswahl.

    • Kann auch Zeiten auswählen verwendet werden.

    • Kann an eine Datenquelle gebunden werden.

    • Die Microsoft benutzerdefinierte Steuerelemente-DLL, die schwere Versionsproblemen führt abhängig. Ihre Endbenutzer möglicherweise nicht die gleiche Version der DLL installiert, wie Sie tun, und dies erfordert ihre DLL auf die neueste Version aktualisieren.

    • Nur als eine Dropdown-Liste angezeigt, und kann nicht als open-Kalender angezeigt werden.

  • Kalenderformular

    • Nur als ein Kalender öffnen (eine Pro und einem Con) angezeigt.

    • Vollständig anpassbar, aber einige Arbeit in den Designer und Code erfordert.

    • Einfach zu Use─merely auf ein Formular ziehen und den Code schreiben.

    • Verknüpfen von Ereignissen ist zusätzlichen Code erforderlich.

    • Bindung ist nicht verfügbar, ohne Code zu schreiben.

Anzeigen

Video ansehen

Das Video | Länge: 00: 12: 24

Klicken Sie hier, um den Code abzurufen

Ergreifen Sie den Code

Erforschen

Über den Autor
Ken Getz ist leitender Berater bei MCW Technologies. Er ist Mitautor von ASP.NET Developers Jumpstart (Addison-Wesley, 2002), Access Developer's Handbook (Sybex, 2001) und VBA Developer's Handbook, 2nd Edition (Sybex, 2001).

Hinweis

Haftungsausschluss für maschinelle Übersetzungen: Dieser Artikel wurde mithilfe eines Computersystems und ohne jegliche Bearbeitung durch Personen übersetzt. Microsoft bietet solche maschinellen Übersetzungen als Hilfestellung für Benutzer ohne Englischkenntnisse an, damit Sie von den Informationen zu Produkten, Diensten und Technologien von Microsoft profitieren können. Da es sich bei diesem Artikel um eine maschinelle Übersetzung handelt, enthält er möglicherweise Fehler in Bezug auf (Fach-)Terminologie, Syntax und/oder Grammatik.