เก็บข้อมูลlogin-logout ของ user
กระทู้เก่าบอร์ด อ.Yeadram

 1,149   9
URL.หัวข้อ / URL
เก็บข้อมูลlogin-logout ของ user

พอดีผมพยายามหาข้อมูลการเก็บข้อมูลวันเวลา login-logout ของเพื่อนๆ ในหลายๆกระทู้ในนี้แล้ว เห็นมีแต่ Code สำหรับเก็บวันเวลา login อย่างเดียว ยังไม่มีที่เก็บวัน เวลา logout จึงอยากจะสอบถามเพื่อนๆ และอาจารย์ ว่าพอจะมี Code หรือ ไฟล์ตัวอย่างหรือเปล่าครับ ขอบคุณครับ

9 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R22893
ตัวอย่างครับ
https://drive.google.com/open?id=0B35TLEzx5-J-MVRwYjZYMWFNYWM
ครั้งที่1เป็นlogin ครั้งที่2จะเป็นlogoutครับ
2 @R22894
ขอบคุณครับ แต่น่าจะยังไม่ใช่ที่ต้องการครับ คือผมได้สร้างฟอร์มให้ user แต่ละคนเข้าใช้งาน โดยในฟอร์มจะมี 2 text box สำหรับกรอก user และ password และปุ่ม 2 ปุ่ม สำหรับ login และ logout และให้บันทึกวันเวลาลงในตารางเมื่อกดปุ่ม
3 @R22895
ตอนนี้ผมสร้างปุ่มให้บันทึกข้อมูล user และ login ได้แล้วครับ ตามนี้ครับ
Private Sub CmdLOgin_Click()
Dim MySql As String
Dim rstRegis As Recordset
Dim strCom As String
Dim fs As Object, i As Long, DBName As String
Set dbs = CurrentDb
MySql = "SELECT TUser.* FROM TUser WHERE (((TUser.User)='" & Me![txtuser] & "'));"

Set rst = dbs.OpenRecordset(MySql, dbOpenDynaset)
If rst.EOF Then
    MsgBox "ª×èͼÙéãªéáÅÐÃËÑʼèÒ¹äÁè¶Ù¡µéͧ", vbCritical
    Me![txtuser].SetFocus
    Exit Sub
End If

If rst![Password] = Me![txtpsw] Then

          Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("User", dbOpenDynaset)
    rs.AddNew
    rs!Login_name = Me![txtuser]    ' ' ???????????????????????????????????????? Username ?????
    rs!Login_Date = Now()
    rs.UpDate
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing
    
          DoCmd.OpenForm "MainForm"
          
Else
    MsgBox "ª×èͼÙéãªéáÅÐÃËÑʼèÒ¹äÁè¶Ù¡µéͧ", vbCritical
    Me![txtuser].SetFocus
    
End If
Exit Sub
End Sub

แต่ตอนกด logout แล้วให้ไปบันทึกในช่อง record เดียวกันยังไม่ได้
4 @R22896
ผมสร้างตารางเก็บข้อมูลชื่อ user ประกอบไปด้วยฟิลด์ดังนี้ครับ
1. ID (Autonumber)
2. Login_Name
3. Login_Date
4. Logout_Date
5 @R22897
6 @R22898
พอดีใส่รูปไม่ได้ครับ

ในฟอร์มจะมี 2 text box
1.txtuser ใส่ชื่อผู้ใช้งาน
2.txtpsw ใส่รหัสผ่าน

และมีปุ่ม command 2 ปุ่ม
1. CmdLogin สำหรับกดเมื่อ Login
2. CmdLogout สำหรับกดเมื่อ Logout
7 @R22900
ไม่ทราบว่าจากคำสั่งที่ผมเขียนไว้ด้านบน จะต้องเขียนคำสั่งอะไรเพิ่มไว้ตรงใหนครับ เพื่อให้เก็บข้อมูล logout ไว้ใน record เดียวกับตอน login คำถามเยอะเลย

ขอบคุณล่วงหน้าครับ
8 @R22901
คุณต้องคิดก่อนว่าคุณจะเก็บ วันที่ logout ไว้ในเรคคอร์ดเดียวกับ Login จะใช้อะไรเป็นเงื่อนไขให้ตรงกัน เช่นใช้ค่า ID ของเรคคอร์ดนั้น หรือใช้เรคคอร์ดสุดท้ายที่มีชื่อตรงกับชื่อ user ที่ Login

ยกตัวอย่างนะครับ หากผมจะเก็บค่าวันที่ logout ในตารางที่ค่าชื่อ USER ตรงกับ txtuser บนฟอร์ม และ ID มากสุด ผมก็จะเขียนไว้ที่ปุ่ม Logout ประมาณนี้

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("TUSER", dbOpenTable)
    rs.Index = "ID"
    rs.Seek "=", DMax("ID", "TUSER", "Login_name ='" & Me.txtuser & "'") หาค่า ID ของตาราง TUSER ที่ต้องการจะบันทึก โดยจะใช้เงื่อนไขอะไรให้ตรงกับเรคคอร์ดในตารางที่ต้องการ
    rs.Edit
    rs!Logout_Date = Now()
    rs.Update
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing

อะไรประมาณนี้ครับ ลองปรับใช้ดู
9 @R22902
ได้แล้วครับขอบคุณมากๆ เลยครับ ตื่นมาเห็นคำตอบ ลองทำตามได้เลยครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2869s