Werktijden optellen

Status
Niet open voor verdere reacties.

Sonnetje85

Gebruiker
Lid geworden
28 nov 2012
Berichten
102
In de tabel "Uren"
Kolom 1 "Personeel"
Kolom 2 "Klanten"
Kolom 3 "Maandnummer"
Kolom 4 "Jaar"
Kolom 5 "01"
Kolom 6 "02"
etc

Via een mooi formulier kunnen alle werktijden ingevuld worden
Personeelsleden werken bij meerdere klanten
En klanten hebben meerdere personeelsleden

Met een query kan ik op personeelslid of klant filteren
Nu wil ik alleen een optelsom maken van alle tijden die er bij horen
Er zijn dan dus meerdere rijen(variabel) en meerdere kolommen(28 tot 31)

Ik kan wel vinden hoe ik te werk moet gaan om die verkregen tijd om te zetten naar een tijd van meer dan 24:00, maar ik kan niet vinden hoe ik nu deze tijden op moet tellen
 
Er zijn dan dus meerdere rijen(variabel) en meerdere kolommen(28 tot 31)
Wat bedoel je daar mee? Een tabel heeft 28 velden, of 31, dat is niet variabel. En bedoel je eigenlijk dat je vanaf veld 01, 02 ... t/m 31 de dagen van de maand bedoelt? En wat bedoel je dan met meerdere variabele rijen? Ik snap eerlijk gezegd niet veel van die tabel. Ik was eigenlijk van mening dat je (terecht) was overgestapt op een tabel waarin je de datum, de begintijd en de eindtijd per werkblok zou vastleggen. In dat geval is het totaliseren een fluitje van een cent. Nu zou ik het ook niet weten. Overigens is de tip van enzoishier (timetell aanschaffen) wel erg kort door de bocht natuurlijk. Hoe goed (we gebruiken het zelf ook) dat pakket ook is.
 
Tabel gedelete.
Hoe kan ik de werktijden zo makkelijk mogelijk gaan verwerken?
We krijgen werkbriefjes binnen van de perosneelsleden per klant
We kunnen dus meerdere klanten per personeelslid hebben
En andersom dus ook, een klant kan te maken hebben met meerdere personeelsleden.

Van de uren van de personeelsleden moet uiteindelijk een uidraai naar de accoutant (excel)
Hierop moeten totaal aantal uren en gereden km staan.

Per klant moet een factuur gemaakt worden op aantal uren (geen km)
Soms ook een overige vergoeding
Sommige moeten wel btw betalen en anderen niet, dit staat met een vinkje in de tabel klanten
 
Er even vanuit gaande dat een medewerker fysiek maar bij één klant tegelijk is, en er per tijdsblok dus voor één klant kan worden geschreven, is dit een begin(netje)
WerktijdenID AutoNummering
MedewerkerID Numeriek
KlantID Numeriek
Bezoekdatum Datum/tijd
Begintijd Datum/tijd Korte tijdnotatie
Eindtijd Datum/tijd Korte tijdnotatie
Km_Beginstand Numeriek
Km_Eindstand Numeriek
Werkzaamheden Memo

Voor de km stand kun je nog een validatieregel maken die voorkomt dat er verkeerde waarden worden ingevoerd: [Km_Eindstand]>[Km_Beginstand]
En op basis van deze tabel kun je precies doen wat je wilt.
 
Dit is gelukt en ook het maken van 1 rapportpagina per klant lukt (voor de factuur)

Vraag 1:
Nu moet ik daar alleen de tijden optellen en dat komt soms boven de 24u
Hoe zorg ik voor de juiste notatie?

Vraag 2:
De query sorteert op maandnummer en daarna op achternaam klant
Op deze volgorde moeten ook de factuurnummers aangemaakt worden
Kan dit in dezelfde query? Zo ja hoe?

Vraag 3:
Hoe begin ik bij autonummering bij een ander nummer dan nummer 1?
De factuurnummers hebben geen maand/jaar opbouw, gewoon vanaf 1 ooit begonnen
 
Vraag 1:
Tijden zijn standaard in 24 uurs notatie, maar ga je tijden optellen dan wil je de uitkomst niet als tijd zien, maar als getal. 18:15 - 12:00 is niet de tijd 6:15, maar het getal 6,25. Je moet de tijden dus çonverteren' naar een getal, en dat doe je door de tijd met 24 te vermenigvuldigen. Dan kun je ze simpel optellen. Het is nog een beetje lastig als de eindtijd lager is dan de begintijd, doordat de eindtijd de volgende dag is bijvoorbeeld, maar als je de volledige datum/tijd opslaat in de velden, dan is dat ook geen probleem.

Vraag 2:
Factuurnummers moeten (schijnt het) wettelijk oplopende nummers zijn; een nummerstijl die je wilt hebben is dat niet. Zou ik dus ook niet zo maken. Je kunt nog wel per jaar oplopend nummeren, dat mag dan nog wel.

Vraag 3:
Autonummering begint bij 1, maar is dus niet bruikbaar voor facturen. Een functie kan dat prima oplossen. Die zoekt het hoogste nummer in de huidige factuur,en telt daar 1 bij op.
 
urenbriefjes van personeel komen druppelend binnen en worden evenzo ingevoerd
De query sorteert op maand en dan op klant
Op mijn rapport staan nu per klant de tarieven, het subtotaal, de btw en het totaal

als ik in een formulier op de printknop druk, moet de query draaien (incl sorteren dus), en daarna alle rapportpagina's die betrekking hebben op de laatste maand geprint worden
Hoe hang ik daar het factuurnummer aan (dat is inderdaad een oplopend nummer en wij zijn nu bij 2094486)?

Naar mijn idee is er dus nergens echt een factuur opgeslagen... De query verzamelt alleen de gegevens die op het rapport een factuur vormen...
 
Je hebt een factuurnummer, dus ergens leg je dat vast.
 
Mijn query verzameld urengegevens, hierin kunnen de klanten dus meerdere keren voorkomen
Alle maanden staan hierin

Mijn rapport selecteert alleen afgelopen maand, groepeert per klant en geeft factuur weer op basis van de uren uit de query en de tarieven uit de tabel klanten (uren*tarief, optellen, btw, totaal)

Er is dus geen tabel waar dit instaat... Dus ook nog geen factuurnummer, hoe pak ik dat aan?
 
Als je verschillende records groepeert in één factuur, zou ik daar zeker een aparte tabel voor maken. Of je een aparte tabel Factuurregels nodig hebt mag je uiteraard zelf beoordelen, maar je moet in ieder geval vastleggen bij welke factuur een bepaald record hoort. Je rapport zou een weerslag moeten zijn van de tabel factuur + factuurgegevens, en niet andersom zoals je nu blijkbaar doet. Ik zou zeggen dat je in de tabel [Uren] dus nu een veld Factuurnr opneemt, eventueel ook een Ja/Nee veld Factuur, en dat vult middels een formulier. Als je ook een selectieveld selecteert, kun je met een doorlopend en een bijwerkquery eerst urenrecords selecteren, en op basis daarvan het veld Factuurnummer vullen. Je hebt dus een factuurformulier waarin je de factuurgegevens invult (klantnummer, factuurdatum etc) en in een doorlopend formulier zie je dan de records die nog geen factuurnummer hebben en die bij die klant horen. Vervolgens selecteer je de gewenste records, en vul je in die records het factuurnummer in. (met die bijwerkquery). Je rapport is dan gebaseerd op de tabel Facturen, en toont dan de records met het overeenkomende factuurnummer.
 
Dit volg ik niet...
Mijn query geeft veel records, gesorteerd op maand, daarna op klant, daarna op datum

Als ik een tabel moet maken voor factuurnummer, wil ik maar 1 record per maand/klant (dus niet voor elke datum, anders krijg ik meerdere factuurnummers terwijl het er maar 1 moet zijn)

Dus heb ik een query gemaakt met de kolom maand en de kolom klant (GroupBy)
Daarnaast heb ik een tabel gevuld met alle factuurnummers
Hoe plaats ik deze in de 3e (of 1e) kolom?
Als ik deze selecteer geeft hij bij het eerste factuurnummer alle maand/klant gegevens, en bij het 2e, 3e, etc nummer weer
 
Ik raak de draad langzamerhand ook kwijt, want ik heb dus echt geen flauw idee meer hoe je het hebt ingericht....
De query sorteert op maandnummer en daarna op achternaam klant.
Op deze volgorde moeten ook de factuurnummers aangemaakt worden.
Kan dit in dezelfde query? Zo ja hoe?
Hoe begin ik bij autonummering bij een ander nummer dan nummer 1?
De factuurnummers hebben geen maand/jaar opbouw, gewoon vanaf 1 ooit begonnen
Uit een eerdere post. Je hebt dus blijkbaar wèl een tabel voor je facturen en factuurnummers. In dat geval hoef je natuurlijk geen nieuwe tabel te maken. Al vraag ik me af hoe je nu factuurnummers maakt die voldoen aan de wettelijke voorwaarden. Maar dat terzijde. Maar als je dus een tabel Facturen hebt, dan staat daar toch ook de factuurdatum en het KlantID in? Ik snap er dus niks meer van...
 
Tabel [Urenbriefjes]
Kolommen: Klantnr, Tarief (1, 2 of 3), Personeelsnr, Datum, Gewerkte tijd

Query [Facturen]
Kolommen:
Maand (uit de datum geknipt) oplopend
Klantnr
Klantnaam (uit de tabel Klanten) oplopend
Naam (Aanhef, voorletters, tussenvoegsels, achternaam uit tgabel Klanten)
Tarief
Datum oplopend
Gewerkte tijd
(en dan een aantal kolommen met formules die werktijden met juiste tarieven matched uit tabel klanten)

Rapport [Facturen]
Criteria Popup=maandnummer (welke maand moet afgedrukt worden)
Criteria Popup=factuurdatum (welke datum wil je op de factuur, niet altijd datum van vandaag)

Paginakoptekst:
Naam, adres, woonplaats etc
Factuurdatum
FACTUURNUMMER (?)

Details:
uren*juiste tarief = regeltotaal

Voettekst:
Som(Regeltotalen)=subtotaal
BTW(indien van toepassing)
Totaal

Paginavoettekst:
Gegevens bedrijf (rek nr etc)


De tabel [Urenbriefjes] wordt niet chronologisch gevuld, maar zoals de werkbriefjes binnenkomen.
Hier kan dus nog geen factuurnummer in.

In de Query [Facturen] staan per klant meerdere records, die gezamenlijk dus 1 factuurnummer moeten krijgen

Op het rapport wordt netjes per klant gegroepeerd, maar dan...?

-Vanaf hier is een probeersel:
TabelmaakQuery[Factuurnummers]
Kolommen:
Factuurnummers (uit de tabel [Factuurnummers] die maar 1 kolom heeft)
Maand oplopend
Klant Group By oplopend

Maar dan krijg ik bij elk factuurnummer alle klanten... Dus veel herhaling van factuurnummers
 
Ik snap er nog steeds niet zo veel van, maar ik begin nu het idee te krijgen dat je een tabel [Factuurnummers] hebt die niks met de Facturen te maken hebben. En of dat handig is? Ik betwijfel het... En ik zie wel een query facturen, en een rapport facturen, maar die zijn niet gebaseerd op een tabel facturen? Hoe kan dat? En waarom? Het is onmogelijk om een rapport te maken op basis van een factuurnummer dat niet in een tabel is opgeslagen. Nogmaals: een factuur moet je in een eigen tabel opslaan. Een tabel Facturen bevat dan in ieder geval een oplopend Factuurnummer dat voldoet aan de wettelijke eisen (jaarlijks beginnend met 1 en oplopend zonder omissies) en waarin je daarnaast de Factuurdatum opneemt, KlantID en wat je zoals nog meer als vaste factuurgegevens gebruikt. Daarnaast heb je de gegevens die de eigenlijke factuur vormen, in jouw geval de query Facturen, die dus eigenlijk Factuurregels zou moeten heten. En die gedeeltelijk andere velden zou moeten bevatten:

Query [Factuurregels]
Kolommen:
FactuurregelID (Autonummer)
FactuurNummer
Datum (gewerkt)
Gewerkte tijd
En de kolommen met formules die werktijden met juiste tarieven berekenen

Het Factuurnummer neem je dus op in de tabel [Urenbriefjes] want als ik het zo kan zien, is dat de enige plek waarmee je logisch kunt koppelen voor de factuur.
 
Inderdaad heb ik een tabel [Factuurnummers] waar alleen de nummers instaan die vanaf 1-6-13 gebruikt worden, netjes oplopend en 1000 vooruit, omdat ik niet weet hoe ik autonummering vanaf een ander nummer dan 1 kan laten beginnen...

In de tabel [Urenbriefjes] komen zowel de klanten als personeelsleden per maand meerdere keren vorr. Niet elk contact moet een losse factuur krijgen, wel elke keer moet los op een factuur staan.

Hoe maak ik dan een tabel facturen waarin elke factuur maar 1 record heeft? En hoe nummer ik die goed?
 
Voor factuurnummers kun je geen Autonummer gebruiken, al was het maar omdat je die niet kunt resetten. Daar heb je dus een functie voor nodig. En daar een aparte tabel voor maken is niet nodig. Heb ik al eerder gezegd trouwens :)
In de tabel [Urenbriefjes] komen zowel de klanten als personeelsleden per maand meerdere keren voor. Niet elk contact moet een losse factuur krijgen, wel elke keer moet los op een factuur staan.
Het maakt natuurlijk niet uit of er op een factuur één regel staat, of 20. Zodra je een factuur gaat maken, en je hebt een fatsoenlijk en geldig factuurnummer gegenereerd, moet je kunnen aangeven welke records uit Urenbriefjes daaronder vallen. En dat doe je door in die tabel een factuurnummer in te vullen. Et voilà: factuur en werkuren zijn keurig gekoppeld!
 
Nou die voila dringt nog niet helemaal bij mij door denk ik...
In mijn optiek kan ik in de tabel [urenbriefjes] nooit een factuurnummer maken, omdat deze niet chronologisch wordt gevuld...
Dus hoe doe ik dat precies?
 
Dat boeit toch niet? Volgorde (sortering) bestaat niet in een Access database, het is tenslotte een Relationele database.
 
Dus ik moet het eerste record het juiste factuurnummer geven
Als er dan een record volgt van de zelfde klant en van dezelfde maand, moet die hetzelfde nummer krijgen, en nieuwe klant dus ook nieuw nummer
Hoe doe ik dat?

Op dit moment (buiten Access) zijn de facturen ook gesorteerd op achternaam (voor ze een factuurnummer krijgen)
Nu is dat in Access niet echt noodzakelijk meer voor het makkelijk zoeken, maar is het wel mogelijk?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan