login ?
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 352   8
URL.หัวข้อ / URL
login ?

เรียนถาม อ.สุภาพค่ะ
หนูได้ลองสร้างฟอร์ม การ login ของผู้ใช้จากหนังสือเล่มหนึ่ง
โดยมี code เป็นอย่างนี้ค่ะ

Private Sub cmdOK_Click()
On Error GoTo Err_cmdOK_Click
Dim rst As Recordset
Dim dbs As Database
Dim stDocName As String
Dim stLinkCriteria As String
Dim USR As Variant

Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset("SELECT * FROM TBLUSER" & _
" WHERE USER_NAME='" & USER_NAME & _
"' AND USER_PASS ='" & USER_PASS & "'")
If Not rst.EOF Then
UserLogin = rst!USER_NAME
BelongToAdmin = rst!USER_ADMIN
UserAdd = rst!User_Add
UserDelete = rst!User_Delete
UserEdit = rst!User_Edit
UserNotViewReport = rst!User_NotViewReport
UserLinkDatabase = rst!User_LinkDatabase
UserImport = rst!User_Import
UserLinkTable = rst!User_LinkTable
DoCmd.Close
stDocName = "frmMain"
DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.Maximize
Else
Beep
MsgBox "ข้อมูลไม่ถูกต้อง", vbCritical, "Login : แจ้งให้ทราบ"
End If

Exit_cmdOK_Click:
Exit Sub

Err_cmdOK_Click:
MsgBox err.Description
Resume Exit_cmdOK_Click
End Sub
++++++++++++++++++++++++++++++++++++++++++++++++++
หนูต้องการเพิ่มเติมในส่วนที่เมื่อผู้ใช้ login ถูกต้องอยากจะให้มีการโอนข้อมูลของผู้ที่ login เข้ามาไปยังอีกตารางนึงค่ะ โดยมีรายละเอียดคือ
ชื่อผู้ใช้
วันที่เข้าใช้
เวลาที่เข้า


อีกกรณีนึงคือ ต้องการให้ โอนข้อมูลเข้าที่ตารางเดิมเมือผู้ใช้ออกจากโปรแกรม โดยการปิดโปรแกรม
โดยให้มีรายละเอียด คือ
ชื่อผู้ใช้
วันที่เข้าใช้
เวลาที่ออก

ไม่ทราบว่าต้องเพิ่มเติม code ตรงส่วนไหนจาก code ข้างบนค่ะ
รบกวนอ.กรุณาแนะนำด้วยน่ะค่ะ
ขอบคุณค่ะ

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

1 @R04218
ก็ต้องเปิดอีก Recordset หนึ่ง คล้ายๆ นี้ครับ


Dim rst As Recordset, rst2 As Recordset
Dim dbs As Database
Dim stDocName As String
Dim stLinkCriteria As String
Dim USR As Variant

Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset("SELECT * FROM TBLUSER" & _
" WHERE USER_NAME='" & USER_NAME & _
"' AND USER_PASS ='" & USER_PASS & "'")
Set rst2 = dbs.OpenRecordset("ชื่อตารางที่เก็บการใช้งานของ User")

If Not rst.EOF Then

rst2.AddNew
rst2("UserName") = USER_NAME
rst2("DateTimeIn") = Now()
rst2.Update

UserLogin = rst!USER_NAME
BelongToAdmin = rst!USER_ADMIN
...

วันและเวลาควรอยู่ในฟีลด์เดียวก็ได้ครับ จะได้ง่ายในการจัดการ

ส่วนการบันทึกการ Log Out ก็ใช้โค้ดเหมือนกัน แต่จะนำไปใช้กับเหตุการณ์ตอนที่ผู้ใช้จบการทำงาน
2 @R04221
ขอบคุณมากค่ะ อ.
หนูรบกวนเรียนถามเพิ่มเติมค่ะ
หนูได้ออกแบบเมนูโดยการใช้ Active X : Microsoft Toolbar Control v.6.0
หนูต้องการให้สามารถกำหนดได้ว่าผู้ใช้แต่ละรายมีสิทธิ์ใน เมนูไหนบ้าง ซึ่งอยากให้กำหนดสิทธิ์ เป็น เพิ่ม ลบ แก้ไข ไม่อนุญาตให้ใช้เมนู
อยากจะขอคำแนะจาก อ.ค่ะว่าต้องทำอย่างไรค่ะ
ขอบคุณค่ะ
3 @R04222
จากความคิดเห็นที่ 1
ที่อ.ได้ตอบไว้น่ะค่ะ หนูขอถามเพิ่มเติมอีก 2 ข้อค่ะ
1.กรณีที่ จบการทำงานจะต้อง โอนผู้ใช้เข้าสู่ตารางใหม่หรือเปล่าค่ะ หมายถึงต้องสร้างตารางสำหรับเก็บค่าเมื่อผู้ใช้ออกจากโปรแกรมอีกมั้ยค่ะ
2.อยากจะให้โอน ชื่อเครื่อง ที่ผู้ใช้ทำงานอยู่เข้าไปในตารางการเข้าใช้โปรแกรมด้วยจะต้องทำอย่างไรค่ะ
รบกวนด้วยค่ะ อ.
4 @R04231
สำหรับความคิดเห็นที่ 2 ลองค้นหาตัวอย่างของ อ. BADMan ดูนะครับ

ส่วนคำถามในความคิดเห็นที่ 3
1. ผมว่าเก็บไว้ในตารางเดียวกันจะจัดการง่ายกว่าครับ เป็น รหัสผู้ใช้ วันเวลาเข้า วันเวลาออก แค่ 3 ฟีลด์

2. ลองดูกระทู้ http://www.thai-access.com/suphap.php?topic_id=919 ครับ
5 @R04235
ขอบคุณมากค่ะ สำหรับคำแนะนำ
รบกวนถามอีกน่ะค่ะ
จากความเห็นที่ 4 ข้อที่ 1 หนูได้สร้างฟิลด์อย่างที่อ.แนะนำน่ะค่ะ
โดยมีการทำงาน ดังนี้ค่ะ
1 เมื่อผู้ใช้เข้าโปรแกรม จะโอนข้อมูลไปที่ ฟิลด์ รหัสผู้ใช้ วันเวลาเข้า ส่วน วันเวลาออกจะว่าง
2 เมื่อผู้ใช้ออกจากโปรแกรม จะโอนข้อมูลเข้าตารางเดิม โดยฟิลด์ วันเวลาเข้าจะว่าง

หมายถึงเมื่อโอนข้อมูล จะเป็นการเพิ่มเร็คคอร์ดใหม่เสมอ ไม่ว่าจะเข้าหรือออก หนูเข้าใจถูกต้องมั้ยค่ะ


คำถาม : ตรวจสอบการทำงานของผู้ใช้
หนูได้ออกแบบโปรแกรมสำหรับงานการเงิน มีปัญหาตรงที่เมื่อผู้ใช้เข้าโปรแกรมแล้วก็จะเปิดโปรแกรมค้างไว้
ทำให้ผู้ใช้อื่น ๆ ที่ไม่เกี่ยวข้อง สามารถเข้ามาปรับเปลี่ยนข้อมูลได้ หนูต้องการให้โปรแกรมตรวจสอบว่าเมื่อผู้ใช้เปิดโปรแกรมทิ้งไว้ โปรแกรมก็จะทำการ log off
เข้าสู่ฟอร์ม log in เอง

หรือมีวิธีอื่นที่ดีกว่า

รบกวนอ.กรุณาแนะนำด้วยค่ะ
ขอบพระคุณค่ะ
6 @R04238
ตัวอย่างโค้ดที่ทำงานกับ Form ที่ผมเคยแนะนำให้ไปเอามาศึกษา จะมีตัวอย่างการ Log Off นี้ได้อยู่ครับ ผมจำไม่ได้ว่าชื่อฟอร์มอะไร

แต่อยู่ใน http://www.microsoft.com/downloads/release.asp?releaseid=13864 ลองเปิดดูครับ
7 @R04245
รบกวนอีกครั้งค่ะ
หนูได้ดูโปรแกรมที่ว่านี่น่ะค่ะ ไม่มีฟอร์มที่เกี่ยวข้องกับ log off เลยค่ะ

หนูมีเรื่องที่จะถามเพิ่มเติมค่ะ
คือ มี Text bob 20 อัน Label 20 อัน
ต้องการให้ text box มีค่าเป็น ว่าง ทั้ง 20 อัน พร้อมกัน
ซึ่งโดยปกติหนูจะใช้ code ดังนี้ค่ะ
me.txt1.value = ""
me.txt2.value = ""

............."..................

me.txt20.value = ""
ต้องเขียน code ยาวมากค่ะ
มีวิธีลัดกว่านี้มั้ยค่ะ

รบกวนอีกครั้งน่ะค่ะ อ.
ขอบคุณมากค่ะ
8 @R04250
ให้ไปที่หมวด Other Form Uses แล้วดู How to detect user idle time or inactivity

ลองใช้ For Next ช่วยครับ

Dim I As Integer

For I = 1 To 20
Me("txt" & I) = ""
Next I
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0647s