Urenadministratie en facturering in Acces

Status
Niet open voor verdere reacties.

toxicibo

Gebruiker
Lid geworden
15 feb 2011
Berichten
6
hoi access-experts
Ik heb weinig ervaring met access databases maken en wil graag jullie hulp waarvoor nu al mijn dank. Dit is het ontwerp waaraan ik zit te denken. Doe ik het goed? Nuttige advies is altijd welkom..

Ik wil een tabel Personeelsadministratie waarin ik de gegevens over werknemers wil vast leggen. In deze tabel staan zowel de actieve als niet actieve werknemers. In tabel Personeelsadministratie wil ik alle gegevens van een medewerker hebben zoasl bsn, id, geboorte datum etc...
Een niet actieve personeel kan op een gegeven moment wel weer actief worden en dan moeten deze gegevens ook zichtbaar worden in Tabel werknemer.
In tabel werknemers wil ik nl. alleen personen hebben die daadwerkelijk aan het werk zijn hebben. Deze tabel werknemer heeft dus een raltie met bedrijven en urenadministratie terwijl tabel Personnelsadministratie alleen een relatie heeft met Werknemer tabel.
Voor de bedrijven wil ik een Bedrijven tabel maken. Voor de gewerkte uren wil ik een Urenadministratie tabel hebben. Voor de facturen wil ik een aparte factuur tabel maken welke per werknemer/bedrijf gevuld moet worden met de uren uit de urenadminstraie. (Of is het handiger hiervoor een Rapport te maken? want de uren staan toch al in de Urenadminsitartie. Alleen mis ik bijv. factuur id (handmatig in te voeren) de adres gegeven van de bedrijf waar de factuur heen gestuurd moet worden)


Ik wil in mijn uren administratie de gewerkte uren op dag niveua per werknemer vastleggen welke op een zeker dag bij een bedrijf heeft gewerkt. De database ontwerp moet wel voldoen aan o.a. onderstaande: een werknemer mag ook op een zelfde dag voor meerdere bedrijven gewerkt hebben. Dus werknemer A heeft op een zeker dag 7 uur voor bedrijf A gewerkt en op zelfde dag 2 uur voor bedrijf B. Natuurlijk mag bij een bedrijf meerdere werknemers op dezelfde dag gewerkt hebben. Dit is dus een veel op relatie tussen werknemer en bedrijf.

Ik wil graag ook een facturering systeem hebben op basis van deze gewerkte uren per bedrijf op week basis. Verder wil ik ook graag van zowel de medewerkers als de bedrijven adressen hebben. Ik heb deze adressen in de tabellen zelf gezet. of toch maar een Adres tabel aan maken en deze linken met Bedrijven en Personeelsadministratie?
 
Laatst bewerkt:
Heb je de tekst bijgewerkt omdat er teveel, of omdat er te weinig tikfouten in zaten? ;) Maakt niet uit, de vraag is duidelijk (genoeg).
Eerst maar een vraagje: zitten er in Personeelsadminstratie en Werknemers dezelfde velden? Want dan zie ik geen voordeel (alleen maar nadelen eigenlijk) van een splitsing. Zelf zou ik in één tabel werken, met een extra selectievakje Actief Ja/Nee. Bij het inplannen maak je dan alleen gebruik van actieve werknemers. Kun je ook nooit meer een fout maken. Een splitsing kan wel handig zijn als je voor actieve werknemers aparte gegevens op wilt slaan, die niet in de Personenadministratie voorkomen. Maar dan nog: geen dubbele gegevens; een koppeling (met filtering dus) moet genoeg zijn. Zoals gezegd: ik zou het met één tabel afkunnen.
Facturen kun je best in een aparte tabel opslaan, waarbij je nog een keuze moet maken tussen enkelvoudige facturen of verzamelfacturen. In het laatste geval heb je een extra tabel nodig voor de aparte factuurregels.
Een rapport baseer je uiteraard op een qeury, waarbij je alle relevante gegegevens uit de verschillende tabellen bij elkaar zet. Uiteraard heeft het geen zin om een rapport alleen op de tabel facturen te baseren, want dan mis je de bedrijfsgegevens. Die zitten wel in de query, dus ook in je rapport.
Adressen apart opslaan in een adressentabel lijkt mij niet zo zinvol; tenzij er heel veel bedrijven/personen op hetzelfde adres wonen, bereik je er niet zoveel mee. Dus adresgegevens hou je gewoon bij in je bedrijventabel, en in je werknemerstabel.
 
Te weinig tik fouten zo te lezen :p
Gegevens in tabel Werknemers is een deelverzameling van 'Personeelsadminstratie'.
Dus volgens jou zinvoller om één tabel aan te houden (in dit geval Personeelsadministratie). Van de adressen had ik al zo'n vermoeden. Ik heb ze gewoon in de tabellen gezet. Je opmerking over de facturen snap ik niet.
Een nader opmerking: ik heb dus de urenadminsitartie tabel nodig om de uren per werknemer/bedrijf per dag in te kunneN voeren. Ik heb nu een zelf gemaakte primary key in tabel Werknemer (EmployeeBSN) en tabel Bedrijf (CustomerId). In de uren adminsitartie heb ik deze keys als primary key en een 'datum' als primary key gebruikt.
Dit omdat ik een veel op veel relatie tussen Bedrijf en Werknemer heb. Is dit correct gedaan?
 

Bijlagen

Zal er vanavond een blik op werpen; op het werk doen we (gelukkig) nog niks met 2007.
 
ooh ja.. bij relaties bewerken staan er allerlei opties wat ik niet echt snap. heb wel de referentiel integriteti aangevinkt.. ik las ergens dat dat wel belangrijk was... maar de jointypes heb ik niet gedaan.. de bovenste is standaard aangevinkt en heb het ook zo gelaten.. wat betekenen deze eigenlijk precies...?
 
De Jointypes moet je ook eigenlijk niet aanpassen in je Relaties venster. Een Outer Join (Left of Right) betekent eigenlijk dat je relaties niet deugen. In queries gebruik je ze wel, om niet-gerelateerde records te laten zien. In je relaties wil je juist dat de gegevens in beide tabellen overeen moeten komen. Referentiële integriteit wordt in de cursus meer dan uitstekend behandeld! (zei de auteur van 't stukkie :) )
 
De Jointypes moet je ook eigenlijk niet aanpassen in je Relaties venster. Een Outer Join (Left of Right) betekent eigenlijk dat je relaties niet deugen. In queries gebruik je ze wel, om niet-gerelateerde records te laten zien. In je relaties wil je juist dat de gegevens in beide tabellen overeen moeten komen. Referentiële integriteit wordt in de cursus meer dan uitstekend behandeld! (zei de auteur van 't stukkie :) )

Gelukkig, heb ik het toch goed gelezen en correct begrepen!
 
Nog specifieke vragen? Want op zich zit er niet zo heel veel verkeerd...
 
Nog specifieke vragen? Want op zich zit er niet zo heel veel verkeerd...
bedoel je hiermee dat er iets verkeerd is?
waar ik nu mee zit is de factuur tabel... ik werk er nog aan, ik zal morgen geheid wel met vragen komen.. maar erg bedankt voor de coaching tot zover.. :D
 
Ik denk dat je de tabeleigenschappen nog wel wat kan verbeteren; zo heb je tekstvelden die allemaal 255 tekens lang zijn, wat meestal niet nodig is.
Adressen worden meestal gesplitst in Straatnaam, Huisnummer en toevoeging. Mocht je eventueel een postcodetabel gaan gebruiken, dan zul je die layout wel moeten gebruiken.
Voor het veld strPostalcode zou je een Invoermasker kunnen maken, als je alleen Nederlandse adressen gebruikt, anders de Notatie bijvoorbeeld op Hoofdletters, en een logische veldlengte.
Namen worden meestal gesplitst in Voornaam, Voorletters, Tussenvoegsel, Achternaam en eventueel nog Toevoeging. Dat helpt later bij het maken/sorteren van rapporten etc.

Om maar een paar dingen aan te geven.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan