Login User Password ครับ
กระทู้เก่าบอร์ด อ.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

1 @R16036
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
2 @R16039
มัน error แถวนี้ครับ

If DCount("Tuser", "Tlogin", "Tuser = '" & Username & "' and Tpass = '" & Password & "' ") > 0 Then


ไม่ทราบว่าผิดตรงไหนครับผม
3 @R16043
error ว่าอะไรครับ ?

แล้วผมลืมไปว่าบรรทัดล่างสุด ให้เพิ่มบรรทัด
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
6 @R16047
ได้แล้วครับอาจารย์

ถ้าไม่เป็นการรบกวน ผมอยากสอบถามในระดับ 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

ลองไปหาดูนะครับว่าแต่ละฟังก์ชั่นทำงานยังไง
8 @R16050
ขอบคุณครับอาจารย์ ในฟิลข้อมูลผมใส่

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 ยังไงดีครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2691s