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

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 237958 - Bekijk de producten waarop dit artikel van toepassing is.
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.

Alles uitklappen | Alles samenvouwen

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.

Eigenschappen

Artikel ID: 237958 - Laatste beoordeling: maandag 22 januari 2007 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Access 2000 Standard Edition
Trefwoorden: 
kbhowto KB237958

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com