waarde van tabel uitgifte zetten naar tabel voorraad uitgifte

Status
Niet open voor verdere reacties.

Danielle1973

Gebruiker
Lid geworden
30 aug 2017
Berichten
6
Hoi,

Ik ben al een tijd aan het klooien met access, ik loop stuk op een onderdeel

ik wil een waarde van nieuw in (tabel:uitgifte) zetten naar uitgifte (tabel:magazijn)

heb een relatie gemaakt, maar kom echt niet verder nu.

wie oh wie kan mij helpen.

bijgesloten een screenschotBekijk bijlage vraag access.zip
 
Aan een plaatje hebben we niet zoveel, en jij hebt in deze aan die relatie niks. Relaties werken op tabelniveau; je koppelt een hoofdtabel aan een onderliggende tabel. Factuurregels dus aan Factuur, Bestelregels aan Bestelling etc.
Herleidbare gegevens zou je in beginsel niet op moeten slaan; niet alleen heb je dataredundantie (dubbele gegevens), doorgaans zijn die gegevens ook niet aan elkaar gerelateerd, zoals in jouw geval, en dan klopt er al snel niets meer van. Een tabel Uitgifte bijvoorbeeld slaat de in- en uitvoer van artikelen op. In de tabel (Magazijn) leg je de minimum en maximum hoeveelheden vast van de artikelen die je wilt registreren. Volgens mij moet het dan zo werken:
1. Je begint met niks. Logisch als je een nieuwe winkel o.i.d. begint, dan heb je nog niks.
2. Je koopt de artikelen in; de voorraad van alle ingekochte artikelen is dan dus positief.
3. Je geeft artikelen uit. Elk artikel dat je uitgeeft verlaagt de waarde van je voorraad. Je controleert de actuele waarde op de velden Minimum en Maximum om te zien of je moet bijbestellen of niet.
4. Hebben we het over uitleen, dan komen er artikelen terug. De voorraad wordt dus hoger. Gaat het om verkoop, dan koop je nieuwe voorraad in. Zelfde principe
5. Stappen 3 en 4 herhalen zich, daarmee fluctueert de voorraad dus naargelang de hoeveelheden die je in- en uitboekt.
6. Regelmatig kun je een magazijncheck doen om te kijken of de actuele voorraad overeenkomt met wat de computer aangeeft. Deze afwijkingen kun je dan registreren.

En meer hoef je volgens mij niet te doen. Je kunt te allen tijde de actuele voorraad opvragen door een som te maken van alle plus en minwaarden. Er is dus m.i. geen enkele noodzaak, in tegendeel zelfs, om de actuele voorraad ook nog eens in de tabel Magazijn bij te houden. Het is namelijk dus ook geen magazijn gegeven, zoals ik hopelijk nu heb uitgelegd. Tenzij je de hele magazijnregistratie (magazijn + uitgifte) in één tabel kan doen, wat overigens mijn voorkeur wel zou hebben. Hangt een beetje af van wat je nog meer in de tabellen opslaat. Maar daar is een voorbeeldje dan weer ideaal voor :).
 
Bekijk bijlage vraag.zip

Hierbij mijn database.

ik wil dus ook kunnen zien naar wie het gegaan is en op welke datum.
Tevens is er een machine uitleen table. maar die werkt goed.
Probleem zit hem in de uitgaande verbruiksartikelen in magazijn tabel.

Kan zijn dat ik veels te moeilijk aan denken ben.
 
Ik zal er vanavond eens rustig naar kijken. Beetje druk vandaag :)
 
Je voorbeeldje komt niet overeen met je vraag, en er zitten wel héél weinig records in. Als we een goed antwoord willen geven, zullen we op zijn minst een kopie moeten hebben van de database zoals je hem aan het maken bent. Daar hoeven dan uiteraard geen honderden records in te zitten en al helemaal geen productiegegevens, maar realistische dummygegevens zijn wel handig. Maar dus in ieder geval (kopieën van de) de tabellen zoals je ze zelf ook hebt. Ik heb in een andere vraag die nu loopt een vergelijkbare opmerking gemaakt, omdat we anders tijd steken en kijken naar problemen die niet spelen in de echte database en dat is natuurlijk zonde van onze tijd, en van de jouwe.
Dus graag een kopie van de goede tabellen, (kun je simpel maken door een tabel te kopiëren en te plakken als <Alleen Structuur>) met dus realistische dummy gegevens.
 
Hierbij de verknipte database met dummy gegevens.
Beide tabellen hebben een kolom met nieuw in, nieuw uit, gebruik in, gebruik uit


table magazijn = huidige voorraad
Tabel Artikel_uitgeef = uitgave voorraad op naam



nieuw in waarde moet van uitgeef table naar Magazijn table (nieuw in). Daarmee was mijn insteek een berekening maken van de actuele voorraad, dat lukt mij.

Bekijk bijlage database.zip
 
Ik denk dat je nog wel wat normalisatieslagen kan maken. Zo gebruik je het veld [Artikelnummer] een beetje halfslachtig; één artikelnummer kan bij jou rustig 24 records bevatten (verschillende maten, verschillende kleuren) of leeg zijn, zodat een artikelnummer niet als sleutel gebruikt kan worden. Normaal gesproken heb je dus een tabel Artikelen die je koppelt op basis van ID aan de tabel Magazijn en aan [artikel_uitgeef]. Nu moet je op de artikelnaam werken, en dat is nogal foutgevoelig. De velden [Nieuw Uit], [Nieuw In], [Gebruikt Uit] en [Gebruikt In] horen m.i. niet thuis in de tabel Magazijn. Die gegevens sla je al op in de tabel [artikel_uitgeef]. Dus eigenlijk is je vraag overbodig en is het juiste antwoord: gooi die dubbele velden weg :).
 
Ik denk dat je nog wel wat normalisatieslagen kan maken. Zo gebruik je het veld [Artikelnummer] een beetje halfslachtig; één artikelnummer kan bij jou rustig 24 records bevatten (verschillende maten, verschillende kleuren) of leeg zijn, zodat een artikelnummer niet als sleutel gebruikt kan worden. Normaal gesproken heb je dus een tabel Artikelen die je koppelt op basis van ID aan de tabel Magazijn en aan [artikel_uitgeef]. Nu moet je op de artikelnaam werken, en dat is nogal foutgevoelig. De velden [Nieuw Uit], [Nieuw In], [Gebruikt Uit] en [Gebruikt In] horen m.i. niet thuis in de tabel Magazijn. Die gegevens sla je al op in de tabel [artikel_uitgeef]. Dus eigenlijk is je vraag overbodig en is het juiste antwoord: gooi die dubbele velden weg :).

ga ik doen. Artikelnr kan ik niet als index zetten, dit zijn artikelnummers van de leverancier, helaas hebben wij niet alle artikelnummers bij de hand.

Hoe kan ik het dan zo maken dat de spullen die ik uitgeef automatisch van magazijn voorraad afgaat?
 
Laatst bewerkt:
Artikelnummers die je van buiten krijgt, van de leveranciers bijvoorbeeld, heb je nodig op het moment dat je zelf bij hun gaat bestellen, maar kunnen nooit jouw sleutel bepalen. Al was het maar omdat elke leverancier zijn eigen stramien heeft, en de nummers dus nooit een uniforme vorm kunnen hebben. Bovendien bestaat de kans dat een nummer bij meerdere leveranciers voorkomt en dus niet uniek is. Dat neemt niet weg dat elk artikel dat jij invoert, in de artikeltabel wél een uniek nummer kan, nee: moet hebben. En die nummering bepaal jij natuurlijk helemaal zelf. Kortom: in een artikelentabel heb je wel degelijk een uniek artikelnummer dat jij bepaalt, en een artikelnummer dat bij de leverancier vandaan komt. En dat laatste is dan niet uniek. Uiteraard gebruik je in de koppelingen met andere tabellen je eigen sleutelveld.

Wat betreft je db opzet: ik zou dus een mutatietabel gebruiken voor de uitgifte waarin je bijhoudt wat de in- en uitgaande stromen zijn. Een Artikeltabel bevat dan alle artikelgegevens en bijvoorbeeld de minimum en maximum voorraad. Wat betreft magazijn: als je één magazijn(plek) hebt, dan kun je de opslagplek van het artikel best in de artikelentabel zetten. Heb je meerdere plekken nodig voor een artikel, en meerdere magazijnen, dan kun je daar een aparte tabel voor gebruiken, waar je dan uiteraard de mutatietabel ook aan hangt. Maar volgens mij moet je ook in een magazijntabel geen mutaties vastleggen, want mutaties zijn geen eigenschap van een magazijn. In een magazijntabel leg je de indeling vast (kasten, planken etc) en wat daar ligt. Als een magazijn is ingedeeld, dan verandert er in beginsel ook niet zo veel aan lijkt me. Een artikel komt binnen, en gaat altijd naar dezelfde stelling en dezelfde plank. De beschikbare ruimte bepaalt hoeveel artikelen je kwijt kunt. Ook dat is een eigenschap die in de magazijntabel dus thuis hoort.

Stel dat je (even een Ikea voorbeeld) kast verkoopt, en je wilt er altijd 50 in voorraad hebben, en maximaal 200. Dan zijn dat dus de minimum en maximumwaarde die in de tabel Artikelen voorkomen. In het magazijn heb je dan rij 12 met stellingen 1-24 waar ruimte is voor 480 artikelen; dus 20 per stelling. Dan heb je dus minimaal 3 stellingen nodig, en maximaal 10. Dan koppel je dus in je magazijn tabel een aantal stellingen aan dat artikelnummer.
Begin je nu met een lege winkel (en dat doet iedereen natuurlijk) dan begin je dus met artikelen te bestellen. Vervolgens ga je artikelen uitgeven, die het totaal van de voorraad uiteraard beïnvloeden. Start je met 500 stuks, en verkoop je er 20, dan is de nieuwe voorraad 50-20=480. Volgende transactie is verkoop van 25 stuks, dus nieuwe voorraad is 455. Nieuwe bestelling: 50 stuks, dus de vooraad is dan 505. En zo verder. Kortom: op basis van totalen kun je altijd de voorraad zien en er is dus geen enkele noodzaak om dat ook nog eens apart op te slaan. Sterker nog: als de een of andere jodokus in de magazijntabel het getal 300 intypt, terwijl de berekening in mutaties 505 oplevert, dan heb je dus een probleem. En waarom zou je extra problemen toevoegen?

Je hebt natuurlijk ook dat er wel eens wat fout gaat, verkeerd geadministreerd wordt, kapot gaat etc. Daarom moet je ook inventarisaties kunnen opslaan. Ook geen probleem, dat doe je dus óók in de mutatietabel. Als het rapport aangeeft dat er 505 artikelen moeten zijn, en je komt niet verder dan 503 bij het tellen, dan voer je dus een correctie in van -2. En dan klopt je totaaltelling weer.

Gelieve dit antwoord niet te quooten (sowieso niet quooten als het niet nodig is); je kunt gewoon in het tekstvak <Snel reageren> beginnen te typen :)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan