本帖最后由 bcrun 于 2010-12-30 09:17:33 编辑

解决方案 »

  1.   

     先整理一下,否则容易逻辑混乱
    Private Sub Command1_Click()
        Static interr As Integer
        Dim cnn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Set cnn = New ADODB.Connection
        Set rs = New ADODB.Recordset
        cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\陆诗琴01.mdb"
        Dim strUser As String, strPass As String, strSQL As String
        strUser = Trim$(Text1.Text)
        strPass = Trim$(Text2.Text)
        strSQL = "select * from 密码表 where 用户名='" & strUser & "'AND 密码='" & strPass & "'"
        rs.Open strSQL, cnn, 2, 3
        If rs.EOF And rs.BOF Then
          interr = interr + 1
          If interr >= 3 Then
            MsgBox "对不起,无权使用本系统。", vbExclamation, "提示"
            End
          Else
            MsgBox "用户名或密码错误,请重新输入!", vbExclamation, "提示"
            Text1.SetFocus
          End If
        Else
          If rs.Fields("密码") = strPass Then
            Select Case rs.Fields("级别")
                Case 0
                    If Combo1.Text = "管理员" Then
                  ' MsgBox "欢迎登录,管理员", vbExclamation, "提示"
                    系统界面.Show
                    Else
                    MsgBox "您无管理员权限!", vbOKOnly + vbCritical, "提示"
                    End If
                Case 1
                    If Combo1.Text = "普通民警" Then
                  ' MsgBox "欢迎登录,POLICE", vbExclamation, "提示"
                    查询界面.Show
                    End If
                Case Else
                  If Combo1.Text = "请选择" Then
                  MsgBox "请选择级别", vbExclamation, "提示"
                  End If
            End Select
          End If
        End If
    End Sub
      

  2.   

    建议陆诗琴同学把Combo1去掉
    Private Sub Command1_Click()
        Static interr As Integer
        Dim cnn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Set cnn = New ADODB.Connection
        Set rs = New ADODB.Recordset
        cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\陆诗琴01.mdb"
        Dim strUser As String, strPass As String, strSQL As String
        strUser = Trim$(Text1.Text)
        strPass = Trim$(Text2.Text)
        strSQL = "select * from 密码表 where 用户名='" & strUser & "'AND 密码='" & strPass & "'"
        rs.Open strSQL, cnn, 2, 3
        If rs.EOF And rs.BOF Then
          interr = interr + 1
          If interr >= 3 Then
            MsgBox "对不起,无权使用本系统。", vbExclamation, "提示"
            End
          Else
            MsgBox "用户名或密码错误,请重新输入!", vbExclamation, "提示"
            Text1.SetFocus
            Exit Sub
          End If
        Else
            If rs.Fields("级别") = 0 Then 系统界面.Show
            If rs.Fields("级别") = 1 Then 查询界面.Showw
        End If
    End Sub
      

  3.   

    又出现问题了昨天还可以运行的
    但是今天看的时候 总是弹出   至少有一个参数未被指定
    然后调试指 rs.Open strSQL, cnn, 2, 3  这一句
    是怎么回事啊
    纠结了半天  还是不知道怎么了   貌似没错啊
    求解啊
      

  4.   

       If rs.Fields("级别") = 0 Then 系统界面.Show
            If rs.Fields("级别") = 1 Then 查询界面.Show
    这样  是不是前面的strSQL = "select * from 密码表 where 用户名='" & strUser & "'AND 密码='" & strPass & "'"
    要改成
    strSQL = "select * from 密码表 where 用户名='" & strUser & "'AND 密码='" & strPass & "' and 级别='"strjibie"'"
      

  5.   

    and前加一空格
    strSQL = "select * from 密码表 where 用户名='" & strUser & "'AND 密码='" & strPass & "'"
    strSQL = "select * from 密码表 where 用户名='" & strUser & "' AND 密码='" & strPass & "'"