Vanuit een Access formulier dynamisch order gegevens opvragen en vervolgens een verzend etiket afdrukken
- door Dirk van Campenhout
- •
- 18 apr, 2025
- •
- Hoe kan je vanuit een hoofdformulier met subformulier Order gegevens opvragen via een zoekveld?
- Hoe kan je een vooraf bij de order ingesteld etiket zichtbaar maken op het formulier?
- Hoe kan je het getoonde etiket afdrukken?
- In Access kan je veel voor elkaar krijgen met wizards, maar als je specifieke eindgebruikers wensen wilt instellen, dan komt er meer bij kijken. In dit blog ga ik onder andere uitleggen hoe je één en ander kunt oplossen met VBA (Visual Basic for Applications).
- De database die ik als voorbeeld gebruik is een soort verkoopsysteem. Er zitten tabellen in zoals: tblKlanten, tblOrders, tblOrderregels en tblProducten. Deze tabellen zijn met één op veel relaties aan elkaar gekoppeld.

- In de tabel tblOrders zit een extra veld Etiket waarin de naam staat van het verzend etiket dat bij die bij een specifieke Order gebruikt moet worden en op de doos moet worden geplakt.

- Er zijn twee etiketten gemaakt. Dit zijn rapporten. De recordbron is bij beide etiketten hetzelfde en er is een koppeling via criteria gemaakt. Het etiket wordt getoon aan de hand van de inhoud van het veld txtOrderID op het het formulier frmOrders.

- De rapporten van de etiketten zijn qua grootte/ formaat hetzelfde. Bij het tweede etiket staan de tekstvelden en de plaatjes 90 graden gedraaid.

- De tekst draaien wordt gedaan via de Eigenschap Verticaal onder Overige in de Ontwerpweergave van het rapport. Tip: maak een kopie van het Etiketten rapport waarin alles gewoon en recht staat en steld dan de Eigenschap Verticaal in op "Ja"
- De afbeeldingen kunnen in Access niet worden gedraaid. Tip: kopieer de plaatjes en draai ze 90 graden in een programma om afbeeldingen te bewerken en dan weer opslaan.

- Het formulier frmOrders in combinatie met de tabel tblOrderregels is met de wizard gemaakt.
- Hoe je formulier met subformulier maakt en optimaliseert (netjes maken) leer je in een training Access Gevorderd (zie mijn website: https://computerteach.nl/trainingen/access).
- Er zijn een aantal aanpassingen aangebracht.
- De Recordbron is mede afhankelijk van het OrderID dat wordt ingevuld

- In het ontwerp van het formulier frmOrders zijn de volgende extra besturingselementen toegevoegd:
- txtOrdersID ("Niet afhankelijk")
- Een subrapport met de naam rptEtiket. Het rapport is nog niet gekoppeld aan een Etiketten rapport. Daar zorgt VBA voor.
- Een knop met het bijschrift "Etiket afdrukken"

- Het besturingselement txtOrderID bevat VBA code.
- Deze code kan worden opgeroepen onder de eigenschap Na bijwerken in de categorie Gebeurtenissen (de Visual Basic Editor start dan op als je klikt op de drie puntjes). Het gaat hierom de procedure txtOrderID_AfterUpdate. Visual Basic kan je leren in de training Access VBA (zie mijn website: https://computerteach.nl/trainingen/vba)
- Zodra een OrderID getypt wordt in het veld txtOrderID wordt het formulier ververst na het indrukken van de TAB toets, worden de gegevens horende bij de Order en Orderdetails opgehaald en wordt de bron van het subformulier gekoppeld aan het Etiket behorende bij de Order en getoond.
- Achter de knop met de naam cmdAfdrukken hoort ook code en die hoort bij Eigenschap Bij Klikken onder Gebeurtenis.
- Als er op de knop geklikt, wordt het formulier ververst en wordt het Etiketten rapport geopend in de afdrukweergave.

- De formulierweergave van het formulier frmOrders start leeg op, omdat er nog geen OrderID bekend is

- Als je een OrderID invult en op TAB drukt worden de Order gegevens van de specifieke order ingelezen in combinatie met de Order details.
- Ook wordt het Etiketten rapport dat bij de Order hoort ingelezen met de verzend gegevens die daarbij horen.

- Bij een klik op de knop "Etiket Afdrukken" verschijnt het Etiketten rapport dat vervolgens geprint kan worden.

- Plaats de juiste Etiket blad in de printer en druk af.

Veel gebouwen van Unilever Research Laboratorium in Vlaardingen worden gesloopt of omgebouwd voor woningen. In de jaren 80 heb ik er gewerkt als analist: op laboratoriumschaal wasmiddelen en margarines maken. In 2006 was ik er terug en heb ik presentaties gegeven in verband de migratie naar Windows XP. In combinatie met Unilever Nederland aan de Nassaukade in Rotterdam rond de 200 presentaties. Nostalgie!