tariefberekening per datum in query?

Status
Niet open voor verdere reacties.

RSpan

Gebruiker
Lid geworden
10 jun 2009
Berichten
166
Beste mede leden

Ik zit met de volgende vraagstelling:
Ik heb een tabel met tarieven
Een tabel met functies
Een tabel met datums, gewerkte uren, functie, klant e.d. kortom het rooster waar dagelijks de gewerkte uren en welk niveau er ingezet is,van de klanten worden bijgehouden.
In het rooster selecteer je de klant vult de datum in, weeknr., niveau(functie) en het aantal gewerkte uren.
Nu wil ik per maand een overzicht per klant uitdraaien.
Dit doe ik in een rapport middels een query.
Tot zo ver geen probleem de tabellen zijn gerelateerd aan elkaar en de query voert de berekening uit, uren maal tarieven en dit wordt weer opgeteld.
De tarieven worden uit de tabel tarieven gehaald die gekoppeld is aan de tabel functies.
Bij de volgende situatie gaat het fout.
Er vindt halverwege de maand, zeg b.v. de 15e een tariefswijziging plaats.
Wanneer ik nu een maandoverzicht van deze maand uitdraai klopt de berekening niet meer want de query rekent nu met het nieuwe tarief.(tabel functie gekoppeld aan tabel tarief en dit tarief is nu gewijzigd. )
Terwijl tot de 15e het oude tarief nog gold.
Hoe krijg ik het nu voor elkaar dat de query automatisch met de juiste tarieven rekent dus tot de 15e het oude tarief en erna het nieuwe tarief.
Moet ik met datums werken in de tabel tarieven zo ja hoe, en hoe vertaal ik dat in de query.

Ik hoop dat mijn bedoeling zo duidelijk is en dat er iemand ideeën heeft hoe dit aan te pakken.:)

Groet
René
 
RSpan,

Kan je query even op het forum zetten.
Dan kunnen we daar even naar kijken.
Het is echter wel noodzakelijk dat je de tabel Tarieven uitbreid met een datum.
Anders is er geen vergelijking te maken.

Laat even wat zien
 
In algemene zin: om dat goed uit te kunnen rekenen, heb je een geschiedenis nodig in je tarieventabel. Dat houdt in, dat je aan de tabel tarieven dus een veld Datum toevoegt, waarin je de ingangsdatum vastlegt als je een nieuw tarief gaat gebruiken. Dit is namelijk de enige manier waarop je een overzicht kan maken over een bepaalde periode. Je moet namelijk uit kunnen rekenen tot wanneer een bepaald tarief geldt, en wanneer het volgende tarief moet worden genomen.

Ik heb daar een tijdje geleden een vergelijkbare vraag over gezien op het forum, en daar een db-tje voor gemaakt. Die zit hierbij. In dit formulier wordt m.b.v. VBA een tarief berekend over tijdsbestekken. E.e.a. heb ik in deze db via VBA opgelost; thuis heb ik er nog eens naar gekeken, en er ook een normale query bij gedaan. Dit voorbeeld heb ik net even opgezocht in de oude topic, dus die is nog zonder query.
 

Bijlagen

En voor het mooie: hier nog een versie met de beloofde query. Waar een Stikkie al niet goed voor is ;)
Het gaat dan om de query qVerhuur, waar een berekenslag over periodes wordt uitgevoerd. Overigens maak ik in mijn tarieventabel gebruik van een begin- en een einddatum. Rekent namelijk wat makkelijker...
 

Bijlagen

voorbeeld

Hoi,hoi

Hierbij een uitgeklede versie als voorbeeld.
In de tabel TblProducten staan de tarieven waarmee gerekend wordt.
In de TblRooster wordt dagelijks het rooster ingevuld, datum, klant, werknemer, niveau, uren, weeknr, en zo nodig feestdag.
Wanneer er nu een rapport gedraaid wordt krijg ik keurig een overzicht per maand.
Tot zover geen probleem.
Maar wanneer ik nu het tarief wijzig dan klopt mijn overzicht niet meer, want er wordt nu met d nieuwe tarieven gerekend.
Ergens moet er, denk ik een tabel komen waarin met datum het nieuwe (ik denk opslag) tarief komt te staan.
Deze opslag moet dan meegenomen (opgeteld) worden bij de tarieven van de productentabel.
De producten tabel kan niet aangepast worden, deze wordt namelijk in het rooster gebruikt.

Octafish de werking van jouw voorbeeld begrijp ik niet helemaal, bovendien als ik hem wil proberen geeft hij een foutmelding in de vb code.
Ik denk ook niet dat ik het op die manier kan doen, als ik de werkwijze er van goed interpreteer.

Ik hoop dat het zo een beetje duidelijk is wat ik bedoel.

Groet
René
 

Bijlagen

Laatst bewerkt:
René

Is even een weekend klusje.
Ga er naar kijken.

Wim

Belooft is belooft.
In de bijlage mijn oplossing voor het tariefsverhogingsprobleem.
1, Ik heb een nieuwe tabel gemaakt [TblNieuwTarief}
Daarin kan je per product aangeven wat het nieuwe tarief is per een bepaalde datum.
Dit kan je zowel voor het standaard tarief als voor het feestdagentarief.
Let hierbij wel op dat als je een datum opgeeft en het bedrag is 0 (nul) dan wordt er ook met 0 gerekend.
Dus als er niets wijzigd dan ook geen datum opgeven.
2. Ik heb in de query twee zaken aangepast.
Het bepalen van het starttarief wordt u ook bepaal door de aanwezigheid in de tabel [TblNieuwTarief}
Code:
(IIf(TblNieuwTarief.TariefAanpasDatum<=TblRooster.Datum,TblNieuwTarief.TariefAanpas,[tblproducten].[tarieven])
Het bepalen van het Totaal heb ik ook aangepast zodat je niet twee keer het zelfde moet doen.
Code:
Tarieven*[uren] AS Totaal

Ik hoop dat je er hier mee uitkomt..
Succes
Wim
 

Bijlagen

Belooft is belooft.
In de bijlage mijn oplossing voor het tariefsverhogingsprobleem.
1, Ik heb een nieuwe tabel gemaakt [TblNieuwTarief}
Daarin kan je per product aangeven wat het nieuwe tarief is per een bepaalde datum.
Dit kan je zowel voor het standaard tarief als voor het feestdagentarief.
Let hierbij wel op dat als je een datum opgeeft en het bedrag is 0 (nul) dan wordt er ook met 0 gerekend.
Dus als er niets wijzigd dan ook geen datum opgeven.
2. Ik heb in de query twee zaken aangepast.
Het bepalen van het starttarief wordt u ook bepaal door de aanwezigheid in de tabel [TblNieuwTarief}
Code:
(IIf(TblNieuwTarief.TariefAanpasDatum<=TblRooster.Datum,TblNieuwTarief.TariefAanpas,[tblproducten].[tarieven])
Het bepalen van het Totaal heb ik ook aangepast zodat je niet twee keer het zelfde moet doen.
Code:
Tarieven*[uren] AS Totaal

Ik hoop dat je er hier mee uitkomt..
Succes
Wim




Geweldig Wim

Bedankt voor het meedenken en je voorbeeld.

Na twee dagen sleutelen ben ik tot de volgende oplossing gekomen.(zie voorbeeld)

ik heb in de tabel producten het feesttarief weggehaald en dus ook in de tabel nieuwtarief.
het feestdag tarief wordt nu berekend door 150% over het standaard tarief te nemen.
Verder moest er nog een mogelijkheid in komen om ook de tariefswijzigingen van de bemiddelingskosten aan een datum te hangen en als laatste om per klant individuele opslagen te kunnen berekenen.

Dit alles is gelukt, dus ben ik heeel blij :D:D:D:thumb::thumb:
nogmaals bedankt

Groet
René
 

Bijlagen

RSpan,

Ga je voorbeeld vanavond even bekijken.
Ga nu borrelen, dus misschien wordt het morgen.

Succes
Wim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan