以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]For......Next 循环代码错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=136284)

--  作者:hanzhang98
--  发布时间:2019/6/10 17:00:00
--  [求助]For......Next 循环代码错误
老师好。想实现:允许有三次密码输入机会,如果第一次输借,允许第二次重输。第二次输错,允许第三次重输。如果达到三次时提示并退出。但下面代码运行时,输入焦点不能密码输入框中让重新输入,而是在第一次提示框点击“确定”时,直接出现第二次提示框。在第二次提示框中点击“确定”时,直接出现第三次提示框。在第三次提示框点击“确定”时,直接出现退出提示。请老师帮助修正代码。谢谢。

Dim i As Integer
For i = 1 To 3
    dr = dt.DataRows(0)    \'临时表的行
    If e.Form.Controls("PassWord").Value = dr("用户密码") Then      \'如果输入的密码与表中对应的用户密码比对一致
        e.Form.Close      \'关闭本窗口
    Else
        Messagebox.show("密码错误! 你已第【" & i & "】次输入错误密码!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        If i = 3 Then
            msgbox("你已输入错误密码【" & i & "】次, 系统退出!")    \'检验变量值信息
            Exit For
        End If
    End If
Next
[此贴子已经被作者于2019/6/10 17:20:18编辑过]

--  作者:hanzhang98
--  发布时间:2019/6/10 17:56:00
--  
老师好。请老师帮助指导。谢谢
--  作者:有点甜
--  发布时间:2019/6/10 18:16:00
--  

afterLoad事件

 

vars("次数") = 0

 

click事件

 

vars("次数") += 1
Dim dr = dt.DataRows(0)    \'临时表的行
If e.Form.Controls("PassWord").Value = dr("用户密码") Then
    msgbox("正确")
Else
    If vars("次数") > 3 Then
        msgbox("超过3次错误")
        e.form.close
    Else
        msgbox(vars("次数"))
    End If
End If