我是新手,不怎么会用VB,现在要做个设计,需要登陆窗体。下面是按确定键的代码,但不知道是哪里出错了呢?运行不了
PS:operator是SQL存放用户名和密码的表;
     
Private Sub cmdOK_Click()
    '检查正确的密码
    Dim sql As String
    Dim rs As ADODB.Recordset
    If Trim(txtUserName.Text = "") Then
        MsgBox "没有输入用户名称,请重新输入!", vbOKOnly + vbExclamation, "警告"
        txtUserName.SetFocus
    Else                                                '查询用户
        sql = "select * from operator where id ="" & txtUserName.Text & """
        Set rs = transactSQL(sql)
        If iflag = 1 Then
            If rs.EOF = True Then
                MsgBox "没有这个用户,请重新输入!", vbOKOnly + vbExclamation, "警告"
                txtUserName.SetFocus
            Else
                If Trim(rs.Fields(1)) = Trim(txtPassword.Text) Then
                    rs.Close
                    Me.Hide
                    gusername = Trim(txtUserName.Text) '保存用户名称
                    Dialog1.Show                                  '成功登陆修改窗口
                    Unload Me
 
                Else
                    MsgBox "无效的密码,请重试!", vbOKOnly + vbExclamation, "警告"
                    txtPassword.SetFocus
                    SendKeys "{Home}+{End}"
                End If
            End If
        Else
            Unload Me
        End If
    pwdcount = pwdcount + 1  '判断输入次数
    If pwdcount = 3 Then
        Unload Me
        Exit Sub
    End If
End Sub

解决方案 »

  1.   

    Else                                                '查询用户
            sql = "select * from operator where id ="" & txtUserName.Text & """----------------改为sql = "select * from operator where id ='" & txtUserName.Text & "'"试试
      

  2.   

    谢谢楼上的回答,问题是解决了一个,但是...希望能够继续帮下  3Q
    现在却提示这个 iflag 有问题,还有就是运行时在登陆界面那输入完用户名的时候,按TAB键把光标移到密码框时,用户名删除了?这又是什么原因呢?
      

  3.   

    这里看不出 iFlag 的用途。如果你不需要可以去掉。帮你整理一下:Private Sub cmdOK_Click()
        '检查正确的密码
        Dim sql As String
        Dim rs As ADODB.Recordset    If Trim(txtUserName.Text = "") Then
            MsgBox "没有输入用户名称,请重新输入!", vbOKOnly + vbExclamation, "警告"
            txtUserName.SetFocus
            Exit Sub
        End If
        
        '查询用户
        sql = "select * from operator where id ='" & Trim(txtUserName.Text) & "'"
        Set rs = transactSQL(sql)    '记录集空,没有查询到用户记录
        If rs.EOF = True Then
            MsgBox "没有这个用户,请重新输入!", vbOKOnly + vbExclamation, "警告"
            txtUserName.SetFocus
            Exit Sub
        End If    '比对口令
        If rs.Fields(1) = Trim(txtPassword.Text) Then
            gusername = Trim(txtUserName.Text) '保存用户名称        rs.Close        Dialog1.Show                                  '成功登陆修改窗口
            Unload Me
            Exit Sub
        End If    MsgBox "无效的密码,请重试!", vbOKOnly + vbExclamation, "警告"
        txtPassword.SetFocus
        SendKeys "{Home}+{End}"    pwdcount = pwdcount + 1  '判断输入次数
        If pwdcount = 3 Then
            Unload Me
            Exit Sub
        End If
    End Sub>还有就是运行时在登陆界面那输入完用户名的时候,按TAB键把光标移到密码框时,用户名删除了?这又是什么原因呢?检查 txtUserName_KeyPress、txtUserName_KeyDown、txtUserName_KeyUp 等事件中的代码。可以先全部注释掉试试。
      

  4.   

    但我这个界面的控件事件只有取消按钮,确定按钮和form_load的,并没有其他的事件的了。
    but thank you all the same !