2014-07-23 4 views
0

도움 나는 다음과 같은 테이블 구조가 : 나는 직원이 사용하기위한 시간 시트를 만들려고하고마이크로 소프트 액세스 - 쿼리

tbl_workShift 
id   PK 
employeeid FK 
logInTime <- full date 
logOutTime <- full date 

합니다. 사용법은 상당히 간단합니다. 직원은 드롭 다운 메뉴에서 자신을 선택하고 로그인 ||을 클릭합니다. 로그 아웃.

로그인 버튼은 새 레코드를 삽입합니다.

이 직원이 내가 로그 아웃 버튼에 문제가 있어요

If(Datediff("h",logInTime,Now())>9) 
->create a new record 
    ->insert logOutTime = NOW() (since the employee forgot to log out yesterday/login today) 
else 
->update last record with logOutTime = now() (he didn't forget to login that same day) 

로그 아웃하고자하는 경우에만 발생 -이 SQL 쿼리를 작성하는 방법을 알아낼 수 없습니다.

+0

코드 **는 ** 수행하지 않으므로 수행 할 작업이 무엇입니까? –

+0

로그 아웃이 정상적으로 작동하지 않을 수 있습니다. 주로 정확한 레코드를 선택하고 올바른 정보로 업데이트합니다. 주로 If 문을 봅니다. 이것은 복제하려는 것입니다. –

+0

시도한 SQL 문은 무엇입니까? – Fionnuala

답변

1

은 내가 당신에게 당신이 ...

찾고있는 도움을 제공하기 위해 무엇을하고 있는지에 대한 정보가 충분하지만이 VBA 코드는 당신이 그것을 알아내는 데 도움이 될 경우 잘 모릅니다.

Private Sub Employee_AfterUpdate() 


Dim db As Database 
Dim rs As Recordset 

Set db = CurrentDb 


Set rs = db.OpenRecordset("SELECT * From tbl_workshift Where employeeid = " & Me!EmployeeId & ";") 

If rs.EOF Then 
    MsgBox "Employee not found." 
    Exit Sub 
Else 
    If DateDiff("h", Me!LogInTime, Now()) > 9 Then 
     rs.AddNew 
      rs!logOutTime = Now() 
     rs.Update 
    Else 
     rs.MoveLast 
      rs.Edit 
      rs!logOutTime = Now() 
     rs.Update 
    End If 

    rs.Close 

End If 


End Sub 

행운을 빈다.

관련 문제