automatisch invullen formulier met gegevens van bestaande tabellen

Status
Niet open voor verdere reacties.

dennisb1982

Gebruiker
Lid geworden
14 aug 2017
Berichten
9
Ik ben nu aan het onderzoeken of ik een eenvoudig in- en uitslag systeem in Access kan maken. Het gaat erom dat we de orders van de klant matchen met de scans. Ik heb meerdere Access voorraadsystemen bekeken. De meeste gaan uit van een formulier voor bestellingen, hebben geen barcode ondersteuning.

In eerste instantie per dag een Access bestand. De import van de orders lijkt me geen probleem. Deze komen in de tabel “orders” (ID, klant/filiaalnr, barcode, soort, aantal, datum geplande levering). Daarnaast worden de routes ingeladen in “routes” (ID, routenr, volgorde, klant/filiaalnr). Voor extra info op de papieren komt de tabel “filialen” (ID, klant/filiaalnr, klant, filiaalnr, adres) De klant/filiaalnr kan volgens mij dienen voor de keys).

Voor de eerste fase vraag ik mij af hoe ik de gescande barcodes het best kan matchen/verwerken. In het voorbeeldbestand heb ik een opzetje gemaakt met een mutatie-tabel. Ik wil een barcode scannen, waarna de rest van de gegevens automatisch ingevuld wordt in de mutatie-tabel. Op internet staan voorbeelden om formulieren automatisch te vullen, maar het lukt mij niet. De moeilijkheid zit hem in het vullen van de mutatie-tabel (ID, barcode, klant, filiaal, soort, aantal, opmerking). De barcode moet dus herkend worden met bijbehorende gegevens. Deze gegevens moeten op worden geslagen in de mutatie-tabel. In heb ook geprobeerd met een query te werken. Hoe maak ik dit formulier op de juiste manier?
 
Laatst bewerkt:
Je haalt volgens mij een paar dingen door elkaar, met name als het gaat om sleutels en automatisch vullen. Dat laatste is sowieso de vraag of je dat wel moet willen. In de tabel mutaties heb je in ieder geval een (letterlijk te lezen) waardeloze koppeling, want relaties zijn alleen nuttig als ze tussen een sleutelveld en een gerelateerd veld zijn. Barcode is nergens een sleutelveld, en dat maakt de relatie dus waardeloos. Je zult moeten koppelen op het veld ÒrderID. (Geef velden altijd een zinvolle naam; 20 tabellen met het veld ID? Niet handig.)
Als je gegevens in een tabel hebt die op te zoeken zijn in een barcode tabel (dan is barcode dus de sleutel) dan hoef je die niet in de tabel Mutaties te zetten, want ze staan al in de tabel Barcode. Je kunt ze dan wel laten zien op een formulier, als je dat handig vindt, maar opslaan doe je zeker niet, want dat levert dubbele data op en dat hoort niet in een tabel.
 
Je haalt volgens mij een paar dingen door elkaar, met name als het gaat om sleutels en automatisch vullen. Dat laatste is sowieso de vraag of je dat wel moet willen. In de tabel mutaties heb je in ieder geval een (letterlijk te lezen) waardeloze koppeling, want relaties zijn alleen nuttig als ze tussen een sleutelveld en een gerelateerd veld zijn. Barcode is nergens een sleutelveld, en dat maakt de relatie dus waardeloos. Je zult moeten koppelen op het veld ÒrderID. (Geef velden altijd een zinvolle naam; 20 tabellen met het veld ID? Niet handig.)
Als je gegevens in een tabel hebt die op te zoeken zijn in een barcode tabel (dan is barcode dus de sleutel) dan hoef je die niet in de tabel Mutaties te zetten, want ze staan al in de tabel Barcode. Je kunt ze dan wel laten zien op een formulier, als je dat handig vindt, maar opslaan doe je zeker niet, want dat levert dubbele data op en dat hoort niet in een tabel.

Bedankt voor je leerzame reactie. Inderdaad logisch om velden niet redundant op te slaan (aangepast). Te veel ID velden begrijp ik ook (aangepast). De barcode is nu de PK van tblMutaties. Zie link: https://dennisb82.stackstorage.com/s/bZdl0cYMQDaDN6N

Het formulier is me nog een raadsel. Ik begrijp uit forums dat ik voor de (bekende) barcodes een combobox moet maken. Bij een scan wordt de (bekende) barcode dan herkend. Hoe kan ik de overige order-informatie (bv. klantfil, soort, aantal, maar ook routenr) weergeven, maar de barcode met eventueel een opmerking toch in de tblMutaties opslaan?
 
Ik heb geen barcodescanner dus ik kan het niet testen, maar bij een db die ik voor een afdeling op het werk heb gemaakt, werkt de barcode gewoon in een tekstveld. Dus geen keuzelijst nodig. Tenzij je die info uit de tabel op een formulier wilt laten zien; in dat geval haal je die velden uit de keuzelijst (waar de velden dan uiteraard wel in moeten zitten). Overigens welkom bij de <Club die de verplichte beginnersfout maakt> :). Welke fout? Het denken dat de QUOTE knop een antwoord knop is. Dat is hij niet; kijk iets lager en je ziet een enorm tekstvak <Snel reageren>, en dat is uiteraard bedoeld voor een antwoord op een bericht. Niet die onnozele quoot knop :).
 
Excuus voor het misbruiken van de Quote knop :) zal niet meer gebeuren.

Ik begrijp de het automatisch gebruik van de keuzelijst niet.
Ik heb deze geplaats op mijn formulier en hier de kolom soort van tblOrders aangewezen. Ik kan het soort selecteren, maar zou graag zien dat deze automatisch wordt gevuld bij het matchen van de barcode tussen tblOrders en tblMutaties.

Overigens is het invoeren van een bardcode via een scannen niets anders dan een serie tekens op het toestenbord gevolgd door Enter.
 
Overigens is het invoeren van een bardcode via een scannen niets anders dan een serie tekens op het toestenbord gevolgd door Enter.
Dat is mij bekend, en uiteraard ook logisch: een barcode is eigenlijk niks anders dan een apparaat dat voor jou typt. En je vult dus een veld op jouw formulier als je scant. Dat kan ook een keuzelijst zijn, als je de juiste veldwaarde uitleest. Ik vermoed dat je probleem wordt veroorzaakt doordat je het veld niet activeert, maar wel vult. En dat Access dus niet ziet dat er een waarde in staat. Of zie ik dat verkeerd?
 
Ik heb nu veel zitten proberen, maar lijk er niet uit te komen. Ook eerst met een tussen query, zodat geen VBA nodig zou zijn.
Met VBA raak ik vaak de draad kwijt. Ik wil niet met een Combo-box werken.

Heb je misschien een voorbeeld OctaFish? Zou je dit in mijn laatste bestand kunnen zetten.
 
Ik zal daar morgen naar kijken; vanavond ben ik weg.
 
Nog geen tijd gehad, maar ik zal vanavond weer een poging wagen :)
 
Met VBA raak ik vaak de draad kwijt. Ik wil niet met een Combo-box werken.
Kijk, in bericht #7 geef je aan dat je niet met een keuzelijst wil werken. Prima, zoek ik in de richting van een oplossing zonder keuzelijst. En waar neem je uiteindelijk genoegen mee? Die oplossing had ik je 5 dagen geleden al kunnen geven :D
 
Kijk, in bericht #7 geef je aan dat je niet met een keuzelijst wil werken. Prima, zoek ik in de richting van een oplossing zonder keuzelijst. En waar neem je uiteindelijk genoegen mee? Die oplossing had ik je 5 dagen geleden al kunnen geven :D

Eens :thumb: Maar ik kwam erachter dat je bij de combobox ook "alleen lijst" op Nee kan zetten. Dan voldoet het.
Waar ik nu tegen aan loop is dat is de automatisch gevulde velden wil kunnen overrulen/overschrijven. Weet je of dit kan?
 
Alles kan, maar dan zul je de velden die je nu vult vanuit de keuzelijst met VBA moeten vullen, want de velden moeten dan gekoppeld zijn aan de tabel. En je kunt maar één besturingselementbron gebruiken.
 
Alles kan, maar dan zul je de velden die je nu vult vanuit de keuzelijst met VBA moeten vullen, want de velden moeten dan gekoppeld zijn aan de tabel. En je kunt maar één besturingselementbron gebruiken.

Ik leer een hoop maar ben blijkbaar nog wel een beginner :( Kun je me een richting wijzen, of zou je een voorbeeld willen maken.
In onderstaand bestand wil ik dus via frmMutations de tblMutaties vullen met barcode, scan-date-time en Remark.
Het formulier is al in de goede opmaak. Echter worden de cellen nu gevuld via de ComboBox. ComboBox is dus niet verplicht. Tekstvak is prima. Na invoer en drukken op Enter moet de andere cellen dus gevuld worden met de data. Ik probeer het met DLOOKUP, maar weet niet of dit de goed richting is.
Het zou mooier zijn als het geheel dynamischer wordt en de cellen te overschrijven zijn. Misschien kunnen de wijzigingen ook ergens geregistreerd worden?

https://dennisb82.stackstorage.com/s/t8HFu5CHXDlJY7G
 
Laatst bewerkt:
Je leeft geloof ik nog in de veronderstelling dat de QUOTE knop een antwoordknop is. Dat is het niet :) Begin gewoon te antwoorden in het prachtige grote tekstvak <Snel reageren> en gebruik de Quote alleen als je (inderdaad...) iets wilt quooten uit een ouder bericht. Nu maak je de draad nodeloos lang (in lengte) en het wordt er ook niet leesbaarder op zo.
Ik zal vanavond even naar je db kijken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan