Prikazi cijelu temu 28.10.2018 18:53
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:Re: Baza za kontrolu pristupa!
Evo procedura pa mozemo testirati i raspravljati.
Jeste da sam malo zakasnio ali nisam stigao prije.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function Pokreni()
  2. KUpis 1
  3. End Function
  4. Function KUpis(UserId As Integer)
  5. Dim SQL(2) As String
  6. Dim Rs(2) As DAO.Recordset
  7. Dim Db As DAO.Database
  8. Dim Dat(3) As Date
  9. Dim Id(2) As Integer
  10. Dim DatStr(3) As String
  11.  
  12. Call Tabela
  13. Set Db = CurrentDb
  14. SQL(0) = "SELECT * FROM UlazIzlaz"
  15. Set Rs(0) = Db.OpenRecordset(SQL(0))
  16. SQL(1) = "SELECT UserId, CheckTime FROM CHECKINOUT WHERE UserId=" & UserId & " AND CheckType='i' ORDER BY CheckTime"
  17. Set Rs(1) = Db.OpenRecordset(SQL(1))
  18.  
  19. Do While Not Rs(1).EOF
  20. Dat(1) = Rs(1)!CheckTime
  21. Id(1) = Rs(1)!UserId
  22. If Err.Number = 3021 Then
  23. Id(2) = 0
  24. Err.Clear
  25. On Error GoTo 0
  26. End If
  27.  
  28. If Dat(0) < Dat(1) Then
  29. Dat(0) = Dat(1) + TimeValue("00:05:00")
  30. Dat(3) = Dat(1) + 1
  31. DatStr(1) = "#" & Format(Dat(1), "mm-dd-yy HH:mm") & "#"
  32. DatStr(3) = "#" & Format(Dat(3), "mm-dd-yy HH:mm") & "#"
  33. SQL(2) = "SELECT UserId, CheckTime FROM CHECKINOUT WHERE  CheckType='o' and (CheckTime Between " & DatStr(1) & " AND " & DatStr(3) & ") ORDER BY CheckTime"
  34. Set Rs(2) = Db.OpenRecordset(SQL(2))
  35. Rs(0).AddNew
  36. If Rs(2).RecordCount > 0 Then
  37. Dat(2) = Rs(2)!CheckTime
  38. Rs(0)!Izlaz = Dat(2)
  39. Rs(2).Close
  40. End If
  41. Rs(0)!UserId = Id(1)
  42. Rs(0)!Ulaz = Dat(1)
  43. Rs(0).Update
  44. End If
  45. Rs(1).MoveNext
  46. Loop
  47.  
  48. Rs(1).Close
  49. Rs(0).Close
  50. Set Db = Nothing
  51. End Function
  52. Function Tabela()
  53. Dim Db As DAO.Database
  54. Dim tdf As DAO.TableDef
  55.  
  56. Set Db = CurrentDb()
  57.  
  58. For Each tdf In Db.TableDefs
  59. If tdf.Name = "UlazIzlaz" Then
  60. DoCmd.DeleteObject acTable, tdf.Name
  61. Exit For
  62. End If
  63. Next tdf
  64.         Db.Execute "CREATE TABLE UlazIzlaz " _
  65.             & "(id counter, UserID Number,ulaz DateTime,izlaz DateTime);"
  66. End Function

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.