มี 2 แบบนะครับ
แบบที่ 1 ถ้าต้องการแสดงชื่อเต็มๆ ของ User
ที่ตาราง User ใส่ Field FullName เข้าไปด้วยเก็บชื่อนามสกุล ของ User คนนั้นๆ นะครับ
ส่วนตัวอย่างคำสั่งประมาณนี้
Private Sub BtnLogin_Click()
Dim fpass As String, fusername As String
If IsNull(Me.Userbox) Then
MsgBox "กรุณาระบุ UserName", vbInformation, "ข้อผิดพลาด"
Exit Sub
ElseIf IsNull(Me.PassBox) Then
MsgBox "กรุณาระบุ Password", vbInformation, "ข้อผิดพลาด"
Else
fusername = Nz(DLookup("[UserName]", "User", "[UserName]='" & Me.Userbox & "'"))
If fusername = "" Then
MsgBox "ชื่อผู้ใช้ไม่ถูกต้อง", vbCritical, "ไม่พบชื่อผู้ใช้งาน"
Me.Undo
Me.Userbox.SetFocus
Else
fpass = Nz(DLookup("[Password]", "User", "[UserName]='" & Me.Userbox & "'"))
If fpass = Me.PassBox Then
Call UserLoginStamp
DoCmd.OpenForm "OA DBMS_Form", acNormal, "", "", , acNormal
Else
MsgBox "รหัสผ่านไม่ถูกต้อง", vbCritical, "พบข้อผิดพลาด"
Me.Undo
Me.Userbox.SetFocus
End If
End If
End If
End Sub
Sub UserLoginStamp()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim UserFullName As String
Set db = CurrentDb
Set rs = db.OpenRecordset("Table1", dbOpenDynaset)
UserFullName = DLookup("[Fullname]", "User", "[UserName]='" & Me.Userbox & "'")
rs.AddNew
rs!Login_name = UserFullName
rs!Login_Date = Now()
rs.Update
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub
แบบที่ 2 ถ้าไม่ได้ต้องการเก็บชื่อเต็มของ User แต่จะเก็บแค่ Username แทนก็แก้เป็นแบบนี้
Private Sub BtnLogin_Click()
Dim fpass As String, fusername As String
If IsNull(Me.Userbox) Then
MsgBox "กรุณาระบุ UserName", vbInformation, "ข้อผิดพลาด"
Exit Sub
ElseIf IsNull(Me.PassBox) Then
MsgBox "กรุณาระบุ Password", vbInformation, "ข้อผิดพลาด"
Else
fusername = Nz(DLookup("[UserName]", "User", "[UserName]='" & Me.Userbox & "'"))
If fusername = "" Then
MsgBox "ชื่อผู้ใช้ไม่ถูกต้อง", vbCritical, "ไม่พบชื่อผู้ใช้งาน"
Me.Undo
Me.Userbox.SetFocus
Else
fpass = Nz(DLookup("[Password]", "User", "[UserName]='" & Me.Userbox & "'"))
If fpass = Me.PassBox Then
Call UserLoginStamp
DoCmd.OpenForm "OA DBMS_Form", acNormal, "", "", , acNormal
Else
MsgBox "รหัสผ่านไม่ถูกต้อง", vbCritical, "พบข้อผิดพลาด"
Me.Undo
Me.Userbox.SetFocus
End If
End If
End If
End Sub
Sub UserLoginStamp()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Table1", dbOpenDynaset)
rs.AddNew
rs!Login_name = Me.UserBox
rs!Login_Date = Now()
rs.Update
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub