Avatar billede Soegaard80 Nybegynder
08. september 2010 - 14:04 Der 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...
Avatar billede neoman Novice
08. september 2010 - 14:38 #1
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'") sammentæller records efter givne kriterier - er det hvad du spørger om?
Avatar billede Soegaard80 Nybegynder
08. september 2010 - 14:42 #2
Måske, jeg glemte vist at sige at access ikke er min stærke side.

Kan jeg få dig til at uddybe koden? Så jeg kan se hoved og hale i den...
Avatar billede neoman Novice
08. september 2010 - 14:51 #3
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?
Avatar billede mugs Novice
08. september 2010 - 14:53 #4
" 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?
Avatar billede Soegaard80 Nybegynder
08. september 2010 - 18:26 #5
Jo selvfølgelig skal der skrives noget i en tabel, jeg har nogle stykker som er relateret til hinanden.

tblProdukt: varenr(primærnøgle), Varenavn, Kartontype, Krt på palle, brød pr krt, RefId, Linje
tblReferenceprøve: Id, Dato, Tidspunkt, Varenr, Lønnr.

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
Avatar billede neoman Novice
08. september 2010 - 18:52 #6
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.
Avatar billede Soegaard80 Nybegynder
09. september 2010 - 08:24 #7
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
Avatar billede neoman Novice
09. september 2010 - 11:54 #8
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?
Avatar billede neoman Novice
09. september 2010 - 11:59 #9
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.
Avatar billede bedrettin Nybegynder
11. september 2010 - 00:58 #10
prøv at spørg www.dahii.dk
Avatar billede neoman Novice
14. september 2010 - 15:38 #11
Er problemet løst?
Avatar billede Soegaard80 Nybegynder
06. januar 2011 - 09:52 #12
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.
Avatar billede Soegaard80 Nybegynder
08. januar 2011 - 08:46 #13
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester