建立了窗体form1 form2,数据库db1.mdb 表user 帐号 密码 余额 ,窗体form1上有帐号和密码输入框text1和text2,登陆按钮Command1,现在要达到的效果是输入db1.mdb里的帐号和密码就可以登陆跳转到form2,输入错误提示错误信息。达到一个验证用户名密码的效果,谢谢赐教~~~

解决方案 »

  1.   

    Dim TIM As Integer
    Dim mydb As Database
    Dim myrs As Recordset
    Dim sql As String
    Private Sub Form_Activate()
      Set mydb = Workspaces(0).OpenDatabase(App.Path & "\test.mdb") '打开数据库
      sql = "select 操作员 from table"
      Set myrs = mydb.OpenRecordset(sql)
      If myrs.EOF = False Then myrs.MoveLast
      If myrs.BOF = False Then myrs.MoveFirst
      For i = 0 To myrs.RecordCount - 1
          master.AddItem (myrs.Fields(0))
          myrs.MoveNext
      Next i
      If master.ListCount > 0 Then master.ListIndex = 0
      myrs.Close
      mydb.Close
      master.SetFocus
    End Sub
    Private Sub Cmdok_Click()              '确认操作员和密码
      Dim MESSAGE As String
      If master.Text <> "" Then
         Set mydb = Workspaces(0).OpenDatabase(App.Path & "\test.mdb")
         Set myrs = mydb.OpenRecordset("table", dbOpenDynaset)
         myrs.FindFirst "操作员 = " + Chr(34) + master.Text + Chr(34) + ""   ' 查找操作员
         If myrs.NoMatch Then                                     '没查到记录
            MsgBox ("无此操作员!")
           Else
            If password.Text = myrs.Fields("密码") Then               '确认密码
               MsgBox "系统登陆成功!"                         '系统登录成功
             Else
               If TIM = 3 Then
                  MESSAGE = MsgBox("密码输入错误,请向系统管理员查询!", 0, "")
                  If MESSAGE = vbOK Then End
               End If
               MsgBox ("密码错误,请重新输入密码!")
               TIM = TIM + 1                             '密码输入错误次数
               password.SetFocus
            End If
         End If
      End If
    End Sub
    Private Sub master_KeyDown(KeyCode As Integer, Shift As Integer)  '回车换行
      If KeyCode = vbKeyReturn Then
         password.SetFocus
      End If
    End Sub
    Private Sub password_KeyDown(KeyCode As Integer, Shift As Integer)
      If KeyCode = vbKeyReturn Then
         Cmdok.Visible = True
         Cmdok.SetFocus
      End If
      If KeyCode = vbKeyDown Then
         Cmdok.Visible = True
         Cmdok.SetFocus
      End If
      If KeyCode = vbKeyUp Then
         master.SetFocus
      End If
    End Sub
    Private Sub Cmdexit_Click()
      End
    End Sub
      

  2.   

    这是我找的,你把数据库和表名改改就行数据库连接最好用ado
      

  3.   

    谢谢了,这个太复杂了一点吧,我怎么生成不了exe文件啊?说什么用户定义类型未定义!楼上的在线吗,加我QQ267005304聊好吗,非常感谢~!
      

  4.   

    引用 ADO 2.6
    dim cnn as adodb.connection
    dim rst as adodb.recordset
    dim ss as string
    private sub command1_click()
        if trim(text1.text)="" or trim(text2.text)="" then
            msgbox "请完整输入用户名和密码"
            exit sub
        end if
        dim cnn as new adodb.connection
        dim rst as new adodb.tecordset
        cnn.connectstring="..." '此处有个简便的方法,你在窗体上添加一个data控件,用这个控件自动生成连接字符串,然后拷贝至此即可
        cnn.open
        rst.CursorLocation = adUseClient
        rst.Open "select 密码 from 表 where 姓名=''" & Trim$(Text1.Text) & "'"", cnn, adOpenKeyset, adLockBatchOptimistic 
        if rst.eof then 
            msgbox "无此用户"
            exit sub 
        end if
        if trim$(text2.text)=rst.密码 then
            unload me
            frm2.show
        else
            msgbos "密码错误"
            exit sub
        end if
    end sub手头没开发环境,没做试验,应该可以用,试下 :)
      

  5.   

    cnn.connectstring="..." '此处有个简便的方法,你在窗体上添加一个data控件,用这个控件自动生成连接字符串,然后拷贝至此即可
    这里不知道该怎么处理?
      

  6.   

    cnn.connectstring="..." 这里应该写什么?