Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Selecteer een onderwerp hieronder voor meer informatie over het beheren van orders in de Northwind Developer Edition. 

Deze Developer Edition van de voorbeeldtoepassing Northwind Orders is geavanceerder dan die van de Starter Edition. Het breidt het databaseschema uit (de tabellen die worden gebruikt) en biedt nu aanvullende geavanceerde functies. Het is de bedoeling om u kennis te laten maken met de functies van Microsoft Access, niet om een specifiek bedrijf te runnen.

  • De orderlijst is beschikbaar op het lint. Het heeft een paar filteropties en hyperlinks om elke bestelling te openen.

  • Zowel de orderlijst als het lint hebben een knop Order toevoegen om een nieuwe lege order te openen.

  • Selecteer in een formulier Nieuwe bestelling een bestaande klant in de vervolgkeuzelijst. Op dat moment worden de naam van uw werknemer en de nieuwe status geselecteerd. De orderdatum is ook al ingevuld. Het belastingtarief wordt gelezen uit de tabel SystemSettings en de standaardwaarde voor belastingstatus in de record Klant.

  • Nieuwe orders en inkooporders worden toegevoegd aan de MRU-lijst (Meest recent gebruikt) op het lint. Meer informatie vindt u in de sectie MRU-lijst in dit artikel

  • Laat de verzenddatum en de betaalde datum voorlopig leeg.

  • Als u orders voor nieuwe klanten wilt toevoegen, voert u de bedrijfsnaam in en gaat u met de tabtoets naar buiten. Het formulier Bedrijfsgegevens wordt geopend om de nieuwe klantrecord te voltooien. Sluit deze vervolgens en ga door met de bestelling. Het nieuwe bedrijf staat nu in de vervolgkeuzelijst Klant .

  • Als u artikelen wilt toevoegen aan een bestelling, selecteert u een Productcategorie en Product voor deze bestelling en voert u Hoeveelheid in. Eenheidsprijs wordt ingevuld en Prijs wordt berekend door een expressie.

  • Ga naar Orderstatus en verplaats de bestelling door de werkstroom van Nieuw > Gefactureerd > Verzonden > Gesloten met behulp van de knoppen bovenaan het bestelformulier.

  • Facturering kan alleen plaatsvinden als het product is toegewezen voor die bestelling. Als een regelitem de status Geen voorraad of Op bestelling heeft, treedt er een validatiefout op. De gebruiker kan een inkooporder voor dat product maken en deze ontvangen. De status van het orderitem wordt aangepast in Toegewezen.

  • Voor het verzenden van een bestelling moeten de verzender en verzendkosten worden ingevoerd. Als u dit vergeet, treedt er een validatiefout op. De verzendkosten worden toegevoegd aan het totaal van de bestelling.

  • Niet-verzonden orders kunnen worden verwijderd met de knop Bestelling verwijderen.

  • Orderregelitems kunnen niet worden gewijzigd nadat de order de status Nieuw heeft overschreden.

  • In de Northwind Starter-versie is het bestelproces ongelooflijk eenvoudig (voorraad is bijvoorbeeld altijd beschikbaar, raakt nooit op en hoeft nooit te worden gekocht). Nu, in deze Dev-editie, worden in een realistischer proces ten minste enkele van dergelijke problemen opgelost. Vergeet niet dat we Access-functies en aanbevolen procedures weergeven, niet een echte toepassing implementeren. 

  • Het bewijs dat we hier geen echte toepassing implementeren, is het feit dat datums niet worden gevalideerd. Daarom is het mogelijk om onlogische datums in te voeren, zoals een verzenddatum die vóór de orderdatum valt. 

In deze sectie vindt u informatie over de implementatie van het orderformulier, frmOrderDetails:

Het bestelformulier haalt de gegevens op uit een eenvoudige query qryOrder (zie eigenschap RecordSource ). Het is een best practice om een formulier voor gegevensinvoer te baseren op een eenvoudige query met één tabel. Houd er rekening mee dat het niet nodig is om de tabel OrderDetails op te nemen in deze query. Ordergegevens worden verwerkt door het subformulier.

Het formulier OrderList kan meerdere exemplaren van het orderformulier openen. Dit is handig omdat verkoopvertegenwoordigers te maken hebben met veel onderbrekingen en mogelijk een andere order moeten openen terwijl ze aan de eerste order werken, of deze vergelijken met een derde bestelling. De techniek wordt hier beschreven.

De verschillende id-velden halen hun waarden op uit keuzelijsten met invoervak met twee kolommen: een verborgen id-kolom en een zichtbare kolom Beschrijving. Deze keuzelijsten met invoervak zijn gebonden aan eenvoudige query's met twee kolommen: zie de eigenschap RowSource .

Aan de werkstroomknoppen is bedrijfslogica gekoppeld, waardoor de gebruiker de order van 1 naar 4 moet doorsturen. Het Northwind Development-team is zich ervan bewust dat sommige bedrijven andere regels kunnen gebruiken. Dit zou dan resulteren in een andere implementatie voor de knopklikgebeurtenissen, evenals het opnieuw overwegen van wanneer een bestelling definitief is en wanneer een bestelling nog steeds kan worden verwijderd.

Het subformulier sfrmOrderDetails is gebonden aan een complexere query. De redenen hiervoor worden besproken in de sectie Trapsgewijze keuzelijsten met invoervak hieronder. We controleren op inventaris in de gebeurtenis Form_AfterUpdate wanneer de rij wordt opgeslagen en we krachtigere databasequery's kunnen uitvoeren.

ProductCategory en Product zijn trapsgewijze keuzelijsten met invoervak: als u een keuze uit de eerste (ProductCategory) selecteert, wordt de volgende beperkt tot overeenkomende onderliggende productrecords. De techniek die hier wordt gebruikt, wordt hieronder in detail beschreven.

Wanneer u een record opslaat, moeten de vereiste velden worden ingevuld. In de Starter-editie laten we het standaardgedrag van Access gebeuren; in deze Dev-editie wordt een gebruiksvriendelijkere techniek geïmplementeerd. De techniek die hier wordt gebruikt, wordt hieronder in detail beschreven.

Voor elk orderregelitem wordt de beschikbare voorraad gecontroleerd en wordt de status dienovereenkomstig ingesteld. Het basisidee van deze functie wordt hier beschreven.
 

TRAPSGEWIJZE KEUZELIJSTEN MET INVOERVAK

Het implementeren van de vervolgkeuzelijsten Productcategorie en Product als trapsgewijze keuzelijsten met invoervak is lastig omdat deze functie niet standaard wordt ondersteund. Er zijn vier stappen nodig bij deze techniek:

Het formulier moet de modus Doorlopende formulieren hebben (niet gegevensblad). Tekstvakken overlappen het tekstgedeelte van elke keuzelijst met invoervak, zodat alleen de vervolgkeuzepijlen zichtbaar zijn. 

De recordbronquery van het formulier, qryOrderLineItems, maakt gebruik van de tabel OrderDetails , maar wordt ook samengevoegd met de tabellen Producten en ProductCategories om ProductName en ProductCategoryName op te halen. De twee overlappende tekstvaken zijn gebonden aan deze velden.

De keuzelijst Met invoervak RowSource voor de producten kijkt terug op cboProductCategories om alleen producten te retourneren voor de categorie die in die keuzelijst met invoervak is geselecteerd. Noteer de syntaxis [Formulier]! [cboProductCategories]" in de criteriumexpressie, die flexibeler is dan de expliciete Formulieren! FormName! De syntaxis van ControlName, die verwijst naar een formulier op naam.

Nadat u een productcategorie hebt geselecteerd in de niet-afhankelijke keuzelijst met invoervak ProductCategorieën , wordt met de afterupdate-gebeurtenis de keuzelijst Met invoervak Producten ingesteld op de eerste waarde in de lijst. Hiermee maakt u een nieuwe rij in de RecordSource van het formulier, die de CategoryName vult, zodat deze kan worden weergegeven door het overlappende tekstvak.
 

VALIDATIE

Voor het gebruik van de validatiecode die is geïmplementeerd in de Northwind Dev-editie is slechts drie regels code nodig:

  • In Form_BeforeUpdate:
       Cancel = ValidateForm(Me)

  • In Form_AfterUpdate en Form_Current:
        ValidateForm_RemoveHighlights Mij

Het maken van code op zichzelf is een goed patroon om te volgen, omdat het gemakkelijk is om het overal te implementeren. Professionele ontwikkelaars kunnen dit nog verder gaan, bijvoorbeeld door formuliersubklassen te gebruiken. (Dit ligt buiten de doelstellingen voor Northwind Dev.)

Het formulierobject wordt doorgegeven aan de op zichzelf staande validatiecode om te valideren. Vervolgens wordt de onderliggende verzameling RecordsetClone Fields gecontroleerd om erachter te komen welke besturingselementen zijn gebonden aan vereiste velden en of ze een waarde hebben. Als ze dat niet doen, worden ze gemarkeerd.

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×