tags:

views:

250

answers:

1

Using Access 2003 Database

Table1

Intime   Outtime  WorkTime OverTime

08:00:00 19:00:00 09:00:00 02:00:00
09:00:00 18:23:23 09:00:00 00:23:23
15:00:00  -----   00:00:00 00:00:00
09:00:00 18:00:00 09:00:00 00:00:00

Intime, Outtime, Work time, overtime data type is text

From 09:00:00 to 18:00:00 - It will come in Work time
Before 09:00:00, after 18:00:00 – It will come in overtime

My query.

SELECT PERSONID,
       CARDEVENTDATE,
       INTIME,
       OUTTIME,
       (IIF(OUTTIME = 'No Punchout', '00:00:00', WorkTime)) AS WorkedTime,
       (IIF(OUTTIME = 'No Punchout', '00:00:00', OverTime)) AS OverdutyTime,
       Latecome,
       (IIF(OUTTIME = 'No Punchout', '', EarlyLeave)) AS EarlyLeave
FROM
       (SELECT PERSONID,
               CARDEVENTDATE,
               INTIME,
               (IIF(OUTTIME = INTIME, 'No PunchOut', OUTTIME)) AS OUTTIME,
               (Format(IIf(CLng(OutTime) > 180000, 
                           CDate('18:00:00'), 
                           CDate(Format(OutTime, '00:00:00'))) 
                       - IIf(CLng(InTime) < 90000, 
                           CDate('09:00:00'), 
                           CDate(Format(InTime, '00:00:00'))),
                       'hh:nn:ss')) AS WorkTime,
               (Format(IIf(CLng(InTime) < 90000, 
                           CDate('09:00:00') 
                           - CDate(Format(InTime, '00:00:00')), 0) 
                       + IIf(CLng(OutTime) > 180000, 
                           CDate(Format(OutTime, '00:00:00')) 
                           - CDate('18:00:00'), 0), 
                       'hh:nn:ss')) AS OverTime,
               (Format(IIf(CLng(Intime) > 090000, 
                           CDate(Format(Intime, '00:00:00'))) 
                       - IIf(90000, CDate('09:00:00'), 
                           CDate(Format(InTime, '00:00:00'))), 
                       'hh:nn:ss')) AS LateCome,
               (Format(IIf(180000, 
                           CDate('18:00:00'), 
                           CDate(Format(outtime, '00:00:00'))) 
                       - IIf(CLng(Outtime) < 180000, 
                           CDate(Format(Outtime, '00:00:00'))), 
                       'hh:nn:ss')) AS EarlyLeave
               (SELECT  T_PERSON.PERSONID,
                        T_CARDEVENT.CARDEVENTDATE,
                        MIN(T_CARDEVENT.CARDEVENTTIME) AS INTIME,
                        MAX(T_CARDEVENT.CARDEVENTTIME) AS OUTTIME
               FROM     T_PERSON
                        INNER JOIN T_CARDEVENT
                        ON       T_PERSON.PERSONID = T_CARDEVENT.PERSONID
               GROUP BY T_PERSON.PERSONID,
                        T_CARDEVENT.CARDEVENTDATE
               )
       )

Above query is Correctly Working in my system.

But when I use the query in client system, it showing like this…

Table1

Intime   Outtime  WorkTime    OverTime

08:00:00 19:00:00 09:00:00 AM 02:00:00 AM
09:00:00 18:23:23 09:00:00 AM 12:23:23 AM
15:00:00  -----   12:00:00 AM 00:00:00 AM
09:00:00 18:00:00 09:00:00 AM 12:00:00 AM

It is displaying 12:00:00 AM Instead of 00:00:00 and also displaying 12:23:23 instead of 00:00:00.

If it is 00 then it is displaying 12:00:00 AM.

Clients Using Access 2007 Database. There is not Access 2003 or Access 2007 Problem. Why worktime and Overtime is displaying like 12:00:00 AM. I copied the client database and check the database in my System. Work Time and Over Time is correctly displaying.

Please can any one help to solve my problem.

A: 

Change the way your system displays time.

leppie
How to Change the System Display Time
Gopal
WinXP Control Panel > Regional And Language Options >Customize > TimeI could be wrong.
Antony Delaney
That's not a valid answer since there may be dependencies in other apps.
David-W-Fenton
Mr. Antony Is working Fine. Time is displaying Correctly. Thankyou
Gopal