Relaties in acces

  • Onderwerp starter Onderwerp starter lilx
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

lilx

Gebruiker
Lid geworden
21 aug 2007
Berichten
47
Hallo,

Ik heb een database gemaakt voor een bedrijf waarin allemaal gegevens van werknemers in staan
bij deze bedrijf werken ze met een computer systeem die kijkt of de werknemer(s) een hele shifts hebben gedraaid door te kijken of die is ingelogd en hoelang. Maar soms doet een computer het niet of kan een persoon niet inloggen en zetten ze die persoon in een exelsheet zodat ze weten dat die wel aanwezig is geweest. En mij hebben ze gevraagd of ik bij de database die ik heb gemaakt ook een systeem kan maken om het exelsheet te vervangen.
Dus was ik op het idee gekomen en de werknemers tabel te koppelen aan een nieuwe tabel zodat ik niet alle personeel leden niet hoef over te typen

Dus de bedoeling is om

Voornaam
Tussenvoegsel
Achternaam

Allemaal automatisch laten over nemen van het tabel werknemer
En die gegevens te plaatsen in de nieuwe tabel
waardoor wanneer een storing is moet je niet het naam opnieuw type moet het alleen opzoeken
En kan de rest gaan invullen

Dus uiteindelijk moet het zo eindigen

Voornaam (haalt het systeem uit table werknemer )
Tussenvoegsel (haalt het systeem uit table werknemer )
Achternaam (haalt het systeem uit table werknemer )
Uren
Datum
Shift

Hopelijk heb ik het zo duidelijk mogelijk uitgelegd en heb ik spoedig antwoord

Met vriendelijk groet,
lilx
 
Als je database genormaliseerd is heb je een WerknemerID. Je tabel ziet er dan globaal zo uit:

WerknemerID
Voornaam
Tussenvoegsel
Achternaam

Waarbij WerknemerID de sleutel is van je tabel.

Maak een tabel waarin je behalve uren, datum en shift ook het werknemerID opneemt:

WerknemerID
Uren
Datum
Shift

Op die manier zijn de twee teballen gelinkt.

Enjoy!
 
Als je database genormaliseerd is heb je een WerknemerID. Je tabel ziet er dan globaal zo uit:

WerknemerID
Voornaam
Tussenvoegsel
Achternaam

Waarbij WerknemerID de sleutel is van je tabel.

Maak een tabel waarin je behalve uren, datum en shift ook het werknemerID opneemt:

WerknemerID
Uren
Datum
Shift

Op die manier zijn de twee teballen gelinkt.

Enjoy!

dankje wel guus2005 en zal het gelijk uitporberen maar ik heb hierbij ook een vraag, hij moet wel de naam ophalen van het table werknemer maar stel nou ik wil een record verwijderen dan wil ik niet dat die de naam verwijdert (want die komt natuurlijk van een andere tabel en die is ook weer ergens anders voor nodig)
 
Waar jij het over hebt heet cascading delete. Zolang je de tabellen niet wezenlijk gelinkt hebt in het relatiescherm is daar ook geen sprake van. Kan je trouwens ook instellen.
Nu kan je zonder meer records verwijderen uit bijvoorbeeld de Uren tabel zonder dat er in de Werknemer tabel ook een record wordt verwijderd.

Ik geef zelf de voorkeur om een datum veld op te nemen in de Werknemer tabel waarmee je de einddatum op kunt geven van een bepaalde medewerker. Dan blijft de historie bestaan.

succes!
 
hallo,

ik heb gedaan wat je hebt gezegt guus dus een nieuw tabel gemaakt met
WerknemerID
Uren
Datum
Shift

daarna heb ik
WerknemerID (van het tabel Werknemer)
en
WerknemerID (van het nieuwe tabel)
gekoppeld in het relatie Scherm

ik had vervolgens een Formulier wizard gedaan
waarbij ik dan

Voornaam
Tussenvoegsel
Achternaam
uit het tabel "werknemer" gehaald
en heb vervolgens

Uren
Datum
Shift
uit het tabel "test" gehaald

heb vervolgens het wizard voltooid
en ben het formulier gaan bekijken in normale weergave
en de namen kwamen niet te voorschijn kan jij mij dat uitleggen of heb ik iets verkeerds gedaan?
 
ik heb de onnodige zaken verwijdert maar ondanks dat bleef de gezipde bestand groter dan 100kb dus heb het bestand gesplit
en hopelijk kom je eruit want moe van het steeds proberen :P
 

Bijlagen

Laatst bewerkt:
Als je de sticky post had gelezen dan had je geweten dat ik geen rar file open kan maken:rolleyes:
 
het spijt me zeer had het niet helemaal begrepen mijn excusses ervoor
 

Bijlagen

Revisited.

Je moet in tabel "Agent Niet Ingelogd" het type van het veld "WerknemerID" veranderen naar Number (Long).
Er is maar één Autonumber veld en die zit in tabel "Powerhouse". Van daaruit kan hij worden gelinkt.

Er komt nog meer..

Ik heb tabel Powerhouse uitgekleed en ik heb een tabel toegevoegd "Aanwezig".
Iedere werknemer kan opgeven wanneer -ie werkt. Wanneer dat niet het geval is krijg je vanzelf een leegte in je tabel. Dan heeft die persoon niet gewerkt. Eigenlijk kan de tabel "Agent niet ingelogd" weg. Doe er je voordeel mee!

Je hebt nog even werk.

Prettig weekend.
 

Bijlagen

Laatst bewerkt:
Je moet in tabel "Agent Niet Ingelogd" het type van het veld "WerknemerID" veranderen naar Number (Long).
Er is maar één Autonumber veld en die zit in tabel "Powerhouse". Van daaruit kan hij worden gelinkt.

Er komt nog meer..

Ik heb tabel Powerhouse uitgekleed en ik heb een tabel toegevoegd "Aanwezig".
Iedere werknemer kan opgeven wanneer -ie werkt. Wanneer dat niet het geval is krijg je vanzelf een leegte in je tabel. Dan heeft die persoon niet gewerkt. Eigenlijk kan de tabel "Agent niet ingelogd" weg. Doe er je voordeel mee!

Je hebt nog even werk.

Prettig weekend.

hallo dank je wel voor je hulp en zal het gelijk naar kijken, maar de reden is wrm ik "agent niet ingelogd" hebt is omdat het is beter in te vullen wie er niet aanwezig is dan in tevullen wie er aanwezig is voor 120+ man

guus ik heb gekeken naar de naar jouw vorbeeld en heb het volgens jouw manier over genomen dus maar wanneer ik een nu een persoon wilt invoegen bij tabel powerhouse zegt acces dit "Kan geen record Toevoegen of wijzigen omdat een gerelateerde record is vereist in de tabel Agent Niet Ingelogd" dus er is iets mis met de relatie
 
Laatst bewerkt:
In je tabel " Agent Niet Ingelogd" is het medewerkerID ook autonumber. Die moet je number long maken. Verder is de 1:N relatie andersom dus van Powerhouse naar " Agent Niet Ingelogd".
 
hallo ik heb het opgelost en het werkt prima :) dank je wel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan