Automatisch tabellen vullen als bepaalde velden zijn ingevuld

Status
Niet open voor verdere reacties.

BM78

Nieuwe gebruiker
Lid geworden
19 jun 2009
Berichten
2
Dit is de eerste keer in ongeveer 8 a 10 jaar dat ik weer gebruik maak van Access. Het blijft een mooi programma! Aangezien mijn kennis ver is weggezakt, heb ik veel gehad aan de verschillende vragen en antwoorden op dit forum. Echter nu wil ik iets proberen, waarbij ik echt geen idee heb, hoe ik dit voor elkaar moet krijgen (als het al mogelijk is!).

Voorinfo:
Het bedrijf verkoopt producten, die altijd in enkele maanden worden geleverd. Als product A een looptijd heeft van 6 maanden, dan betekent dit dat er vanaf de aankoopdatum in totaal 6 zendingen volgen, elk met 30 dagen tussen de zendingen. De aankoopdatum hoeft niet 'vandaag' te zijn - dit kan ook een datum in de toekomst zijn.

Opzet van Access:
Er is een tabel 'product' met daarin algemene info zoals naam en prijs. Hierin staat ook de looptijd van het product.
Er is een tabel 'klant' met persoonlijke informatie zoals naam en adres. In deze tabel staat ook het gekochte product (koppeling met tabel product) en de aankoopdatum.
Het formulier 'klant' toont bovenaan alle gegevens uit de tabel. Onderaan staat een koppeling met het formulier 'zendingen'. Het formulier 'zendingen' bestaat uit 'geplande verzenddatum', 'zending' en de aanvinkbox 'verstuurd?'.

Wat ik graag zou willen:
Er is bekend welk product is aangekocht en er is bekend wat de aankoopdatum is. Bovendien is er bekend uit hoeveel zendingen het product bestaat.
Graag wil ik het formulier 'zendingen' voorvullen met het aantal zendingen (1, 2, 3, ...) en de geplande verzenddatum, zodra er is ingevuld om welk product het gaat en welke aankoopdatum erbij hoort.
Op basis hiervan kan ik dan een query laten draaien welke zendingen nog openstaan, die vandaag of in het verleden verzonden hadden moeten worden. En dit kan ik dan mooi in een overzichtelijk rapport zetten.

Hopelijk kan iemand mij hiermee helpen. Zoals aangegeven, weet ik niet of dit mogelijk is. Als het wel mogelijk is, dan zou het super zijn. Is het niet mogelijk, dan laat ik mijn hersenen nogmaals kraken!

Bedankt voor het lezen van dit bericht.
 
Verzendingen is mogelijk

Je hebt een lange intro voor je vraag... ;)

Maar het antwoord is kortweg: Ja!
Wat je wilt is mogelijk.

Maar... er is ook een structureel probleempje met je db. Je hebt maar 2 tabellen: Product en Klant. In Klant zet je overigens ook de orders.
Ik zou nog 2 tabellen maken, namelijk: Orders en Verzendingen. 1 klant plaatst waarschijnlijk meerdere orders. En 1 order heeft 1 of meerdere verzendingen.

Als je weet uit hoeveel zendingen het product bestaat, kun je dit aantal gebruiken om een toevoeg query uit te voeren in tabel verzendingen. Dit kan bijvoorbeeld door de toevoeg query in een lus te zetten, die ophoogt tot het aantal ingevoerde zendingen is bereikt.

Aantal zendingen kan dan automatisch worden gemaakt, geplande verzenddatum, gekoppelde klant en gekoppelde order worden geregistreerd. Aankoopdatum is onderdeel van de order, niet klant of verzendingen.
De werkelijke verzenddatum en het te verzenden onderdeel kan je later invullen in de tabel verzendingen.

Met een query kan je kijken of de werkelijke verzenddatum is gevuld. En je kunt checken of er een verschil is tussen huidige datum en geplande verzendatum. Of huidige datum en werkelijke verzendatum, etc.
 
Ik weet niet of Greenery hetzelfde bedoeld als ik, maar ik zou er zelfs nog een tabel bij maken, als je toch bezig bent: de tabel Orderdetails. Vaak zal een order uit meerdere orderregels beslaan, en die wil je uiteraard niet allemaal in de tabel Orders opnemen, want dan moet je in je tabel een beperking opnemen van het aantal te bestellen artikelen.
De tabel Verzendingen zou ik dan koppelen aan de tabel OrderDetails, want artikelen van een order kunnen een aparte verzending hebben, die afhankelijkheid ligt dus bij de bestelde artikelen, niet bij de geplaatste orders.
Je zou eens kunnen kijken naar de Noordenwind database van Microsoft, die heeft wel aardige voorbeelden.

Michel
 
Orderregels

Ik weet niet of Greenery hetzelfde bedoeld als ik, maar ik zou er zelfs nog een tabel bij maken, als je toch bezig bent: de tabel Orderdetails. Vaak zal een order uit meerdere orderregels beslaan, en die wil je uiteraard niet allemaal in de tabel Orders opnemen, want dan moet je in je tabel een beperking opnemen van het aantal te bestellen artikelen.

Michel, je hebt helemaal gelijk.
Ik bedoelde dit ook niet in mn vorige post.
1 order kan meerdere producten bevatten.
En 1 product kan in meerdere orders voorkomen.
Dit is een veel-op-veel relatie, dus een orderregel tabel is dan nodig.
Was ik ff vergeten...
Dus nog een 3e tabel erbij zou ook mijn advies zijn.
 
Laatst bewerkt:
Bedankt voor de reacties! Ik ga er mee aan de slag en ga de database verder verbeteren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan