08. september 2010 - 14:04Der er
12 kommentarer og 1 løsning
Optælling og udregning
Hej,
Jeg har et problem, for mig stort, så jeg håber der er nogen der kan hjælpe mig.
Jeg sidder med en database til mit arbejde, vi tager referenceprøver fra min 3 gange om dagen. Vi skriver i dag det på et ark papir, hvor efter vi skal aflevere det til vores kvalitetsafdeling, vi kunne godt tænke os at det blev elektronisk som resten af vores papirarbejde, men jeg kan ikke få den til at regne sammen og fortælle når pallen er fuld og skal filmes, så vi ikke kommer ud til en overfyldt palle, som vi tit gør i dag. Det skal lige siges at vi har 5 forskellige referencepaller, hvor kasserne er fordelt på alt efter størrelse.
Det jeg har problemer med er, at der skal være f.eks. 32 kartoner på en palle når den er fuld, men hvordan får jeg access 2007 til at regne ud, hvornår den er nået 32 kartoner, uden at man selv skal skriv kartonnr på.
I den rapport der skal sendes til kval. skal der stå, dato, tidspunkt, varenr, varenavn, om det er opstart eller midt i en produktion og initialer for den der har sat kassen ud. (Den tror jeg nok jeg har fået styr på...)
Håber der er nogen der kan hjælpe mig, og at jeg ikke har fået skrevet det alt for knudret...
OK - hvad har du fået lavet hidtil? Vel en tabel til data, en formular til at indsætte data, og en rapport? Hvordan ser tabellen ud: dvs hvilke felter indeholder den?
" hvornår den er nået 32 kartoner, uden at man selv skal skriv kartonnr på" Hvordan vil du have, at Access skal få data ind i db, hvis du ike selv skriver et eller andet?
Karton type bliver hente fra en anden tabel da vi har en del forskellige kartoner, som der bliver pakket i. RefId bliver hentet fra en tabel, som henviser til hvilket palle kartonen skal placeres på i fryseren.
Det vil sige at tbl er en opslagstabel og tblReferenceprøve er den tabel som bliver lavet om til en formular, som vi så skal taste ind i nede i produktionen.
Håber det var en smule mere uddybet og mere brugbar end det første
Jeg forstår det ikke helt: ved folk af sig selv hvilken palle en karton skal sættes på? Hvis ikke så skulle den info vel også vises i indtastningsformularen?
Hvad er "Krt på palle?"
Du antyder at der er flere kartontyper end palletypet - har det betydning for hvor mange der skal være på hver palle? Dvs uanset sammenblandingen af kartontyper, altid samme antal per palle?
Man kan lave en forespørgsel, køre den via DCount, som giver dig antallet af kartoner på en palle. DU kan have een for hver palletype. Derpå kan du manipulere resultatet - fx trække fra det max antal såom må være på pallen. Når tallet er 0, så er dr tid til en ny palle. Antallet kan vises i et textfelt (for hver palle), og DCOUNT kan du køre som en AfterUpdate event, når brugeren har indtastet en ny prøve i formularen.
Prøver lige en gang mere, jeg havde fået rodet lidt rundt i tabellerne.
tblProdukt: Varenr(PN), Varenavn, kartontype, Linje, RefID tblReferenceprøve: Id(PN), Dato, Tidspunkt, Varenr, Opstart, Lønnr tblReferencepaller: Id(PN), Referencepalle (Hvilke type kartoner der skal stå på pallen), Max antal kartoner på pallen.
Formularen bliver lavet udfra tblReferenceprøve, hvor man selv skal skrive Tidspunkt, Varenr, afkryds hvis det er opstart af produkt og tilslut skrive sit lønnr.
Grunden til tidspunktet er fordi det skal være det samme tidspunkt som der stå på kartonens etikette.
Jo folk ved godt, hvilke kartoner der skal stå på hvilke paller, der er 3 af pallerne der har forskellige kartontyper på pallen, derfor har jeg lavet tblReferencepaller som relatere til RefID i tblProdukt.
Jeg har så endvidere lavet 5 forspørgsel, som har kriterier til de 5 forskellige paller, som rapporterne bliver lavet udfra. I forspørslerne er der Dato, Varenr, Tidspunkt og referencepalle.
Så skal DCOUNT sættes ind hvor og hvad sker der når den når til 0 og der skal startes på en ny palle, tæller den videre eller overskriver den de andre felter
1. Hvad er dit kriterium for "pallen er fuld" når kartoner af 3 typer står på en palle? Eller gør de aldrig dét samtidigt? Før du besvarer dette så har jeg svært ved at stille noget op for de blandede paller.
For de "jævne" (altså ikke blandede): du kan lave en forespørgsel som tæller hvor mange prøver der er med kartoner med en given Referencepalle. Den forespørgsel kan køres fra VBA som med Dcount. Så får du fx samtlige prøver fra start og til dommedag, som tilhører en given palle. Dette nummer kan du heltalsdividere med Max_per_palle (som du kan hardccode eller få fa i med en anden DCount). SÅ laver du :
Tomme_pladser_på_pallen = Samtlige_kartoner_med_denne_palle MOD Max-antal_på_pallen
VBA funktionen MOD giver dig resten, fx 15 kartoner, mx 6 per palle, så vil MOD give 3 til rest : 15\6 (heltalsdivision)= 2 og resultatet er 15 - (15\6) = 3 Når resultatet er nul, s åer vi nået op på et samlet antal kartoner for denne Referencepalle hvor Max går op i det samlede antal.
2. dDCount er en VBA-funktion (slå den op i VBA-hjælpen for Access ) som kan udføre en forespørgsel, som man kan programmere systemet til at køre på et givet tidspunkt: når brugerens handlinger trigger en event. AfterUpdate ville være passende fx for den formular som brugeren indtaster prøvedata i. Siger "event" dig noget overhoved?
Glemte en ting: der skulle msåke nok være mulighed for at slette en prøveindtastning, i fald brugeren har lavet en fejl under indtastning -eller, lidt mere kompliceret, markere den som "ugyldig", så den ikke tæller med når kartoner på en palle optælles.
Undskyld dem sene tilbage melding, dette projekt er blevet lagt på "pause" hylden, da der kom andre ting der skulle bruges nu, så jeg har ikke fået kigget mere på det, og får nok heller ikke i den nærmeste fremtid, jeg vender tilbage når jeg har noget mere konkret til problemet, eller hvis jeg får det til at virke.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.