Wachtwoord vergeten?

Wachtwoord vergeten
Vul hier uw email adres in. U ontvangt dan een nieuw wachtwoord.

Access 2000: Dagelijkse uren berekenen op basis van in- en uitkloktijden

Gepost op 22-01-2007 - Microsoft Office - 0 reacties


De informatie in dit artikel is van toepassing op:

  • Microsoft Access 2000 Standard Edition

Dit artikel heeft betrekking op een Microsoft Access-database (.mdb) en een Microsoft Access-project (.adp).

Gemiddeld: vereist basisvaardigheden op het gebied van macro's, codering en interoperabiliteit.

Samenvatting


In dit artikel wordt beschreven hoe dagelijks gewerkte uren worden berekend, onafhankelijk van het aantal keren dat een werknemer in- of uitklokt.

Meer informatie


Voer de volgende stappen uit om een voorbeelddatabase te maken waarin het totale aantal uren wordt berekend dat een werknemer op een bepaalde dag heeft gewerkt:
  1. Maak een nieuwe database en voeg daar de volgende tabellen aan toe:
    Tabel: Employees ---------------------------- Veldnaam: EmpID Type: AutoNummering Veldgrootte: Long Integer Index: Ja (geen dubbele)
    Veldnaam: EmpName Type: Tekst Veldgrootte: 50 Index: Nee
    Tabeleigenschappen: Employees ------------------------------- PrimaryKey: EmpID
    Tabel: EmpDates ---------------------------- Veldnaam: DateID Type: AutoNummering Veldgrootte: Long Integer Index: Ja (geen dubbele)
    Veldnaam: MyDate Type: Datum/tijd Notatie: Korte datumnotatie Index: Nee
    Veldnaam: EmpID Gegevenstype: Number Veldgrootte: Long Integer Index: Nee
    Tabeleigenschappen: EmpDates ------------------------------- PrimaryKey: DateID
    Tabel: EmpTimes ---------------------------- Veldnaam: TimeID Type: AutoNummering Veldgrootte: Long Integer Index: Ja (geen dubbele)
    Veldnaam: TimeIn Type: Datum/tijd Notatie: Middellange tijdnotatie Invoermasker: 09:00\ >LL;0;_ Index: Nee
    Veldnaam: TimeOut Datumtype: Datum/tijd Notatie: Middellange tijdnotatie Invoermasker: 09:00\ >LL;0;_ Index: Nee
    Veldnaam: DateID Datumtype: Number Veldgrootte: Long Integer Index: Nee
    Tabeleigenschappen: EmpTimes ------------------------------- PrimaryKey: TimeID

  2. Maak de volgende twee relaties

    1. Employees naar EmpDates (Een-op-veel) op EmpIDEmpDates naar EmpTimes (Een-op-veel) op DateID
    2. EmpDates naar EmpTimes (Een-op-veel) op DateID


    en schakel de volgende opties in voor deze relaties:
    • Referentiële integriteit afdwingen
    • Gerelateerde velden trapsgewijs bijwerken
    • Gerelateerde records trapsgewijs verwijderen

  3. Maak een nieuwe query, voeg de volgende SQL-instructie toe als bron voor de query en sla de query op als qryTimes:

    SELECT TimeID, TimeIn, TimeOut, DateID, DateDiff("n",[TimeIn],[TimeOut]) AS CalcTime FROM EmpTimes;

  4. Maak drie nieuwe formulieren op basis van de volgende gegevens:
    Formulier: frmEmployees ----------------------- Bijschrift (Caption): Werknemers Recordbron (RecordSource): Employees
    Tekstvak -------------------- Naam: txtEmpID Besturingselementbron (ControlSource): EmpID Ingeschakeld: Nee
    Tekstvak ---------------------- Naam: txtEmpName Besturingselementbron (ControlSource): EmpName
    Formulier: frmDates ---------------------- Bijschrift (Caption): Datums Recordbron (RecordSource): EmpDates
    Tekstvak --------------------- Naam: txtMyDate Besturingselementbron (ControlSource): MyDate
    Tekstvak --------------------- Naam: txtDateID Besturingselementbron (ControlSource): DateID Zichtbaar: Nee
    Tekstvak ------------------- Naam: txtTotalHours
    OPMERKING: in de volgende voorbeeldexpressie wordt een onderstrepingsteken (_) aan het einde van de regel gebruikt als regelvoortzettingsteken. Verwijder het onderstrepingsteken aan het einde van de regel wanneer u deze expressie opnieuw maakt.
    ControlSource: =[Forms]![frmEmployees]![Dates Subform]._ [Form]![Times Subform].[Form]![txtTotTime]
    Formulier: frmTimes ----------------------- Bijschrift (Caption): Tijden Recordbron (RecordSource): qryTimes Standaardweergave: Gegevensblad
    Tekstvak --------------------- Naam: txtTimeIn Besturingselementbron (ControlSource): TimeIn
    Tekstvak ---------------------- Naam: txtTimeOut Besturingselementbron (ControlSource): TimeOut
    Tekstvak ----------------------------------------------------------------- Naam: txtCalcTime ControlSource: =Int([CalcTime]/60) & ":" & Int([CalcTime] Mod 60)
    Tekstvak ------------------------------------------------------------------ Naam: txtTotTime ControlSource: =Int(Sum([CalcTime])/60) & ":" & Int(Sum([CalcTime]) Mod 60)

  5. Open het formulier frmDates in de ontwerpweergave en sleep het formulier frmTimes vanuit het databasevenster naar de sectie Details van het formulier frmDates.
  6. Stel de eigenschap Naam van het subformulierobject in op Subformulier Times, sla het formulier op en sluit het.
  7. Open het formulier frmEmployees in de ontwerpweergave en sleep het formulier frmDates vanuit het databasevenster naar de sectie Details van het formulier frmEmployees.
  8. Stel de eigenschap Naam van het subformulierobject in op Subformulier Dates.

Het voorbeeld testen:

  1. Dubbelklik op het formulier frmEmployees.
  2. Typ Jan Gebruiker in het vak EmpName.
  3. Voer 2-1-2001 in het vak MyDate in.
  4. Voer 09:00 in het vak TimeIn in.
  5. Voer 12:00 in het vak TimeOut in.
  6. Druk op TAB totdat de focus is ingesteld op een nieuwe rij in het vak TimeIn en voer 01:00 in.
  7. Voer 18:00 in het vak TimeOut in.
  8. Klik in het menu Records op Record opslaan. U ziet dat de totale tijd per rij wordt weergegeven in het subformulier Times en dat de som van deze rijen wordt weergegeven in het subformulier Dates.

PrintPrint RSS reactiesRSS reacties BookmarkBookmark

Gekoppelde tags

Access, Access 2000, Database, Fix, Macro, Project, Query, Record, SQL, Tabel

Reacties
Nog geen reacties geplaatst.

Winkelmandje

Het winkelmandje is leeg

Inloggen
Als u hierboven op de knop 'bestellen' klikt krijgt u een overzicht van de door uw gewenste producten. Indien het overzicht compleet en correct is kunt via de wizard de verdere gegevens invullen en uw bestelling afronden. In het bestelproces kunt u altijd op 'vorige' drukken om terug te gaan in het proces. Bij Perrit staan vertrouwen, privacy en veiligheid op de eerste plaats, wij zullen uw gegevens dan ook met uiterste zorgvuldigheid behandelen en nooit doorgeven aan derden.

Perrit.nl Sherwood Rangers 29 Hengelo

Perrit.nl telefoon: +31 74 750 12 20

Kenniscentrum - Access 2000: Dagelijkse uren berekenen op basis van in- en uitkloktijden
Perrit Kenniscentrum - Access 2000: Dagelijkse uren berekenen op basis van in- en uitkloktijden