กระทู้เก่าบอร์ด อ.Yeadram
4,369 13
URL.หัวข้อ /
URL
Login User Password ครับ
ตอนนี้ผมใช้
จะทำยังไงให้มันไปตรวจสอบ ชื่อกับรหัส ในเทเบิลที่สร้างไว้สำหรับใส่ชื่อกับรหัสให้ใช้ได้หลายๆคนครับผม
Username.SetFocus
If Username = "user" And Password = "pass" Then
MsgBox "ยินดีต้อนรับสู่ระบบบันทึกข้อมูล"
DoCmd.Close
DoCmd.OpenForm "main"
Exit Sub
Else
MsgBox "กรุณาใส่ ชื่อและรหัส ให้ถูกต้อง"
End If
Static intLogonAttempts As Integer
intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts >= 3 Then
MsgBox "คุณพยายามเข้าระบบเกินสามครั้ง กรุณาติดต่อผู้ดูแลระบบ", vbCritical, "ปิดโปรแกรม"
Application.Quit
End If
จะทำยังไงให้มันไปตรวจสอบ ชื่อกับรหัส ในเทเบิลที่สร้างไว้สำหรับใส่ชื่อกับรหัสให้ใช้ได้หลายๆคนครับผม
13 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R16039
มัน error แถวนี้ครับ
ไม่ทราบว่าผิดตรงไหนครับผม
If DCount("Tuser", "Tlogin", "Tuser = '" & Username & "' and Tpass = '" & Password & "' ") > 0 Then
ไม่ทราบว่าผิดตรงไหนครับผม
3 @R16043
error ว่าอะไรครับ ?
แล้วผมลืมไปว่าบรรทัดล่างสุด ให้เพิ่มบรรทัด
LastUserName = UserName
แล้วผมลืมไปว่าบรรทัดล่างสุด ให้เพิ่มบรรทัด
LastUserName = UserName
4 @R16045
ทำให้ 2010 ก็ฟ้องอย่างครับ ทำใน 2013 ก็ฟ้องอย่างครับ 2013 ฟ้องว่า ชนิดข้อมูลไม่ตรงกันในนิพจน์เกณฑ์ ครับ
แล้วมันก็มาชี้ที่สีเหลืองครับ
แล้วมันก็มาชี้ที่สีเหลืองครับ
Private Sub Login_Click()
Username.SetFocus
If DCount("Tuser", "Tlogin", "Tuser = '" & Username & "' and Tpass = '" & Password & "' ") > 0 Then
MsgBox "ยินดีต้อนรับสู่ระบบบันทึกข้อมูล"
DoCmd.Close
DoCmd.OpenForm "main"
Exit Sub
Else
MsgBox "กรุณาใส่ ชื่อและรหัส ให้ถูกต้อง"
End If
Static intLogonAttempts As Integer
intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts >= 3 Then
MsgBox "คุณพยายามเข้าระบบเกินสามครั้ง กรุณาติดต่อผู้ดูแลระบบ", vbCritical, "ปิดโปรแกรม"
Application.Quit
End If
LastUserName = Username
End Sub
5 @R16046
ฟิลด์ TUser และ TPass อยู่ในเทเบิล Tlogin ใช่หรือไม่ แล้วมีประเภทข้อมูลเป็นอะไร ไม่ใช่เป็น Text หรือ ?
บนฟอร์มมีเท็กซ์บ็อกซ์ชื่อ UserName และ Password ใช่หรือไม่ ถ้าใช่ ลองเปลี่ยนเป็น Me.UserName และ Me.Password
บนฟอร์มมีเท็กซ์บ็อกซ์ชื่อ UserName และ Password ใช่หรือไม่ ถ้าใช่ ลองเปลี่ยนเป็น Me.UserName และ Me.Password
6 @R16047
ได้แล้วครับอาจารย์
ถ้าไม่เป็นการรบกวน ผมอยากสอบถามในระดับ Advance ครับ
จากโคดเดิม จะเขียนเพิ่มยังไงให้ผู้ใช้ เข้าใช้งานตาม Form ที่กำหนดครับ
เช่น ชื่อ ก. ให้ไป ฟอร์ม 1 ชื่อ ข. ให้ไป ฟอร์ม 2
ตามชื่อ user ครับผม
ถ้าไม่เป็นการรบกวน ผมอยากสอบถามในระดับ Advance ครับ
จากโคดเดิม จะเขียนเพิ่มยังไงให้ผู้ใช้ เข้าใช้งานตาม Form ที่กำหนดครับ
เช่น ชื่อ ก. ให้ไป ฟอร์ม 1 ชื่อ ข. ให้ไป ฟอร์ม 2
ตามชื่อ user ครับผม
7 @R16049
ในเทเบิล TLogin ให้เพิ่มฟิลด์อีกฟิลด์เพื่อเก็บ ชื่อฟอร์มที่จะให้เริ่มใช้ สมมุติชื่อฟิลด์ TStartForm
ในโค้ดให้เปลี่ยนบรรทัด DCount เป็น
Dim StartForm As Variant
StartForm = DLookUp("TStartForm", "Tlogin", "Tuser = '" & Username & "' and Tpass = '" & Password & "' ")
if not Isnull(DLookUp) then
MsgBox "ยินดีต้อนรับสู่ระบบบันทึกข้อมูล"
DoCmd.Close
DoCmd.OpenForm StartForm
ลองไปหาดูนะครับว่าแต่ละฟังก์ชั่นทำงานยังไง
ในโค้ดให้เปลี่ยนบรรทัด DCount เป็น
Dim StartForm As Variant
StartForm = DLookUp("TStartForm", "Tlogin", "Tuser = '" & Username & "' and Tpass = '" & Password & "' ")
if not Isnull(DLookUp) then
MsgBox "ยินดีต้อนรับสู่ระบบบันทึกข้อมูล"
DoCmd.Close
DoCmd.OpenForm StartForm
ลองไปหาดูนะครับว่าแต่ละฟังก์ชั่นทำงานยังไง
8 @R16050
ขอบคุณครับอาจารย์ ในฟิลข้อมูลผมใส่
user = test
pass = test
StartForm = main
มัน error แบบนี้ครับผม
user = test
pass = test
StartForm = main
Username.SetFocus
Dim StartForm As Variant
StartForm = DLookup("TStartForm", "Tlogin", "Tuser = '" & Username & "' and Tpass = '" & Password & "' ")
If Not IsNull(DLookup) Then
MsgBox "ยินดีต้อนรับสู่ระบบบันทึกข้อมูล"
DoCmd.Close
DoCmd.OpenForm StartForm
Exit Sub
Else
MsgBox "กรุณาใส่ ชื่อและรหัส ให้ถูกต้อง"
End If
Static intLogonAttempts As Integer
intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts >= 3 Then
MsgBox "คุณพยายามเข้าระบบเกินสามครั้ง กรุณาติดต่อผู้ดูแลระบบ", vbCritical, "ปิดโปรแกรม"
Application.Quit
End If
LastUserName = Username
มัน error แบบนี้ครับผม
ข้อผิดพลาดนี้เกิดขึ้นเมื่อไม่สามารถเรียกใช้เหตุการณ์ได้เนื่องจากไม่สามารถประเมินตำแหน่งที่ตั้งของตรรกะสำหรับเหตุการณ์ได้ ตัวอย่างเช่น ถ้าคุณสมบัติ OnOpen ของฟอร์มถูกตั้งค่าเป็น =[Field] ข้อผิดพลาดนี้จะเกิดขึ้นเนื่องจากคาดว่าแมโครหรือชื่อเหตุการณ์จะทำงานเมื่อเหตุการณ์นั้นเกิดขึ้น
9 @R16051
โทษครับ ต้องเป็น If Not IsNull(StartForm) Then
10 @R16053
ขอบคุณอาจารย์มากๆเลยครับ
ทำให้ผมได้ความรู้ขึ้นอีกเยอะเลยครับ
คนเราขวนขวายศึกษาและได้ผู้แนะนำที่ดี ทำให้การศึกษานั้นสำเร็จได้
ขอบคุณมากๆครับผม
ทำให้ผมได้ความรู้ขึ้นอีกเยอะเลยครับ
คนเราขวนขวายศึกษาและได้ผู้แนะนำที่ดี ทำให้การศึกษานั้นสำเร็จได้
ขอบคุณมากๆครับผม
11 @R16070
12 @R17370
ขอบคุณอีกคนครับ
13 @R17375
ผมขอถามครับ เวลา login ได้ แล้วมันแสดง Msgboxขึ้นมา ผมอยากให้มันแสดงชื่อผู้ใช้ที่ login เข้ามาอ่ะครับ ผมต้องใส่โค้ดใน msgbox ยังไงดีครับ
Time: 0.2691s
Username.SetFocus
If DCount("ชื่อฟิลด์ผู้ใช้","ชื่อเทเบิลผู้ใช้","ชื่อฟิลด์ผู้ใช้ = '" & UserName & "' and ชื่อฟิลด์รหัสผ่าน = '" & Password & "' ") > 0 then
MsgBox "ยินดีต้อนรับสู่ระบบบันทึกข้อมูล"
DoCmd.Close
DoCmd.OpenForm "main"
Exit Sub
Else
MsgBox "กรุณาใส่ ชื่อและรหัส ให้ถูกต้อง"
End If
Static intLogonAttempts As Integer
Static LastUserName As String
If UserName = LastUserName then
intLogonAttempts = intLogonAttempts + 1
Else
intLogonAttempts = 1
End If
If intLogonAttempts >= 3 Then
MsgBox "คุณพยายามเข้าระบบเกินสามครั้ง กรุณาติดต่อผู้ดูแลระบบ", vbCritical, "ปิดโปรแกรม"
Application.Quit
End If