Van toepassing op
Access voor Microsoft 365 Access 2021 Access 2019

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

Opmerking: Naar deze pagina wordt verwezen in Access Developer Showcase Edition

In de Northwind Starter Edition is Customer het enige bedrijfstype. In de Developer Edition hebben we dit uitgebreid met klanten, verladers en leveranciers

We hebben ook Producten uitgebreid met meerdere leveranciers voor een product.   

Elk bedrijf kan slechts één type hebben: Klant, Verzender of Leverancier. De business case voor wanneer het bedrijfstype kan worden gewijzigd, wordt beschreven in de sectie frmCompanyDetail van dit artikel. '

Bedrijfstypen en waar ze worden gebruikt 

  • Klant voor een bestelling

  • Verzender voor een bestelling

  • Leverancier voor een inkooporder

  • Leverancier voor een product

Bovendien kunnen bedrijven in de Northwind Developer-versie meerdere contactpersonen hebben. '

Bedrijven op het lint

Als u Bedrijven selecteert op het lint, worden Bedrijven in Noordwind weergegeven in frmCompanyList

Bedrijfslijst - frmCompanyList

In de Northwind Developer-versie is frmCompanyList een gesplitst formulier. Een gesplitst formulier biedt u twee weergaven van uw gegevens tegelijk, formulierweergave en gegevensbladweergave. Het heeft ook een kop- en voettekst.  In deze implementatie wordt de formulierweergave niet weergegeven. Als u de formulierweergave niet weergeeft, hebben we een gegevensblad met een kop- en voettekst.  

Dit doet u als volgt:  

In frmCompanyList is de splitsbalk tussen de koptekst en het gegevensblad niet zichtbaar. De formuliereigenschap Gesplitste splitsbalk is ingesteld op Nee, waardoor de formulierweergave wordt verborgen. 

Gesplitste formulieren en gegevensbladformulieren zijn net excel-werkbladen. Ze ondersteunen filteren en sorteren en u kunt velden of kolommen weergeven, verbergen of verplaatsen. Kolommen kunnen ook worden opgeteld. 

Met kop- en voettekstsecties van een gesplitst formulier kunt u opdrachtknoppen, afbeeldingen, tekst(labels) en andere besturingselementen voor toegangsformulieren gebruiken om de gebruikerservaring te verbeteren. Voor meer informatie over formulieren en gesplitste formulieren kunt u hier beginnen. In gegevensbladen worden de kop- en voettekstsecties niet weergegeven.

Meer informatie vindt u in Inleiding tot formulieren en Een gesplitst formulier maken '

Het formulier Bedrijfslijst ondersteunt deze vijf acties:

  • Een aangepast, vooraf samengesteld filter, filteren op aanvraag of beide toepassen

  • Velden weergeven/verbergen

  • Labels maken

  • Filter weergeven

  • Een nieuw bedrijf toevoegen

Dubbelklik ergens in de detailrij om het formulier Bedrijfsgegevens te openen (niet alleen op id zoals in andere formulieren).  '

Vooraf gemaakte filters en filteren op aanvraag

Het formulier frmCompanyList is rijk aan mogelijkheden om de Bedrijven in Northwind te filteren.  Boven aan het scherm kunt u filteren met behulp van deze keuzerondjes:

  • Alle bedrijven (de standaardinstelling)

  • Alleen klanten

  • Alleen verladers

  • Alleen leveranciers

Daarnaast zijn de ingebouwde filteropties op aanvraag van het gegevensblad beschikbaar. Filters die zijn toegepast op het formulier Bedrijfslijst (vooraf samengesteld of op aanvraag) worden doorgegeven en toegepast op frmCompanyDetail wanneer het wordt geopend.  

Als u filters van het ene formulier naar het andere wilt doorgeven, moet u eerst de filterreeks van het formulier opschonen zodat deze alleen veldnamen bevat. Bekijk de codemodule Open_frmCompanyDetail voor een gedetailleerdere uitleg van hoe dit wordt gedaan en in frmCompanyDetail bij de opmerkingen voor Form_Load om te zien hoe dit wordt toegepast.

We geven de filtergegevens door aan het formulier Bedrijfsgegevens via de eigenschap OpenArgs van het formulier in plaats van het formulier te openen met een where-voorwaarde .  Meer informatie over OpenArgs vindt u hier.

