Dim StrSQL As String
StrSQL = "select 用户名称,用户密码 from yhxx where 用户名称= '" & Trim(dcusename.Text) & "'"
        If RsModPwd.State = adStateClosed Then
            RsModPwd.Open StrSQL, DBCON, adOpenKeyset, adLockPessimistic, adCmdText   '//打开记录集
        End If
If Trim(dcusename.Text) <> Empty And Trim(txnewpwd1.Text) <> Empty And Trim(txnewpwd2.Text) <> Empty Then
      If Trim(txnewpwd1.Text) = Trim(txnewpwd2.Text) Then
            If RsModPwd.RecordCount <> 0 Then          '//判断记录集中的记录是否等于零
                RsModPwd.Fields(1).Value = Trim(txnewpwd1.Text)
                RsModPwd.Update                        '//更新记录集
                MsgBox "密码修改成功", , "密码修改"
                RsModPwd.Close
                Unload Me
            Else
                MsgBox "不存在用户名", vbExclamation, "验证失败"
                RsModPwd.Close
            End If
     Else
         MsgBox "两次密码输入不一致 ", vbInformation, "错误提示"
     End If
Else
    MsgBox "用户名及密码框有空选项 ", vbInformation, "错误提示"
   
End If

解决方案 »

  1.   

    If Trim(txnewpwd1.Text) = Trim(txnewpwd2.Text) Then
                If RsModPwd.RecordCount <> 0 Then          '//判断记录集中的记录是否等于零在这里好像少了用户名的查找定位,你下面的语句只是将第一条记录的密码这字段修改                RsModPwd.Fields(1).Value = Trim(txnewpwd1.Text)
                    RsModPwd.Update                        '//更新记录集
      

  2.   

    直接用UPDATE语句不好吗?比如:Dim StrSQL As String
    Dim i as integerStrSQL = "update yhxx set 用户密码='"& Trim(txnewpwd1.Text) &"' where 用户名称= '" & Trim(dcusename.Text) & "'"DBCON.execute strsql,i
    if i>0 then msgbox "密码修改成功", , "密码修改"其中i返回execute方法所影响的行数
      

  3.   

    直接用Updata语句好,比较明显,而且好查错
      

  4.   

    是不是说我上面的那些代码 全部修改成updata语句阿
      

  5.   

    我把update语句放在定位的地方 然后通过了
    真是太感谢了