Totaal berekenen

Status
Niet open voor verdere reacties.
Is de voorbeeld tabel representatief voor je produktietabel? Zo ja, dan raad ik je aan om de tabellen eerst te normaliseren, want je maakt het jezelf ongelooflijk moeilijk zo... ik begin te snappen waarom je er niet uitkomt :D
 
normaliseren? hoe zou ik mijn voorbeeld dan makkelijker kunnen maken? ik heb namelijk geen idee.
dat is ook de reden waarom ik zo veel velden heb.
 
Dan mag ik je de eerste lessen van de cursus Access aanbevelen; daar wordt normaliseren uitgebreid behandeld :)

Maar om je een beetje op weg te helpen, een paar tips. Laten we eens kijken naar de tabelstructuur die je nu hebt. Die bevat de volgende velden:
autonummering, datum, ma, di, wo, do, vr, Aalsmeer, Aalsmeer1, Aalsmeer2, Aalsmeer3, Aalsmeer4, Naaldwijk, Naaldwijk1, Naaldwijk2, Naaldwijk3, Naaldwijk4, Rijnsburg, Rijnsburg1, Rijnsburg2, Rijnsburg3, Rijnsburg4, Bleiswijk, Bleiswijk1, Bleiswijk2, Bleiswijk3, Bleiswijk4, Connect, Connect1, Connect2, Connect3, Connect4, Cal, Cal1, Cal2, Cal3, Cal4, totaal, totaal1, totaal2, totaal3, totaal4

Wat daar onmiddelijk opvalt, is twee zaken: ten eerste: je hebt herhalende velden (Aalsmeer, Aalsmeer1, Aalsmeer2, Aalsmeer3, Aalsmeer4 etc.). Die zijn ook nog niet eens consequent benoemd, maar dat terzijde. Dat niet alleen, de herhalende groepen zijn ook nog eens van hetzelfde type: plaatsen (Aalsmeer, Naaldwijk, Rijnsburg etc). Daarnaast heb je een datumveld ([Datum]) en ook nog eens aparte velden voor de dagen van de week (ma, di, wo, do, vr)? Als je een datum invult, weet je automatisch welke dag van de week dat is, dus dat hoef je niet op te slaan, en zeker niet in een apart veld voor die specifieke dag.
Dan je gegevensvelden: daar geldt hetzelfde voor als voor de plaatsen: herhalende veldnamen (Connect, Connect1, Connect2, Connect3, Connect4) en inconsequente naamgeving (Connect, Connect1), waardoor je e.e.a. ook nog eens niet logisch kunt invoeren.

Ik weet niet wat je wilt opslaan in de tabel, maar hij zou, op basis van wat ik hier zie, gesplitst moeten/kunnen worden in de volgende tabellen:
Tabel1:
ProjectID, datum, Project, Info

Tabel2:ID, ProjectID, Plaats, Connect, Cal, totaal
Waarbij je voor Plaats een keuzelijst kunt maken, omdat je daar maar een paar waarden voor gebruikt.

Tussen de twee tabellen maak je dan een één-op-veel relatie, in mijn voorbeeldje op het veld ProjectID. Je vult dus één keer de algemene gegevens in, en per meting(?) of wat je ook wilt opslaan, maak je een eigen record aan. Op basis van de twee tabellen maak je dan een query, en daarop maak je dan je formulieren/rapporten. En dan zul je zien dat je ineens de meest prachtige berekeningen kunt maken ;)
 
de tabel word gebruikt om weektotalen op te slaan de datum is er slechts zodat het duidelijk is om welke week het hier gaat.
ik heb alles in één record proberen te stouwen omdat met meerdere record alles makkelijk door elkaar zou gaan.
het gaat hier dus om een week maandag t/m vrijdag waar van iedere dag prijzen in staan en een dag totaal.
ik ga proberen je tips toe te passen.
 
Als je één keer per week de totalen opslaat, zou je eventueel de dagen kunnen toevoegen, al is splitsen wel mooier, en voor de database beter. Maar je moet natuurlijk ook een beetje rekening houden met gebruikersgemak. Als het totaalveld een optelling is van de waarden van die week, zou ik dat veld dumpen, want een weektotaal volgt (uiteraard) uit de optelsom van de respectievelijke dagen van die week. 'Alles in één record stouwen' is een Excel techniek, die je in een database beter kunt vermijden :)

Voor het optellen van weektotalen maak je, als je alles netjes splitst, zoals ik heb aangegeven, in je rapport groeperingen (bijvoorbeeld op weeknummer) waarbij je met simpele formules (SOM, GEM) totalen en gemiddeldes uit kunt rekenen. Voor deze formules heb je dan namelijk maar één veld nodig. Anders kom je toch weer terug aan het optellen van losse velden.
 
het invoeren gebeurd niet dagelijks, er word hier meer gedoeld op een soort van archiveren/opslaan van gegevens dan van dagelijkse invoer.
het dag totaal hoort bij het overzicht en geeft meerwaarde aan de database. maar ik ga nu eerst proberen je vorige reactie over het normaliseren
toe te passen op mijn database.
 
na een paar keer over het normaliseren gelezen te hebben zie ik een paar dingen die ik kan veranderen van de dagen zou ik labels in mijn formulier kunnen maken.
van Rijnsburg1 Rijnsburg2 enz zou ik RijnsburgMa RijnsburgDi enz kunnen maken. ik zie nog niet hoe ik meerdere velden voor locaties zou kunnen vermijden aangezien één veld maar één maal per record gebruikt kan worden(zover ik weet dan).
 
Laatst bewerkt:
Je denkt nog steeds te ingewikkeld; je moet je tabel terugbrengen naar exact die velden die bij één record horen. En in mijn ogen zijn de gegevens voor [Rijnsburg - Maandag - DagTotaal] niet hetzelfde als [Rijnsburg - Dinsdag - DagTotaal]. En dus moet je daar aparte records voor maken. Op die manier vermijd je ook lege velden, want als er op dinsdag 12-7 geen resultaat is, krijg je voor dinsdag 12-7 ook geen record. Je vult dus alleen dagen in waarvoor je gegevens hebt. En in het weekoverzicht van die week zie je dus dan 4 records, en je gemiddelde is automatisch ook over 4 records.
 
ik begrijp het maar hoe zorg ik er dan voor dat maandag dinsdag woensdag van de zelfde week netjes op volgorde bij elkaar blijven staan? via individuele datums?
het zal ook niet vaak voor komen dat een dag leeg is. maar ik het goed begrijp dan is het niet mogelijk om met verschillende velden een berekeningen te maken,
dan zal ik dus met losse records moeten gaan werken. deze records dan steeds met een keuzeveld op maandag of dinsdag moeten zetten(een datum geven).
het lijkt me niet gebruiksvriendelijk maar als het niet anders kan dan zal het moeten.
 
Laatst bewerkt:
In zou inderdaad afstappen van de ma-vr velden; als je een datum invult weet je dat tenslotte ook. Wat je zou kunnen doen, als mensen geen zin hebben om elke dag een formulier in te vullen, is op je formulier 5 knoppen maken voor ma-vr, die voor de bijbehorende dag van de week de juiste datum genereert. Dus als je deze week op vrijdag de records voor deze week invult, dan maak je met de knop <Ma> de datum 11-7, met <Di> de datum 12-7 en zo door. Die knoppen zijn simpel te maken, en je hoeft dan niet na te denken over de juiste datum. Maar zelf zou ik dus elk veld maar één keer gebruiken.

Je kunt met verschillende velden best berekeningen maken; dat gebeurt uiteraard met grote regelmaat. Denk aan een BTW percentage dat je met een Prijs vermenigvuldt. Maar een overzicht maken via een kruistabel is bijvoorbeeld niet mogelijk als je de velden Ma, Di, Wo etc gebruikt, en kan wel op basis van een veld Datum.
Het is zelfs gebruiksvriendelijker, want je hebt veel minder velden nodig, dus je formulier is veel overzichtelijker. De hoeveelheid gegevens die je moet invullen is ook gelijk, want je hebt nog steeds voor elke dag dezelfde plaatsen en gegevens in te vullen. Alleen doe je het niet meer in één record, maar op een doorlopend formulier, eventueel gekoppeld met een hoofdformulier.

Kortom: het is meer een andere denkwijze... Uiteindelijk is de gebruiksvriendelijkheid veel groter, omdat je straks veel meer kunt doen met je gegevens.
 
maar ik zit nog steeds met de dag invoer, hoe kan ik er voor zorgen dat ik meerdere velden tegelijk kan invoeren?
anders moet je steeds een nieuwe record invoeren om een andere dag in te voeren.
het liefst zou ik dit van uit een formulier met alle 5 de records tegelijk doen.
 
Dat kan niet.... Maar dat maakt niet uit of je recht of krom gaat staan: meerdere velden tegelijk kan alleen als je meer dan twee pc's tegelijk gebruikt :D En dan nog heb je handen en voeten nodig...
Je bedoelt dan ook waarschijnlijjk wat anders.... Je moet inderdaad voor elke dag een nieuw record invoeren. Maar wat is daarvan het probleem? Of je nu 15 velden in één record invult, of 3 velden in 5 records: je moet nog steeds 15 velden invullen.... Bovendien kun je, als je met een apart record voor elke dag werkt, inderdaad heel simpel de waarden van een record naar het volgende record kopiëren.
 
het gaat mij er om dat ik totalen wil, maar ik heb nu wel begrepen dat dit lastig is als alles in één record staat :)
 
zou het kunnen dat als ik ma invoer en de records opsla hij in de volgende nieuwe record automatisch naar dinsdag gaat?
of misschien dat de datum automatisch een dag verder gaat?
op het moment moet je maandag zelf invullen uit een keuzevak en de datum ook.
de enige manier hoe de week nog in elkaar hangt is door te filteren op datum van laag naar hoog.
 
Laatst bewerkt:
Dat kun je wel makkelijk maken op je formulier. Met een aparte knop Opslaan bijvoorbeeld, die de velden kopieert die hetzelfde zijn, en de dag met één ophoogt. Want je vult uiteraard een datum in, en niet Ma...
 
Hoe maak je zon aparte opslaan knop? dus als ik het goed begrijp mag een datum er dan 1 keer in staan?
dit is waarschijnlijk geen probleem, ook zou ik willen proberen om ma di wo automatisch te maken (op basis van de datum?).
ik wil de dag aanduiding namelijk toch wel graag houden, het maakt alles een stuk overzichtelijker.
 
Laatst bewerkt:
Dus als ik het goed begrijp mag een datum er dan 1 keer in staan?
Dat is min of meer jouw eigen eis, toch? Al denk ik dat je per plaats per dag wilt invoeren, en als je het goed hebt opgezet, dan komt een datum dus wel degelijk terug bij de volgende plaatsen. De combinatie Datum+Plaats lijkt mij wel uniek. Maar ik heb nog steeds geen goed idee wat je nu aan het maken bent; je voorbeeldjes bevatten ook niet meer dan een tabel met datums, plaatsen en totaalbedragen. Da's niet echt een nette db opzet.
Want ik kan mij toch niet voorstellen dat dat alles is...
 
als het goed is zouden mijn voorbeelden ook formulieren moeten bevatten misschien is er iets fout gegaan bij het overzetten?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan