[Access] Toewijzen workload aan dag en tijd

Pagina: 1
Acties:
  • 92 views sinds 30-01-2008

  • okio
  • Registratie: Juni 2002
  • Laatst online: 06-05 23:07
Ik heb het volgende 'probleem' aangaande ms acces.

Ik ben bezig met een database aangaande capaciteitsplanning, de planners leggen hier op een bepaald tijdstip een order in laten we zeggen 13-05-2005 om 14:00 moet de order de deur uit zijn.

In het proces zitten drie subactiviteiten met elk hun eigen normtijd en een tijd tussen de activiteiten. Laten we zeggen:

A: normtijd 2 uur
B: normtijd 4 uur
C: normtijd 6 uur

Tussen de activiteiten zit een tijd van 2 uur (deze moet per A, B of C) varabele in te stellen zijn.

Welnu, het ms access systeem moet dus een bepaalde activiteit toewijzen aan een bepaalde werkdag. Criteria op deze kalender zijn: werkdagen, geen feestdagen en weekenden. Met een werktijd van 08.00 tot 16.30

Er geldt altijd dat activiteit C eerst gedaan moeten worden dan B en vervolgens A.

Terug naar onze order van 13-05-2005 die om 14.00 weg moet zijn.

14-00-2 = 12.00 op 13-05-2005 moet er worden gestart met activieit A
12.00-2.00 (tussentijd)-4 (normtijd) = 06.00 het systeem moet hier signaleren dat dit onder de 8.00 uur is die we hebben opgegeven en dus aageven dat er nog 2 uur overblijven en er zo dus op 12-05-2005 om 16.30-2=14.30 mee moet worden begonnen.

Hetzelfde geld weer voor activiteit C

Elke order heeft een uniek ID

Hoe is dit te realiseren heb overal op got al gezocht maar dit nog nergens kunnen vinden. Mocht ik info hebben vergeten laat het me dan aub weten zodat ik dat bij kan posten!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Hoe is dit te realiseren heb overal op got al gezocht maar dit nog nergens kunnen vinden.
Je hebt geprobeerd zoiets specifieks als dit voorgekauwd te vinden op GoT? Geen kans. ;)

Je zal sowieso een stukje moeten gaan programmeren in VBA. Wat verwacht je eigenlijk van ons? Dat we code voor je gaan schrijven? Wat heb je zelf al geprobeerd? Waarom werkte het niet? En waar heb je eigenlijk specifiek een probleem mee? Je omschrijft nou onderhand je hele opdracht, maar je zegt niet waar je problemen mee hebt. Breid je post even wat uit met een specifieke vraag, want een algemeen topic als dit lijkt verdacht veel op een scriptrequest, en die lusten we hier niet. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • okio
  • Registratie: Juni 2002
  • Laatst online: 06-05 23:07
Nou sorry dat het niet specifiek genoeg was en had zelf eigenlijk niet verwacht dat er direct vba een te pas zou moeten komen. En dat het dus binnen Xs vrij simpel te realiseren zou zijn.

Wat heb ik gedaan:

1 heeleeeee grote tabel met alle id's en costdrivers per proces, deze zijn naar een load per proces per id wegzet. Vervolgens heb ik met enkele expressies gepoogd om Access bij het kleiner worden van de tijd (07.30) hij date -1 doet. Dit is echter niet dekkend, ik krijg de load niet goed weggezet per (a,b,c) op een bepaalde dag.

Tevens heb ik in een custom kalender alle 'niet-werkdagen' er al uit gehaald dus dat probleem lijkt opgelost.

En was dit maar mn hele opdracht :p Gaat toch nog wel wat verder, dacht dat dit vrij simpel te regelen zou zijn valt dus toch tegen.

Hoop toch dat ik het zo wat beter heb kunnen toelichten en excuses voor mijn tekortkomingen op dit gebied. Vraag is dus eigenlijk hoe krijg ik deze vorm van backscheduling in Access voorelkaar zodat hij rekening houdt met vaste werktijden en bij het 'op zijn' van deze werktijden ze toewijst aan een andere dag.

[ Voor 27% gewijzigd door okio op 10-05-2005 23:41 ]


  • Boss
  • Registratie: September 1999
  • Laatst online: 14:27

Boss

+1 Overgewaardeerd

Het is ook simpel te regelen, maar je vraag is compleet niet geschikt voor hier.

Het proces heb je al zelf uitgedacht: je weet dat je aan een opdracht een verschillend aantal sub-opdrachten moet kunnen hangen, ieder met hun eigen verwerkingstijd. Vervolgens wil je, dat als de order op tijdstip x klaar moet zijn, dat het programma voor jou aangeeft dat je op tijdstip x-y moet beginnen met produceren.

De volgende stap zou zijn om een datamodel te maken. Zoals je nu schrijft:
1 heeleeeee grote tabel met alle id's en costdrivers per proces, de ze naar een load per proces per id wegzet
lijkt het erop dat het daar al niet helemaal gelukt is.

Als je je datamodel [i[wel[/i] goed voor elkaar zou hebben, zou de code er omheen bijna als vanzelf uit je toetsenbord komen.

Mocht je wat meer info over dit probleem zoeken: wat jij beschrijft is een typisch geval van 'de jobshop'. Een redelijk veel voorkomend probleem bij capaciteitsplanning en een standaard vraagstukje voor zo'n beetje iedere studie waarbij je iets over modelleren krijgt. Misschien kan je daar iets op zoeken.

Als het je allemaal niets zegt, denk ik dat je beter niet aan deze klus kan beginnen. Het is allemaal niet zo ingewikkeld en als je nu al vastloopt zit je straks met een zelfgemaakt probeersel waar je echt niets aan hebt.

Of is dit ook gewoon een stukje huiswerk?

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • okio
  • Registratie: Juni 2002
  • Laatst online: 06-05 23:07
Een datamodel heb ik en het heeft zeker ook met huiswerk te maken, hoewel het 'geen' stukje huiswerk is....

De tabel 'load per proces' kent de volgende velden:

Order ID
EDS (Estimated Date of Shipment)
ETS (Estimated Time of Shipment)
(Normtijd A * Kwantiteit A) = workload A
(Normtijd B * Kwantiteit B ) = workload B
(Normtijd C * Kwantiteit C) = workload C
Cycling Time A
Cycling Time B
Cycling Time C

Hier zou ik het op willen toepassen

Ik zal ook eens op jobshop zoeken.

[ Voor 13% gewijzigd door okio op 10-05-2005 23:49 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Ok, ik lees in dit topic nog steeds niets terug over wat je al geprobeerd hebt, en in welke richting je zelf denkt. Ik lees alleen wat je hebt en waar je naartoe wil. Om het maar even duidelijk te zeggen:
Modbreak:Geven van advies over het datamodel en de te gebruiken queries is prima, maar vragen naar complete uitwerkingen daarvan willen we niet zien, aangezien dat onder "scriptrequest" valt. Vraag je er toch naar, dan resulteert dat in een slotje.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • okio
  • Registratie: Juni 2002
  • Laatst online: 06-05 23:07
Ok nme nog 1 keer voor de duidelijkheid: ik vraag heus niet naar een pasklare oplossing, meer in de richting van queries of sql die dit op mijn tabel zou kunnen doen. Of een bepaalde XS functie.

Zoek meer naar een richting, aangezien ik vast zit...

[ Voor 14% gewijzigd door okio op 11-05-2005 00:02 ]


  • Boss
  • Registratie: September 1999
  • Laatst online: 14:27

Boss

+1 Overgewaardeerd

Maar waar zit je dan vast?

Om de analogie even te trekken: ik ben op weg naar Amsterdam. Ik zit vast, wie kan me helpen. Ik heb al een auto, maar kom er verder niet uit.

Bestaat het vervaardigen altijd uit 3 cycles, A B en C? Of kunnen dat er ook meer zijn?

Je zou nu een query kunnen maken die cycle time per product kan berekenen.
Daarna zou je die tijd vanaf de EDS/ETS af kunnen trekken.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • okio
  • Registratie: Juni 2002
  • Laatst online: 06-05 23:07
Goed waar zit ik vast:

Ik heb een tabel van activiteit A met:

ID-NR
Een geplande start datum
Een geplande start tijd

Ik weet nu wanneer er aan een bepaalde activiteit begonnen zou moeten worden. Stel dat de starttijd 16.00 uur is op 01012005 en de leadtime van de activiteit 4 uur is, een werkdag duurt tot 17.00. Dit zou betekenen dat 1/4 van x (=workload) op 01012005 'in een capaciteitsvat geplaatst moet worden' en 3/4 van x op 01022005 'in een capaciteitsvat geplaatst moet worden' Hoe kan ik dit toewijzen? Ik heb iets geprobeerd met if planned start date + leadtime = > 17.00 then verschil wat er overblijft naar datum +1. Ik krijg dit echter niet in een tabel weggezet.

X is bekend uit mijn starttabel.

En stel dat een activiteit langer dan bv 3 dagen duurt (bv 24 uur) werkdagen duren van 7.30-17.00

Ik hoop dat ik het nu specifiek genoeg heb gesteld

  • Boss
  • Registratie: September 1999
  • Laatst online: 14:27

Boss

+1 Overgewaardeerd

Hm... het wordt me een klein beetje duidelijker. Wat in ieder geval bij me opkomt is dat dit niet meer met queries gaat lukken.

Zoals ik het voor me zie heb je een lijst met opdrachten en oplevertijden. Als je wilt weten wanneer iedere opdracht te starten, zou ik de lijst met niet-ingeplande opdrachten doorlopen en deze 1 voor 1 inplannen. Per resource (machine, persoon) kan er aan slechts 1 opdracht gewerkt worden, dus zal je een resource op 'bezet' moeten zetten voor een bepaalde tijd.
Wordt er een taak ingeboekt voor een resource die al bezet is dan moet je óf een resource bijschakelen (extra machine of personeel) of eerder/later beginnen.

En dat dan in VBA...

Maar verder vind ik je vraag nog te onduidelijke om echt een antwoord te kunnen geven. Kan alleen maar bedenken wat je ongeveer in gedachten hebt en hoe ik dat zou oplossen.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • okio
  • Registratie: Juni 2002
  • Laatst online: 06-05 23:07
Dat is het in principe....

Ok dan is het duidelijk dat het niet met queries op te lossen is (was ik ook al bang voor aan het worden)

Is VBA gemakkelijk te leren? Want daar heb ik dus geen kaas van gegeten....

Of zijn er nog andere sources te vinden die me een richting met vba op zouden kunnen sturen?

  • D4Skunk
  • Registratie: Juni 2003
  • Laatst online: 20-10-2025

D4Skunk

Kind of Blue

Wat jij zoek lijkt veel op het bin packing probleem. Een kant en klaar algoritme vinden... geen idee

[ Voor 2% gewijzigd door D4Skunk op 13-05-2005 11:54 . Reden: 'k ben nog niet zo goed wakker blijkbaar *grmbl* ]


Verwijderd

okio schreef op vrijdag 13 mei 2005 @ 00:04:
Of zijn er nog andere sources te vinden die me een richting met vba op zouden kunnen sturen?
Deze

  • okio
  • Registratie: Juni 2002
  • Laatst online: 06-05 23:07
ja nee daar heb je wat aan zeg

Verwijderd

okio schreef op zaterdag 14 mei 2005 @ 17:46:
ja nee daar heb je wat aan zeg
Het niveau van mijn antwoord was toch perfect aangepast aan de vraag......

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

okio schreef op zaterdag 14 mei 2005 @ 17:46:
ja nee daar heb je wat aan zeg
En toch heeft FFrenzy gelijk: je stelt een vraag die je makkelijk zelf ook had kunnen oplossen met een beetje Googlen: [google=vba tutorial access].

Omdat het niveau van dit topic nu wel erg laag wordt (Googlen kun je zelf ook wel :)) en omdat het er niet echt vriendelijk meer aan toe gaat, doe ik dit topic nu op slot. okio, als je tegen een concreet probleem aanloopt tijdens het programmeren van je VBA-scriptje, dan kun je gerust een nieuw topic openen. Hou je daarbij wel aan de quickstart van dit subforum, dan gaat het opstarten van je topic wat minder stroef dan in dit topic. :)

En FFrenzy: ik stel voor dat je de policy mbt replies in 'slechte' topics even gaat doorlezen. Als je ziet dat er iets mis is met een topic, maak dan een topic report om het aan een moderator door te geven. Op die manier verziek je niet de sfeer in een topic, want je ziet hoe snel dat hier gebeurd is.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.