Velden weergeven/verbergen

Selecteer Velden weergeven/verbergen om een dialoogvenster te openen met een lijst met alle beschikbare velden; u kunt een of meer kolommen in- of uitschakelen. De geselecteerde indeling blijft van de ene sessie naar de andere totdat een nieuwe versie van de toepassing is geïmplementeerd. Zie Kolommen in een gegevensblad weergeven of verbergen. 

Labels maken

Met de knop Labels maken wordt de wizard Toegangslabel geopend. Meer informatie over de labelwizard vindt u hier: Adresetiketten maken in Access. 

Bedrijfsdetails openen

Dubbelklik ergens in een detailrij om frmCompanyDetail te openen

Klik op het veld Id (ingesteld als hyperlink) of dubbelklik op een ander veld in de detailrij om frmCompanyDetail te openen voor het geselecteerde bedrijf en een formulierfilter dat is toegepast op de bedrijfslijst door te geven aan frmCompanyDetail.

Bedrijfsdetails - frmCompanyDetail

Op het eerste gezicht ziet de frmCompanyDetail er relatief eenvoudig uit.  Maar dat is het niet.  In de code achter het formulier gebeurt er veel!  In het formulier worden de volgende acties en functies gemarkeerd:

  • Verschillende opdrachtknoppen en koppelingen

    • Bedrijf toevoegen

    • Email bedrijfslijst

    • Filter weergeven

    • Bedrijf verwijderen

    • Een kaart openen op basis van een adres

    • Een website openen via een hyperlink

  • Acties annuleren of opslaan in de modus voor toevoegen/bewerken

  • Bedrijfsregels om te bepalen wanneer een bedrijfstype kan worden gewijzigd

  • Controle van referentiële integriteit vóór de verwijderings-gebeurtenis '

De gebeurtenis Form_Load bevat de volgende acties:

  • Gebruik meerdere parameters die zijn doorgegeven aan het formulier via OpenArgs en de aangepaste functie Northwind StringToDictionary

  • Gebruik de formuliereigenschap OpenArgs om een gebruiker toe te staan een nieuw bedrijf toe te voegen tijdens het nemen van een bestelling

  • Gebruik de GoToRecord-techniek om een nieuw bedrijf toe te voegen

  • Gebruik de Techniek SearchForRecord om naar het bedrijf te gaan dat is geselecteerd op frmCompanyList

  • Opties voor vertakking/voorwaardelijke uitvoering (zie Form_Load gebeurtenis)

    • Optie 1: case-instructie

    • Optie 2: genest indien anders

    • Optie 3 : ElseIf

    • Optie 4: genest indien anders en ElseIf '

In de Form_Current gebeurtenis treedt het volgende op: 

  • Wijzig een subformulier onderschrift en bronobject tijdens runtime door het sub aan te roepen ManageFormOptions(). Deze subroutine wordt in dit formulier vanaf meerdere plaatsen aangeroepen.  '

Acties annuleren of opslaan in de modus voor toevoegen of bewerken. 

Onze Toegangsformulieren zijn gebonden.  Wat betekent dat?  Van Microsoft: 'Een 'gebonden' formulier is een formulier dat rechtstreeks is verbonden met een gegevensbron, zoals een tabel of query, en kan worden gebruikt om gegevens uit die gegevensbron in te voeren, te bewerken of weer te geven.

Met afhankelijke formulieren hoeft u uw gegevens niet expliciet op te slaan.  Wanneer u van de ene record naar de volgende gaat, worden uw gegevens automatisch opgeslagen.  Vaak werkt dat precies zoals u dat wilt.  Maar wat gebeurt er als een gebruiker een actie moet uitvoeren om aan te geven dat hij of zij klaar is om op te slaan? 

Formulier frmCompanyDetail heeft bijvoorbeeld een subformulier voor Contactpersonen (sfrmCompanyDetail_Contacts).  Wat gebeurt er als u begint met het toevoegen of bewerken van de bedrijfsgegevens, bijvoorbeeld telefoonnummer, en pauzeert om een typefout op te lossen die u ziet in de gegevens van een contactpersoon?  Standaard worden alle wijzigingen die u in de bedrijfsrecord hebt aangebracht, opgeslagen wanneer u op de contactpersoonrecord klikt. Dit is niet wat u wilt. 

In dit formulier laten we één manier zien om dit te bereiken met één record voor een bedrijf.

Wat is de reden voor het gebruik van de knop Annuleren ? De escape-sleutel annuleert alle ingevoerde of gewijzigde (maar niet-opgeslagen) gegevens in een besturingselement op het formulier. In deze status wordt het potloodpictogram weergegeven in de recordkiezer (een grijze verticale balk aan de linkerkant van de rij).

Nadat u echter op de knop Bedrijf toevoegen hebt geklikt, ziet u dat er geen potloodpictogram is totdat u begint met het invoeren van gegevens in de nieuwe bedrijfsrecord. Wat gebeurt er als u op dit moment van gedachten verandert over het toevoegen van een nieuw bedrijf? Als u op de escape-toets drukt, gebeurt er niets omdat u nog geen gegevens hebt ingevoerd. Daarom hebben we de knop Annuleren.

Klikken op de knop Annuleren werkt altijd; de escape-sleutel werkt alleen wanneer u gegevens hebt ingevoerd of gewijzigd.  

Als u begint met het toevoegen of wijzigen van gegevens en vervolgens het formulier sluit zonder op Opslaan of annuleren te klikken, worden de gegevens standaard opgeslagen in Access.  

Bedrijfsregel: Als northwind-bedrijfsregel voor bedrijven willen we dat u expliciet aangeeft dat u wilt opslaan.  Om ervoor te zorgen, moeten we controleren of de gebruiker op Opslaan heeft geklikt in de Form_BeforeUpdate gebeurtenis. Als de gebruiker niet op Opslaan heeft geklikt, moet de gebruiker worden gevraagd om aan te geven of hij of zij de wijzigingen wil opslaan of annuleren. '

Wijziging bedrijfstype

Bedrijfsregel: Als een bedrijf bestaande orders, inkooporders heeft of een leverancier is voor een product, kan de gebruiker het bedrijfstype niet wijzigen. We hebben een functie, CompanyIsActive(), gemaakt om te bepalen of een van de bovenstaande voorwaarden bestaat. Als dit het probleem is, kan de gebruiker het bedrijfstype pas wijzigen als deze verwijzingen zijn gewist (verwijderd). 

Deze regel wordt alleen in dit formulier afgedwongen.  In een productieklare toepassing kunt u gebruikers niet toestaan om gegevens te wijzigen door de tabel rechtstreeks te openen.  In Northwind kunt u de tabellen openen en doen wat u wilt.  Dit is een geweldige manier om te leren, maar het laat u ook vrij om wijzigingen aan te brengen die mogelijk in strijd zijn met de regels. 

Je moet altijd defensief programmeren. Plan het onverwachte. Zelfs als het bedrijf momenteel een verzender is, betekent dit niet dat het op een bepaald moment geen leverancier of klant was. Hun id kan worden gevonden in oudere records in de tabellen ProductVendor of PurchaseOrder . '

Aangepast dialoogvensterformulier.

Om de resultaten weer te geven, gebruikt cboCompanyTypeID_BeforeUpdate een dialoogvensterformulier, frmGenericDialog. Dit kan een goed alternatief zijn voor het standaardberichtvak wanneer u veel informatie wilt weergeven. Het wordt ook gebruikt met het werknemersformulier voor een vergelijkbaar doel.'  Referentiële integriteitscontrole verwijderen

In de Northwind Starter Edition laten we u via het standaardgedrag van Access weten dat een bedrijf niet kan worden verwijderd wanneer het gerelateerde records heeft.  

In de Northwind Developer Edition informeren we u vóór de verwijdering, in plaats van het standaardgedrag van Access te accepteren.  We doen dat met dezelfde functie als bij Het bedrijfstype wijzigen; function CompanyIsActive().

Het verschil is dat we alleen om orders of inkooporders geven. Als er geen orders of inkooporders zijn, bevestigen we uw voornemen om te verwijderen en verwijderen we de productleverancier en contactpersonen als deze voor u bestaan. 

Meer hulp nodig?

Meer opties?

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