กระทู้เก่าบอร์ด อ.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
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 เดียวกันยังไม่ได้
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
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
ในฟอร์มจะมี 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
อะไรประมาณนี้ครับ ลองปรับใช้ดู
ยกตัวอย่างนะครับ หากผมจะเก็บค่าวันที่ 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
ได้แล้วครับขอบคุณมากๆ เลยครับ ตื่นมาเห็นคำตอบ ลองทำตามได้เลยครับ
Time: 0.2869s
https://drive.google.com/open?id=0B35TLEzx5-J-MVRwYjZYMWFNYWM
ครั้งที่1เป็นlogin ครั้งที่2จะเป็นlogoutครับ