加贺桑开发失败了:vb 编写的登陆框(vb+ado+access)

来源:百度文库 编辑:偶看新闻 时间:2024/04/30 02:47:28

首先先把我的设计思想说一下: 我用的是vb+ ADO+access设计的这个管理系统,之前老师发了一个,我看不懂,因为那些代码就在外面,整个程序,包括界面都是代码实现的,我的实力还不够,看不懂,然后就自己重新写了一个新得。网上很多都是vb+sqlserver 但是我认为 我不用那么高级的 access就足够了。 账号和密码存在dbuser表里,我设置了 zipcode 作为找回密码用。 然后通过数据调用就可以了。

我认为在整个系统的设计中,当然也就包括登陆框,我注意的是 定义变量的作用范围、利用vb对access数据检索时是否与ado的关键字冲突,倒是报错,再还有一个就是 引号的使用,这个引号是令我非常头疼的,曾经有一下午,我看引号就看了一下午,当解决了那个问题以后,异常兴奋。我认为你在编程的道路上,肯定也会有我这个兴奋的过程得。

关于登陆,我还使用了一个常量,限制尝试登陆的次数,没有设计到定时器,我看了一篇文章使用的是定时器,但是我没有使用,各位如果愿意的话,我非常荣幸的请大家把有关计数器在登陆框上的应用跟帖发上来,先说声谢谢。

在登陆框,我设置了一个 Privilege选项,用来区别两个账号的权限,在进入程序以后,进行不同的操作。

好了,先把基本图片发上来,让大家看一下 表的数据项:

之后是vb的登陆界面:

实现ado的功能,先在“ 工程---引用 ”指定 “Microsoft ActiveX Data Objects 2.0 Library”,我用的是2.8的,然后就是代码了~~

直接发上来全部的了~~

Option Explicit
Dim cnn As ADODB.Connection
Dim i As Integer
Public Privilege As String

Private Sub Form_Load()
'连接Access数据库
    Set cnn = New ADODB.Connection
        cnn.Provider = "Microsoft.Jet.OLEDB.4.0"
    Dim cnnFile As String
        cnnFile = "Data Source=" & App.Path & "\MangeDB.mdb;Persist Security Info=False;Jet OLEDB:Database Password=gougou"
    cnn.Open cnnFile
'检测数据库是否链接成功

If cnn.State = adStateOpen Then
    MsgBox "成功", 64, "数据库连接"
Else
    MsgBox "失败,请检查数据库文件", 48, "数据库连接"
End If
    i = 3
    Label1.Caption = "您还有 " & i & " 次机会"
End Sub

Private Sub cmdok_Click()
'检测密码
Dim Textusername As String
Dim Textpassword As String
Dim rs As ADODB.Recordset
Dim strsql As String
Dim temp As String
Textusername = Vbusername.Text
Textpassword = Vbpassword.Text
If i = 0 Then End '限制登陆次数
If Me.Vbusername.Text = "" Or Me.Vbpassword.Text = "" Then
    i = i - 1
    MsgBox "用户名和密码不能为空", 48, "提示"
    Me.Vbusername.SetFocus
   '账号或密码为空提示检查
Else
    Set rs = New ADODB.Recordset
    strsql = "select * from Dbuser where Dbusername='" & Textusername & " ' and Dbpassword='" & Textpassword & "'"
    rs.Open strsql, cnn, adOpenStatic, adLockReadOnly 'Open table "DBser"
    If rs.EOF Then
     MsgBox "用户名或密码错误", vbCritical, "提示"
     i = i - 1
     Label1.Caption = "您还有 " & i & " 次机会"
     Me.Vbusername = ""
     Me.Vbpassword = ""
     Me.Vbusername.SetFocus
     Else
     '从数据库取得privilege值 判断权限 提示用户

Privilege = rs.Fields("Privilege").Value
     If Privilege = "admin" Then
       temp = "管理员账号"
       Else: temp = "普通用户账号"
     End If
     MsgBox "你是" & temp & " ", 64, "权限提示"
     rs.Close
     Set rs = Nothing
     cnn.Close
     Unload Me
     Index.Show
    End If
    '从数据库检查用户名和密码的正确性
End If

End Sub


Private Sub forgetkey_Click()
Dim zip As String
Dim Textusername As String
Dim pass As String
Dim strsql As String
Textusername = Me.Vbusername.Text
zip = Trim(InputBox("请输入此账号对应的邮编", "找回密码"))
If zip = "" Or Textusername = "" Then
MsgBox "账户或邮编号码不能为空", , "错误提示"
Else
Dim rc As ADODB.Recordset
Set rc = New ADODB.Recordset
strsql = " select * from Dbuser where Dbusername='" & Textusername & " ' and zipcode ='" & zip & "' "
rc.Open strsql, cnn, adOpenStatic, adLockReadOnly
     If rc.EOF Then
         MsgBox "您的输入有误", vbCritical, "提示"
         i = i - 1
         Label1.Caption = "您还有 " & i & " 次机会"
          If i = 0 Then End
          Else
         pass = rc.Fields("Dbpassword").Value
         MsgBox "你的密码是 " & pass & " 请妥善保管!", vbInformation, "密码提示"
         Set rc = Nothing
         rc.Close
         pass = ""
    End If
End If
End Sub
Private Sub cmdCancel_Click()
   End
End Sub '放弃键退出系统

请各位看一下好了,我认为学习编程,首先应该能够先看优秀的代码,能够静下来看完,我就比较差劲,希望大家能够静下心来看完,然后加上自己的总结,一定受益匪浅。

第二,我认为 csdnhttp://www.csdn.net/ 是个太好的网站了,在我写这个小程序的几天里,很多疑问都是在这个论坛上得到的解答。