箭扣长城怎么去:第十讲补讲:最简单的VB制作系统登录注册界面,包括用户名,密码和错误校验_清风之心灵咖啡_...

来源:百度文库 编辑:偶看新闻 时间:2024/05/01 02:09:47
第十讲补讲:最简单的VB制作系统登录注册界面,包括用户名,密码和错误校验2009年08月03日 星期一 10:46

      前面于第十讲中我曾写过一段系统界面登录程序的代码,但是由于当时是直接从我的HIS程序中复制过来的,和其它的程序有关联,可能会造成大家的阅读困难,在此,我特意重写了一段最为简单的代码,供大家参考交流。代码经过本验证,绝对正确,根据操作步骤复制即有效。

      在此, 我将以一个初学者的角度,从头开始,一步一步地介绍登录注册界面的制作过程。

      首先,我们来进行代码前的准备工作,为求简便,我们使用Access 2003来建立一个新的空数据库,命名为db1存储路径为D:\db1,在db1中创建一张新的表格,命名为用户信息表,并设定用户信息表中有两个字段,分别为用户名称用户口令,注意它们的数据类型均为文本格式,一定要注意,不然到后面代码就会出错,而且极难查错。   完成设计视图之后输入一条记录,记录中的用户名属性值为Angel,密码为123。输入一条记录的目的是用于检验登录代码是否正确以及起到一点演示效果。

     下面打开VB6.0,建立一个新的工程,命名为工程1,打开就有一个新的窗体Form1。布置界面如图所示,当然这只是个示例,你可以有更好的界面设计。图中,管理员名称和口令是两个文本框,名称分别为TxtUserNameTxtPassword,登录和取消为两个按钮,名称分别为CmdLoginCmdCancel

      准备工作完成之后,就可以添加代码了。代码如下,我将逐行注释。

      取消按钮最为简单,代码如下:

Private Sub CmdCancel_Click()
'//结束
End
End Sub

    下面添加登录按钮的代码。

Private Sub CmdLogin_Click()


      Dim UserName As String
     
      Dim PassWord As String

      Dim conn As New ADODB.Connection                 '定义新的连接

      Dim rs As New ADODB.Recordset                    '定义新的记录集
   
      Dim StrSQL As String                             '定义字符串StrSQL
   
      conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\db1.mdb"   '打开连接,指定连接路径和支持
     
      UserName = Trim(TxtUserName.Text)                '将文本框内的值赋给定义好的变量,trim为类型转换函数
      PassWord = Trim(TxtPassword.Text)

If UserName = "" Or PassWord = "" Then                '如果输入的用户名和密码为空则

    MsgBox "对不起,用户或密码不能为空!请重新输入!!", vbCritical, "错误"

    ElseIf UserName <> Empty And PassWord <> Empty Then     '否则如果用户名与密码都不为空则Cnum自加1,Cnum为窗体载入时添加数字变量,用于记录错误登录次数
   
    Cnum = Cnum + 1
   
    StrSQL = "select * from 用户信息表 where 用户名称= '" & UserName & "'and 用户口令 ='" & PassWord & "'"
    '从用户信息表中查询用户名称和用户口令两个字段并获得属性值,为下面的判断语句做准备
    rs.Open StrSQL, conn, adOpenKeyset, adLockPessimistic '//打开记录集,可以用数字代替
   
    If rs.EOF = True Then                              '此句为判断的核心语句,EOF的返回值表示为最后一行的后一行,和BOF类似,返回值为TRUE,则表示表中不存在这一行记录,由此判断密码是否与表中记录相一致,从而达到验证的目的。
    MsgBox "对不起,无此用户或者密码不正确!请重新输入!!", vbCritical, "错误"
    TxtUserName.Text = ""                              '置文本框为空
    TxtPassword.Text = ""
    TxtUserName.SetFocus
    rs.Close                                           '每次打开记录完成后需要注意及时关闭,不然下次使用时会出错
   
   
    If Cnum >= 3 Then                                  '判断输入错误次数,以提高系统的安全性能
    MsgBox "对不起,您已经多次失败,无权操作本系统!", vbCritical, "无权限"
    Unload Me
    Exit Sub
    End If
   
   

   
Else '登陆成功,以下为权限验证

Form2.Show
Unload Me

End if

End if
     
End Sub

Private Sub Form_Load()
'//加载主窗时给文本框赋值
Cnum = 0