duurtijd van ene record aftrekken van begintijd in andere record van zelfde persoon

Status
Niet open voor verdere reacties.

rebirth

Gebruiker
Lid geworden
17 jun 2008
Berichten
170
Via een query ben ik een resultaat bekomen waarbij telkens op een bepaalde dag een bepaalde persoon 2 aanwezigheidsuren heeft (beginuur; einduur; duur). Nu mogen deze mensen echter 1 lijn (record) per dag per persoon hebben. Om dit te bereiken had ik de duurtijd van het vroegste beginuur willen aftrekken van het laatste beginuur. Op die manier komt die duurtijd bij de duurtijd van de 2de record, en kloppen deze uren. Daarna zou de eerste record (met het vroegste beginuur) verwijderd moeten worden.

Ik ga er zowat van uit dat dit aan de hand van een functie zal moeten gebeuren, echter geraak ik er niet echt aan uit. Het aftrekken van die uren lukt mij wel, het bepalen van welk record hij dat moet gaan doen, niet. Hoe kan ik via vba zeggen dat hij deze moet afrekken van de record met dezelfde datum en persoon én het hoogste beginuur?

Iemand die me kan helpen met mijn hersenbreker? :confused:
 
Ik snap eerlijk gezegd het probleem niet helemaal.... Hoe vaak laat je mensen inloggen op een dag? En waarom gebruik je niet één record, waarin je de begintijd en eindtijd wegschrijft?
 
Het antwoord op die vraag is nogal ingewikkeld. Het is eigenlijk een systeem waarmee wij de opvang van kinderen in een kinderdagverblijf bijhouden. En meer bepaald in deze situatie de voorschoolse en naschoolse opvang. Dit zijn dus 2 totaal verschillende uren. Echter moeten we deze samen tellen voor de berekening die een bepaalde instantie ons hier in België oplegt. Het probleem kan dus niet verholpen worden door dit meteen in 1 record te gieten, wegens administratieve vereisten, maar voor facturatie moet dit wel. Vandaar mijn vraag.

Misschien is het wat duidelijker wat ik wil, als ik een voorbeelddatabase plaats?
 
Dat zou wel helpen, denk ik. Overigens heb ik nog een vraag: is er een reden waarom je de begin- en eindtijden niet in eigen records wilt opslaan? Want dat maakt je administratie alleen maar makkelijker...
 
Hierbij alvast een voorbeeldje van de gegevens die ik uit de query haal. In feite bevat de originele tabel veel meer gegevens, maar via een query hou ik enkel deze over die dubbele lijnen bevatten, en die dus in feite naar 1 lijn zouden moeten gaan.

Wat bedoel je precies met de begin- en eindtijden in eigen records opslaan? Want ik begrijp niet goed wat je hiermee wil zeggen.

Alvast bedankt!
 

Bijlagen

  • Voorbeeld dubbele records.zip
    10,4 KB · Weergaven: 24
Nee, klopt, van de query is een tabel gemaakt. Maar dat zou toch niets aan het principe mogen veranderen?
 
Je hebt een tabel; daarop wil je een berekening loslaten die voor elk individue één record maakt met een begin- en eindtijd, en een berekening van de totale tijdsduur. Dat doe je met een query, die je, geef je zelf aan, niet goed werkend krijgt. Dan lijkt het mij wel handig als die query erbij zit.....
 
Oei nee, ik denk dat u me niet goed begrijpt. De query zorgt er enkel voor dat ik de mensen te zien krijg die op 1 dag 2 lijnen hebben. Meer doet die query niet, en die werkt naar mijn gevoel wel prima. Dit is het resultaat dat ik krijg van die query, met name die tabel.

In die tabel kan u zien dat elke persoon telkens 2 lijnen heeft per datum.
Wat ik nu wil doen, is de duurtijd nemen van de lijn (record) met de vroegste tijd, en deze duurtijd aftrekken van de lijn met dezelfde datum van dezelfde persoon, met de andere uren erop. En tenslotte die eerste lijn van die persoon op die datum verwijderen.

Hopelijk verduidelijkt dit al wat meer wat ik wil bereiken.
 
Leg eerst eens uit hoe het bij jullie mogelijk is dat de eindtijd lager is dan de begintijd...
7 3-03-2011 2038 18:15 6:15 12:00
7 3-03-2011 2037 16:15 18:15 2:00
7 4-03-2011 2086 15:15 17:35 2:20
7 4-03-2011 2060 6:15 7:25 1:10
 
Dat is een speciaaltje :)
Dat is nachtopvang, wat een apart tarief ook heeft. Met deze uren zou er eigenlijk niets mogen gebeuren, je haalt er net onze uitzonderingen uit :)

Wanneer een kindje in nachtopvang blijft, rekenen wij hiervoor altijd vaste uren (12u) en een vast tarief. Vandaar dat voor dit kindje de gewone opvang zal stoppen op 18u15, en er een nieuwe opvang (de nacht opvang dus) zal starten vanaf 18u15.
 
Laatst bewerkt:
Die records (want je hebt er veel meer) zou ik er dus eerst tussenuit filteren; zal je zien dat je gelijk een stuk minder records overhoudt. Overigens blijf ik van mening dat je de vorige query (die wij dus niet hebben) al zou kunnen/moeten gebruiken om de berekeningen te maken. Omdat je er vanuit mag gaan dat het volgnummer (is tenslotte autonummering) altijd eerst het eerste record geeft van een dag, kun je met een DLookup misschien de begintijd en eindtijd van het eerste record opzoeken, en die waarden van elkaar aftrekken. Of is het voorbeeld wat je zoekt?
 
Nee, dat is em nog niet helemaal. Ik ga morgen eens de originele tabel én de query plaatsen, zodat je daar al een idee hebt van wat ik er mee doe. Maar ik had het inderdaad nog niet zo bekeken zoals je op het einde stelt. Dat kan misschien wel een oplossing zijn. Ik geef je morgen eens een voorbeeldje, samen met een bestand. In elk geval al hartelijk dank voor de hulp!
 
In bijlage alvast het beloofde bestandje, met originele tabellen en query's. De persoonlijke gegevens van de kinderen heb ik uiteraard weggelaten, wegens privacy en gezien dit niet direct noodzakelijk is voor de query.

Mocht je dat willen, geef ik je graag nog eens een concreet voorbeeldje van wat het resultaat juist zou moeten zijn. Maar ik weet niet zeker of het werken met de volgorde op volgnummer wel ideaal is, gezien het personeel deze gegevens inbrengt vanop fiches, en ik niet altijd zeker ben dat ze eerst de ochtendfiche en daarna de avondfiche inbrengen, en niet andersom.
 

Bijlagen

  • vb2.zip
    59,2 KB · Weergaven: 29
Ik ben nog steeds op zoek naar een oplossing voor mijn probleem. Is er echt niemand die mij kan helpen?
 
Ik heb er (mede doordat ik met een griepje worstel) nog geen tijd voor gehad; zal het vanavond proberen...
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan