Private Sub VsNetBut1_Click()
Dim sql As String
Dim rs_password As New Recordset
If Text1.Text = "" Or Text2.Text = "" Then
  MsgBox "密码不能为空,请重新输入!", 0 + 48, "提示"
  Text1.SetFocus
End If
If Text1.Text <> Text2.Text Then
  MsgBox "两次密码输入不相等,请重新输入!", 0 + 48, "警告"
  Text1.Text = ""
  Text2.Text = ""
  Text1.SetFocus
  
Else
  sql = "select * from admin where username='" & Text1.Text & "'"
  rs_password.Open sql, ADOcn, adOpenKeyset, adLockPessimistic
  rs_password.Fields("password") = Text1.Text
  rs_password.Update
  rs_password.Close
  MsgBox "密码修改成功!", 0 + 48, ""
  Text1.Text = ""
  Text2.Text = ""
End If
End Sub
这是一段我写的更改密码的代码,但在执行时发生至少一个参数没有被指定,请问这是怎么回事?望高手指教

解决方案 »

  1.   

    If Text1.Text = "" Or Text2.Text = "" Then
      MsgBox "密码不能为空,请重新输入!", 0 + 48, "提示"
      Text1.SetFocus
    End If上面这段改成以下
    If Text1.Text = "" Or Text2.Text = "" Then
      MsgBox "密码不能为空,请重新输入!", 0 + 48, "提示"
      Text1.SetFocus
      Exit sub
    End If另把出错地点指出来 不知道你连接打开了吗
      

  2.   

    Option Explicit
    Public ADOcn As Connection
    Public strAccess As StringPrivate Sub Label1_Click()End SubPrivate Sub Form_Load()
    Dim rs_password As New Recordset
    rs_password.ActiveConnection = ADOcn
    strAccess = "provider=Microsoft.Jet.oledb.4.0;data source=E:\毕业设计\tushu.mdb"
    If ADOcn Is Nothing Then
       Set ADOcn = New Connection
       ADOcn.Open strAccess
    End If
    End SubPrivate Sub VsNetBut1_Click()
    Dim sql As String
    Dim rs_password As New Recordset
    If Text1.Text = "" Or Text2.Text = "" Then
      MsgBox "密码不能为空,请重新输入!", 0 + 48, "提示"
      Text1.SetFocus
      Exit Sub
    End If
    If Text1.Text <> Text2.Text Then
      MsgBox "两次密码输入不相等,请重新输入!", 0 + 48, "警告"
      Text1.Text = ""
      Text2.Text = ""
      Text1.SetFocus
      
    Else
      sql = "select * from admin where username='" & Text1.Text & "'"
      rs_password.Open sql, ADOcn, adOpenKeyset, adLockPessimistic
      rs_password.Fields("password") = Text1.Text
      rs_password.Update
      rs_password.Close
      MsgBox "密码修改成功!", 0 + 48, ""
      Text1.Text = ""
      Text2.Text = ""
      
    End If
    End Sub
    这是我整个窗体的代码,我改了还是同一个错误
      

  3.   

    sql = "select * from admin where username='" & Text1.Text & "'"
      rs_password.Open sql, ADOcn, adOpenKeyset, adLockPessimistic
      rs_password.Fields("password") = Text1.Text
      rs_password.Update
      rs_password.Close
    -------------------------------你Text1.Text是新密码还是老密码?
    如果是新密码,打开的是空记录集,下面更新语句当然不成立
      

  4.   

    sql = "select * from admin where username='" & Text1.Text & "'"
      rs_password.Open sql, ADOcn, adOpenKeyset, adLockPessimistic
      rs_password.Fields("password") = Text1.Text
      rs_password.Update
      rs_password.Close
    -------------------------------错了:你Text1.Text是新密码还是用户?
    如果是新密码,打开的是空记录集,下面更新语句当然不成立
      

  5.   

    楼主,我真服了你啊。Text1.Text和Text2.Text不是新旧密码吗?怎么下面又搞一个Username=text1.text
    "select * from admin where username='" & Text1.Text & "'"真是看不懂。
      

  6.   

    sql = "select * from admin where username='你要修改的用户'
      

  7.   

    可以了,我直接把条件去了,sql = "select * from admin"这样几可以了,还是很感谢各位的帮助
    再问一下Recordset的OPEN方法后面的参数是何意啊?
      

  8.   

    rs_password.Open sql, ADOcn, adOpenKeyset, adLockPessimistic
    adOpenKeyset, adLockPessimistic就这两个参数,那些情况用这两个,可不可以不用啊?望高手指教 谢了