通过vb修改数据库中用户的密码,程序如下
strsql(0) = "select Password from User_info where User_name='" + TxtUser + "' and Password='" + TxtPwd + "'"
    rs.CursorLocation = adUseClient
    rs.Open strsql(0), Frmlogin.strconn, adOpenDynamic, adLockOptimistic
    temp = rs.Fields(0)
    If Trim(Text1.Text) <> Trim(temp) Then
        MsgBox "输入旧密码有误,请重新输入!", vbOKOnly + vbExclamation, "警告"
        rs.Close
        Text1.SetFocus
    End If
 
     If Trim(Text2.Text) <> Trim(Text3.Text) Then
        MsgBox "两次输入的密码不一致,请重新输入!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
        Text3.SetFocus
     Else
          rs.Close
          Set rs = Nothing
          'rs.Open strsql(1), Frmlogin.strconn, adOpenDynamic, adLockOptimistic
          strconn.Execute "insert into user_info values('" + Text2.Text + "')"
          rs.Close
          Set rs = Nothing
          strconn.Close
          Set strconn = Nothing
     
    rs.Fields(2) = Text2.Text
    rs.Update
    rs.Close
    MsgBox "修改密码成功!", vbOKOnly + vbExclamation, "恭喜你"
    Me.Hide

解决方案 »

  1.   

    strconn是另外一个窗体的对象吗??引用的时候怎么忘了加窗体名了??
    strconn.Execute "insert into user_info values('" + Text2.Text + "')"
              rs.Close
              Set rs = Nothing
              strconn.Close
    或者你可以设置连接对象成全局变量
      

  2.   

    TxtUser和TxtPwd不会跟text1和text2在同一窗体吧
      

  3.   

    If Trim(temp)<>Trim(Text1.Text) Then
            MsgBox "输入旧密码有误,请重新输入!", vbOKOnly + vbExclamation, "警告"
            rs.Close
            Text1.SetFocus
        End If
    ......
        既然是修改密码,那么应该用“UPDATE 表 SET 新值 WHERE 准则”语句。不能用insert into追加语句,除非你删除了原有数据