Bestelling van Form naar Tabel Schrijven

Status
Niet open voor verdere reacties.

TheDonger

Nieuwe gebruiker
Lid geworden
29 nov 2013
Berichten
2
Hallo, als project heb ik een Acces Database moeten maken waarbij het de bedoeling was om voor een niet bestaand pizza bedrijf een database te maken.

De database werkt voor het grootste deel maar het invoeren van een bestelling heb ik nog niet werkend gekregen.

Vanuit het Form Bestelling is het de bedoeling dat alle informatie van de bestelling word ingevoert en zodra er op de knop bestelling opslaan wordt gedrukt moet de informatie naar de tabel Bestellingen worden geschreven.

Ik krijg steeds de error The Microsoft Acces database engine cannot find a record in the table 'bestellingen' with key matching field(s) 'bestel ID'

Ik vroeg mij dus af of er iemand op dit forum voor mij dit probleem zou kunnen oplossen.

ik wilde de database als bijlage doen maar hij accepteerd helaas maar 100kb als max file grootte dus ik heb nu een link:
http://www.filedropper.com/pizza
 
Er mankeert nogal wat aan je formulier Bestellingen, en op dit formulier zul je nooit een bestelling kunnen maken. Ik raad dus aan om met het formulier overnieuw te beginnen. En als je toch bezig bent, kun je ook nog eens naar je Relaties kijken, want die zijn in mijn ogen ook niet logisch. De koppeling Klanten-->Bestellingen is prima, en Bestellingen--> Bestelregels ook, en ik heb ook niks aan te merken op Pizza-->Bestelregels. Maar wat doet het veld [Bezorg ID] in [
Bestellingen]? Dat veld is een uitvloeisel van Klant-->Wijk-->Bezorgers. In de tabel [Bezorgingen] zit ook een veld [Bezorgdatum], maar dat lijkt mij toch eerder thuis te horen in de tabel [Bestellingen], want een eigenschap van een Bestelling, niet van een bezorger. In beginsel is het zo dat als je de Besteldatum (is ook bezorgdatum, neem ik aan, al kun je daar ook een apart veld voor gebruiken als de bestellingen vaak eerder worden gedaan) weet, je weet voor welke klant dat is, en dan weet je ook welke wijk dat is en dus welke bezorger. Dus dat deel kan absoluut beter.
Verder kunnen er nog wat dubbele velden weg uit de verschillende tabellen...

Wat is het probleem van je formulier? Je gooit allerlei velden bij elkaar in een query, waarbij je vergeet de juiste velden uit de tabel Bestellingen te gebruiken. Bovendien kun je nooit een één-op-veel relatie met één record vullen. De oplossing is simpel: baseer je hoofdformulier (Bestellingen) op de tabel Bestellingen, en koppel aan dat formulier een subformulier voor de Bestelregels. Dan is alles netjes opgelost, en kun je probleemloos bestellingen invoeren.
 
Laatst bewerkt:
Top! Ik kan nu zonder problemen bestellingen invoeren en zodra ik op opslaan druk maakt de form netjes een nieuwe record van de bestelling aan.
Nu moet ik om mijn project af te sluiten nog een rapport aanmaken die vanuit de tabel Bestellingen de Besteltijd leest en vervolgens de omzet per week laat zien en de totaal verkochte pizza's per maand.
Ik heb al een tijdje geporbeerd om met DatePart("ww",[Bestellingen!Besteltijd]) de week te sorteren maar tot nu toe geen succes.
Ik zou het zeer op prijs stellen om hier nog wat begeleiding voor te krijgen.
 
Ik kan nu zonder problemen bestellingen invoeren en zodra ik op opslaan druk maakt de form netjes een nieuwe record van de bestelling aan.
Dat op de knop drukken is een puur symbolisch gebaar, want als je de formulieren op de juiste manier aan de tabellen hebt gekoppeld, is de bestelling al opgeslagen, omdat je rechtstreeks in de database werkt. Maar het kan natuurlijk geen kwaad om een bestelling 2 keer op te slaan :)
Met Week: DatePart("ww";[Besteldatum];2;2) kun je wel een weeknummer genereren, en op basis daarvan moet je toch een rapportje kunnen maken. Dus waar loop je vast?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan