Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

Wählen Sie ein beliebiges Thema unten aus, um mehr über die Verwaltung von Aufträgen in der Northwind Developer Edition zu erfahren. 

Diese Developer Edition der Northwind Orders-Beispielanwendung ist fortgeschrittener als die der Starter Edition. Es erweitert das Datenbankschema (die verwendeten Tabellen) und bietet jetzt zusätzliche erweiterte Features. Hiermit soll Ihnen die Features von Microsoft Access vorgestellt werden, nicht um ein bestimmtes Geschäft zu betreiben.

  • Die Bestellliste ist über das Menüband verfügbar. Es verfügt über einige Filteroptionen und Links zum Öffnen der einzelnen Bestellungen.

  • Sowohl die Bestellliste als auch das Menüband verfügen über die Schaltfläche Bestellung hinzufügen, um eine neue leere Bestellung zu öffnen.

  • Wählen Sie in einem Formular Neue Bestellung in der Dropdownliste einen vorhandenen Kunden aus. An diesem Punkt sind Ihr Mitarbeitername und die neue status ausgewählt. Das Bestelldatum ist ebenfalls bereits ausgefüllt. Der Steuersatz wird aus der Tabelle SystemSettings gelesen, und der Steuerstatus wird standardmäßig aus dem Kundendatensatz verwendet.

  • Neue Bestellungen und Bestellungen werden der MRU-Liste (Zuletzt verwendet) im Menüband hinzugefügt. Weitere Informationen finden Sie im Abschnitt MRU-Liste in diesem Artikel

  • Lassen Sie das Versanddatum und das Zahlungsdatum vorerst leer.

  • Um Bestellungen für neue Kunden hinzuzufügen, geben Sie den Firmennamen ein, und drücken Sie die TAB-TASTE. Das Formular "Unternehmensdetails" wird geöffnet, um den neuen Kundendatensatz abzuschließen. Schließen Sie es dann, und fahren Sie mit der Bestellung fort. Das neue Unternehmen befindet sich nun in der Dropdownliste Kunde .

  • Um einer Bestellung Artikel hinzuzufügen, wählen Sie eine Produktkategorie und ein Produkt für diese Bestellung aus, und geben Sie Quantity ein. Der Einzelpreis wird ausgefüllt, und Der Preis wird durch einen Ausdruck berechnet.

  • Erweiterter Bestellstatus, und verschieben Sie die Bestellung über den Workflow aus Neu > Rechnungsstellung > Versandt > Geschlossen mithilfe der Schaltflächen oben im Bestellformular.

  • Die Rechnungsstellung kann nur erfolgen, wenn das Produkt für diesen Auftrag zugeordnet ist. Wenn sich eine Position im status "No Stock" oder "On Order" befindet, tritt ein Überprüfungsfehler auf. Der Benutzer kann eine Bestellung für dieses Produkt erstellen und erhalten, und die Bestellposition status wird auf Zugeordnet angepasst.

  • Um eine Bestellung zu versenden, müssen die Versand- und Versandkosten eingegeben werden. Wenn Sie dies vergessen, tritt ein Validierungsfehler auf. Die Versandkosten werden der Bestellsumme hinzugefügt.

  • Nicht verschiffte Aufträge können mithilfe der Schaltfläche Auftrag löschen gelöscht werden.

  • Bestellpositionen können nicht geändert werden, nachdem die Bestellung den neuen status.

  • In der Northwind Starter-Version ist der Bestellvorgang unglaublich einfach (z. B. ist der Bestand immer verfügbar, läuft nie aus und muss nie gekauft werden). Nun, in dieser Dev Edition, werden in einem realistischeren Prozess zumindest einige solche Probleme behandelt. Denken Sie daran, dass wir Access-Features und bewährte Methoden präsentieren und keine reale Anwendung implementieren. 

  • Ein Beweis dafür, dass wir hier keine reale Anwendung implementieren, ist die Tatsache, dass Datumsangaben nicht überprüft werden. Daher ist es möglich, unlogische Datumsangaben einzugeben, z. B. ein Versanddatum , das vor dem Bestelldatum liegt. 

In diesem Abschnitt werden wichtige Implementierungsdetails des Bestellformulars frmOrderDetails behandelt:

Das Bestellformular ruft seine Daten aus einer einfachen Abfrage qryOrder ab (siehe RecordSource-Eigenschaft ). Das Erstellen eines Dateneingabeformulars auf einer einfachen Abfrage mit einer Tabelle ist eine bewährte Methode. Beachten Sie, dass es nicht erforderlich ist, die OrderDetails-Tabelle in diese Abfrage einzuschließen. Bestelldetails werden vom Unterformular verarbeitet.

Das OrderList-Formular kann mehrere Instanzen des Bestellformulars öffnen. Dies ist praktisch, da Vertriebsmitarbeiter mit vielen Unterbrechungen zu tun haben und möglicherweise eine andere Bestellung öffnen müssen, während sie an der ersten Arbeiten arbeiten, oder sie mit einer dritten Bestellung vergleichen müssen. Die Technik ist hier dokumentiert.

