In den folgenden Abschnitten wird gezeigt, wie Sie die Mitarbeiterformulare verwenden und programmieren. Die Objektnamen werden bereitgestellt, damit Sie sie in der Northwind 2.0 Starter Edition-Datenbank leicht überprüfen können.
Verwenden der Mitarbeiterformulare
Dies sind wichtige Details zur Verwendung des Formulars Mitarbeiterliste:
- Wenn Sie im Hauptmenü Mitarbeiter auswählen, wird im Menü auf der linken Seite eine Liste der Mitarbeiter (sfrmMainMenu_EmployeeList) im Arbeitsbereich auf der rechten Seite angezeigt.
- Die ID jedes Mitarbeiters ist ein Hyperlink, um die Akte dieses Mitarbeiters in einem Popup-Formular zu öffnen und seine Daten zu bearbeiten.
- Um einen neuen Mitarbeiter hinzuzufügen, klicken Sie ganz rechts in der Kopfzeile auf die Schaltfläche Mitarbeiter hinzufügen , wodurch ein neuer Mitarbeiterdatensatz in einem Popup-Formular (sfrmEmployeeDetail_OrderList) geöffnet wird, um seine Details hinzuzufügen.
Verwenden des Popupformulars "Mitarbeiterdetails"
Hier sind wichtige Details zur Verwendung des Popup-Formulars für Mitarbeiterdetails:
Das Popup-Formular "Mitarbeiterdetails" (frmEmployeeDetail) ermöglicht das Bearbeiten und Hinzufügen von Mitarbeiterdatensätzen.
Drei Felder sind für alle Mitarbeiter erforderlich: Vorname, Nachname und Position.
Fehlermeldungen für den Standardzugriff weisen Sie darauf hin, wenn eine oder mehrere Fehlermeldungen nicht abgeschlossen sind, bevor Sie versuchen, den Mitarbeiterdatensatz zu speichern. Auf andere Felder wie E-Mail-Adresse und Telefonnummern wird keine Überprüfung angewendet. Der Benutzer ist für die richtige Formatierung verantwortlich, z. B. (000) 000-000. Die Standardzugriffsüberprüfung im Dropdownsteuerelement für Titel schränkt Einträge auf eine Liste vorausgewählter Werte ein. Sie können neue Titel hinzufügen, indem Sie wiederum das Standardverhalten von Access für Wertfeldsteuerelemente verwenden. Wenn Sie die Dropdownliste des Formulars auswählen, wird das Symbol "Bearbeiten" angezeigt.
Mitarbeiterbilder werden in der Tabelle als Anlagefeld gespeichert. Sie fügen neue Bilder hinzu oder ändern vorhandene Bilder mithilfe des Standardzugriffsverhaltens für Anlagenfelder.
Wenn ein Mitarbeiter Bestellungen erstellt hat, listet das Unterformular auf der rechten Seite des Popup-Fensters mit den Mitarbeiterdetails diese Bestellungen in der Datenblattansicht auf.
Jede vorhandene Bestellung für diesen Mitarbeiter kann bearbeitet werden, indem Sie im Unterformular Bestellungen (sfrmOrderDetails) auf die verlinkte Bestell-ID # klicken.
Programmierung der Mitarbeiterformulare
Die Mitarbeiterformulare verwenden sowohl VBA als auch eingebettete Makros in Steuerelementen auf Formularen, um grundlegende Logik auszuführen. Sie enthalten zwei eigenständige Makros und mehrere eingebettete Makros.
Mitarbeiterliste
Das Formular "Mitarbeiterliste" (sfrmMainMenu_EmployeeList) bezieht seine Daten aus einer einfachen Abfrage qryEmployeeList (aus der RecordSource-Eigenschaft ). Es wird empfohlen, ein Dateneingabeformular auf eine Tabellenabfrage zu stützen.
Die Steuerelemente im Formular "Mitarbeiterliste" sind aktiviert, d. h. Sie können sie auswählen, und sind gesperrt, d. h. sie sind schreibgeschützt.
Das Feld "Titel", das auf einem mehrwertigen Feld basiert, ist ein Dropdown- oder Kombinationsfeld. Die Zeilenquelle ist eine Werteliste, d. h. die verfügbaren optionalen Elemente sind direkt in diesem Feld enthalten. Für die Liste ist die Eigenschaft "Auf Liste begrenzen " auf "Ja" festgelegt, da dieses Formular nicht zur Bearbeitung vorgesehen ist. Das mehrwertige Feld wird nur zur Veranschaulichung des Features und nicht als Empfehlung eingefügt.
In der Mitarbeiterliste (sfrmMainMenu_EmployeeList) reagieren zwei Unterprozeduren für Key-Up - und Key-Down-Ereignisse auf die Cursorbewegungen eines Benutzers in der Datenblattansicht. Sie erkennen die Richtung einer Cursorbewegung (links, rechts, oben oder unten) und rufen VBA-Funktionen auf, die den Fokus zum entsprechenden Steuerelement verschieben.
Sie bearbeiten vorhandene Mitarbeiterdatensätze und fügen neue im Detailformular (frmEmployeeDetail) hinzu.
Sie können das Formular "Mitarbeiterdetails" aus der Mitarbeiterliste als bearbeitbares Popup-Formular auf zwei Arten öffnen:
- Durch Auswahl einer Mitarbeiter-ID, die so formatiert ist, dass sie als Link angezeigt wird, öffnen Sie das Formular "Mitarbeiterdetails", und filtern Sie es nach nur diesem Mitarbeiterdatensatz.
- Durch Auswahl der Bezeichnung "Mitarbeiter hinzufügen " in der Kopfzeile des Formulars können Sie das Formular mit den Mitarbeiterdetails öffnen und den Fokus auf einen neuen Datensatz verschieben. Alle aktuellen Datensätze befinden sich in der Datensatzquelle des Formulars.
Beachten Sie, dass sich die beiden Ansätze unterschiedlich auf die Leistung auswirken können. Das Filtern eines Formulars nach einem einzelnen Datensatz minimiert die Menge der aus der Tabelle zu übertragenden Datenmenge. Bei einem kleinen Recordset ist der Unterschied möglicherweise nicht spürbar.
Employee details
Das Formular "Mitarbeiterdetails" (frmEmployeeDetail) bezieht seine Daten aus der einfachen Abfrage qryEmployeeDetails (aus der RecordSource-Eigenschaft des Formulars). Es wird empfohlen, ein Dateneingabeformular auf eine Tabellenabfrage zu stützen.
Die SELECT-Klausel in qryEmployeeDetails verwendet das Sternchen-Platzhalterzeichen (*), um alle Felder in der Tabelle auszuwählen, während die SELECT-Klausel in qryEmployeeList bestimmte Felder auflistet. Die Verwendung des Platzhalterzeichens ermöglicht das Abrufen neuer Felder in einer zugrunde liegenden Tabelle ohne zusätzliche Bearbeitung der Abfrage. Bei einer Liste bestimmter Felder ist dies nicht möglich. Eine Liste bestimmter Felder schränkt das Recordset auf die Felder ein, die im Formular "Nur Anzeige" benötigt werden. Ihr Entwurf sollte auf der Überlegung basieren, welcher Ansatz für Ihre Anforderung besser geeignet ist, obwohl der Ansatz bevorzugt werden sollte, der am wenigsten wahrscheinlich eine zukünftige Wartung erfordert, nämlich die Verwendung des Platzhalterzeichens.
Die Steuerelemente im Formular "Mitarbeiterdetails" sind aktiviert und nicht gesperrt, d. h., Sie können sie sowohl auswählen als auch bearbeiten.
Das Feld "Titel", das auf einem mehrwertigen Feld basiert, ist ein Dropdown- oder Kombinationsfeld. Die Zeilenquelle ist eine Werteliste, d. h. die verfügbaren optionalen Elemente sind direkt in diesem Feld enthalten. Für die Liste ist die Eigenschaft "Auf Liste beschränken " auf "Nein" festgelegt, da dieses Formular zur Bearbeitung vorgesehen ist. Beim Hinzufügen oder Bearbeiten von Titeln wird die integrierte Access-Methode verwendet, sodass kein Code erforderlich ist. Das mehrwertige Feld wird nur zur Veranschaulichung des Features und nicht als Empfehlung eingefügt.
Sie können vorhandene und neue Mitarbeiterdatensätze im Detailformular bearbeiten.
Sie können das Formular "Mitarbeiterdetails" aus der Mitarbeiterliste als bearbeitbares Popup-Formular auf zwei Arten öffnen:
- Durch Auswahl einer Mitarbeiter-ID, die so formatiert ist, dass sie als Link angezeigt wird, öffnen Sie das Formular "Mitarbeiterdetails", und filtern Sie es nach nur diesem Mitarbeiterdatensatz.
- Durch Auswahl der Bezeichnung "Mitarbeiter hinzufügen " in der Kopfzeile des Formulars können Sie das Formular mit den Mitarbeiterdetails öffnen und den Fokus auf einen neuen Datensatz verschieben. Alle aktuellen Datensätze befinden sich in der Datensatzquelle des Formulars.
Das Filtern eines Formulars nach einem einzelnen Datensatz minimiert die Datenmenge, die aus der Tabelle in das Formular übertragen werden muss. Bei einem kleinen RecordSet, wie z. B. den Beispieldaten, ist der Unterschied möglicherweise nicht spürbar.
Im Unterformularsteuerelement (sfrmEmployeeDetail_OrderList) rechts neben "Persönliche Informationen " werden Bestellungen für den aktuell ausgewählten Mitarbeiter angezeigt (sofern vorhanden). Das Unterformular im Unterformular-Steuerelement wird aus dem Abschnitt Bestellungen übernommen. Die integriertenLinkMasterFields-LinkChildFields-Eigenschaften/ von Access des Unterformularsteuerelements synchronisieren und filtern die Datensätze, die für jeden Mitarbeiter angezeigt werden.
In den Mitarbeiterdetails (frmEmployeeDetail) reagieren zwei Unterprozeduren auf dem Formular " Bei aktuellem Ereignis " und " Bei geschlossenem Ereignis " auf diese Ereignisse:
- "Bei aktuell" wird die Bezeichnung "Mitarbeiter hinzufügen " angezeigt oder ausgeblendet, je nachdem, ob es sich bei dem aktuellen Datensatz um einen vorhandenen Datensatz handelt oder ob es sich um einen Datensatz für einen neuen Mitarbeiter handelt, der gestartet, aber noch nicht gespeichert wurde.
- Beim Schließen werden zwei Wartungsaktionen ausgeführt. Er fragt das Recordset im Unterformular "Mitarbeiterdetails" erneut ab, um alle im Detailformular vorgenommenen Ergänzungen oder Änderungen zu aktualisieren. Die Anzeige der Mitarbeiteranzahl im Hauptmenü wird durch Aufrufen dieses Makros erneut synchronisiert.
Makros
macMainMenu_UpdateSubs Dieses Makro ist eigenständig und wird ausgeführt, wenn bestimmte Ereignisse eintreten, einschließlich der Mitarbeiterformulare. Innerhalb macMainMenu_UpdateSubs werden Untermakros nach den Features gruppiert, auf die sie angewendet werden. Für Mitarbeiter synchronisiert das Untermakro die Anzahl der Mitarbeiterdatensätze mit der im Hauptmenü angezeigten Anzahl.
Eingebettete Makros Mitarbeiterformulare werden in erster Linie durch eingebettete Makros gesteuert, die im Formular enthalten sind und nur über das Formular bearbeitet werden können. In der Mitarbeiterliste (sfrmMainMenu_EmployeeList):
- EmployeeID-Hyperlink Wenn Sie im Formular "Mitarbeiterliste" auf die Mitarbeiter-ID klicken, wird das Formular "Mitarbeiterdetails" geöffnet, und der Fokus wird auf den ausgewählten Mitarbeiterdatensatz gesetzt.
- Mitarbeiterbezeichnung hinzufügen Wenn Sie auf die Schaltfläche "Mitarbeiter hinzufügen " klicken, wird das Formular "Mitarbeiterdetails" (frmEmployeeDetail) geöffnet und der Fokus auf einen neuen Datensatz festgelegt.
- Employee details Durch Klicken auf die Schaltfläche "Mitarbeiter hinzufügen " in der Kopfzeile wird der aktuelle Datensatz gespeichert und der Fokus auf einen neuen Datensatz gesetzt.