Avatar billede kavlar Novice
12. august 2010 - 10:40 Der er 6 kommentarer

Rabatstruktur i Access

Hej Eksperter

Jeg er ved at opbygge en faktureringsdatabase og vil gerne have at kunderne kan kobles på hver deres prisliste. Samtidig vil jeg gerne lave systemet sådan, at kunden får forskellige priser ved forskellige mængder på de enkelte vare. Men jeg har lidt svært ved at knække koden til, hvordan jeg smartest stiller det op.

Jeg har selv tænkt i retningen af nedenstående

KUNDESTAMDATA
Kundenummer
Prisliste

VARESTAMDATA
Varenummer
Beskrivelse

PRISLISTE
Prislistenummer
Prislistenavn

PRISER
Prislistenummer
Varenummer
Minimumsantal
Pris_pr_stk

FAKTURALINIER
Fakturanummer
Fakturalinie
Kundenummer
Varenummer
Antal

På den måde synes jeg jo at have alle oplysninger klar. Fakturalinie-tabellen henter prisen fra prislistetabellen, styret af den valgte kundes prisliste, prislisten varepriser, defineret på det antal varer som linien falder ind under....
Men når jeg kæder tabellerne sammen stopper jeg ved sidste punkt. Jeg har f.eks. at vare nr. 1 på prisliste 1 kan købes i følgende intervaller:

Min 1 stk.  10 kr
Min 5 stk  9,5 kr
Min 25 stk.  9 kr

Hvordan får jeg så Access og for så vidt en hvilken som helst anden database til at forstå, at den skal hente den pris, hvor den er større end kravet for antal. F.eks. vare nr. 1 på prisliste 1 for 7 stk. Altså en pris på 9,5 kr da det er mere end 5 men stadig under 25.
I Excel ville jeg bruge en opslagsformel: lopslag(input, tabel, kolonne, sand) hvor sand gør, at den finder første værdi lavere end valgte.... Kan man noget tilsvarende i Access.

På forhånd tak for jeres input
Avatar billede gummi08 Nybegynder
12. august 2010 - 10:43 #1
du kan lave releationship mellem databaserne :P
Avatar billede kavlar Novice
12. august 2010 - 10:45 #2
Men hvordan kobler man databaserne når det ikke er en eksakt værdi.
Antal i faktureringen er jo ikke altid lig antal i prislisten.

5 = 7 ...
Avatar billede neoman Novice
15. september 2010 - 16:55 #3
ER spørgsmålet løst eller stadig aktuelt?
Avatar billede neoman Novice
15. september 2010 - 16:58 #4
Jeg har en gang lavet noget lignende, men vil kun lede efter koden hvis det fortsat er aktuelt :-)
Avatar billede kavlar Novice
16. september 2010 - 09:06 #5
Spørgsmålet er stadig aktuelt! Så jeg modtager med glæde hints og vejledning.
Avatar billede neoman Novice
16. september 2010 - 12:47 #6
Hvis du omorganiserer din pristabel så kan du finde den rigtige pris afh af antal.


Prisliste
----------
Prisslistenummer
Varenummer
Stykpris
Maxantal

Så den ser ud som følger

Varenr1  10 kr  4
Varenr1  9,5 kr  24
Varenr1  9,0 kr  9999999

En forespørgsel som den følgende vil give dig en pris per styk:
Pris = DLookup("Stykpris", "Prisliste", "Varenummer = " & Str(Varenummer) & " AND Maxantal>=" & Str(Antal))

Bemærk at prislisten skal altid være ordnet i stigende antal for en given vare.

Hvis priserne kan blive modificeret eller de rabatudløsende antal ændres eller tilføjes  med tiden, så er det nok bedst at køre en forespørsgel på pristabellen for en gven vare så man får resultatet ordnet og derpå søge i dette resultat.
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