Die verschiedenen ID-Felder erhalten ihre Werte aus zweispaltigen Kombinationsfeldern: einer ausgeblendeten ID-Spalte und einer sichtbaren Beschreibungsspalte. Diese Kombinationsfelder sind an einfache zweispaltige Abfragen gebunden: Siehe die RowSource-Eigenschaft .

Den Workflowschaltflächen ist eine Geschäftslogik zugeordnet, die den Benutzer zwingt, die Bestellung von 1 auf 4 zu verschieben. Das Northwind-Entwicklungsteam ist sich bewusst, dass einige Unternehmen möglicherweise unterschiedliche Regeln verwenden. Dies würde dann zu einer anderen Implementierung für die Schaltflächenklickereignisse führen, sowie zu einer erneuten Überlegung, wann eine Bestellung bestimmt ist und wann eine Bestellung noch gelöscht werden kann.

Das Unterformular sfrmOrderDetails ist an eine komplexere Abfrage gebunden. Die Gründe dafür werden im Abschnitt Kaskadierende Kombinationsfelder weiter unten erläutert. Wir überprüfen den Bestand im Form_AfterUpdate-Ereignis, wenn die Zeile gespeichert wird, und wir können leistungsfähigere Datenbankabfragen ausführen.

ProductCategory und Product sind kaskadierende Kombinationsfelder: Wenn Sie aus dem ersten (ProductCategory) auswählen, wird der nächste auf übereinstimmende untergeordnete Produktdatensätze beschränkt. Die hier verwendete Technik wird unten ausführlich beschrieben.

Beim Speichern eines Datensatzes müssen die erforderlichen Felder ausgefüllt werden. In der Starter Edition lassen wir das Access-Standardverhalten auftreten. in dieser Dev Edition wird eine benutzerfreundlichere Technik implementiert. Die hier verwendete Technik wird unten ausführlich beschrieben.

Für jede Bestellposition wird der verfügbare Bestand überprüft und die status entsprechend festgelegt. Die Grundidee dieses Features wird hier beschrieben.
 

KASKADIERENDE KOMBINATIONSFELDER

Das Implementieren der Dropdownliste "Produktkategorie" und "Produkt" als kaskadierende Kombinationsboxen ist schwierig, da Access dieses Feature nicht sofort unterstützt. Bei dieser Technik sind vier Schritte erforderlich:

Das Formular muss sich im Fortlaufenden Formularmodus (nicht Datenblatt) befinden. Textfelder überlappen den Textteil jedes Kombinationsfelds, sodass nur deren Dropdownpfeile sichtbar sind. 

Die Datensatzquellenabfrage qryOrderLineItems des Formulars verwendet wie gewohnt die Tabelle OrderDetails , verknüpft aber auch die Tabellen Products und ProductCategories, um ProductName und ProductCategoryName zu erfassen. Die beiden überlappenden Textfelder sind an diese Felder gebunden.

Das Kombinationsfeld RowSource for the Products sucht nach cboProductCategories , um nur Produkte für die in diesem Kombinationsfeld ausgewählte Kategorie zurückzugeben. Beachten Sie die Syntax "[Form]! [cboProductCategories]" im Kriterienausdruck, der flexibler ist als die expliziten Forms! FormName! ControlName-Syntax , die auf ein Formular anhand des Namens verweist.

Nachdem Sie eine Produktkategorie im ungebundenen Kombinationsfeld ProductCategories ausgewählt haben, legt das AfterUpdate-Ereignis das Kombinationsfeld Produkte auf den ersten Wert in der Liste fest. Dadurch wird eine neue Zeile in der RecordSource des Formulars erstellt, die categoryName auffüllt, damit sie durch das überlappende Textfeld angezeigt werden kann.
 

VALIDIERUNG

Die Verwendung des in der Northwind Dev Edition implementierten Validierungscodes erfordert nur 3 Codezeilen:

  • In Form_BeforeUpdate:
       Cancel = ValidateForm(Me)

  • In Form_AfterUpdate und Form_Current:
        ValidateForm_RemoveHighlights Mir

Code sehr eigenständig zu gestalten, ist ein gutes Muster, das befolgt werden muss, da es die Implementierung überall erleichtert. Professionelle Entwickler können dies noch weiter gehen, indem sie z. B. Formularunterklassen verwenden. (Dies geht über die Ziele von Northwind Dev hinaus.)

Das Formularobjekt wird zur Überprüfung an den eigenständigen Validierungscode übergeben. Anschließend wird die zugrunde liegende RecordsetClone Fields-Auflistung überprüft, um herauszufinden, welche Steuerelemente an erforderliche Felder gebunden sind, und ob sie über einen Wert verfügen. Wenn dies nicht der Fall ist, werden sie hervorgehoben.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×