提示错误:
实时错误'3251':当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。错误指到 rs.updata 怎么错了请指教我做了个登录的界面 界面上有个修改密码。点击后进入第2个窗体
用户名:
原密码:
新密码:
确认新密码:
确定    返回
代码如下:
Private Sub Command1_Click()
Dim conn As New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\datamaster.mdb"
Dim sql As String
Dim rs As New ADODB.Recordset
If Trim(Text2.Text = "") Then
        MsgBox "旧密码不能为空,请重新输入!", vbOKOnly + vbExclamation, "警告"
        Text2.Text = ""
        Text2.SetFocus
        Exit Sub
    End If
    If Trim(Text3.Text = "") Then
        MsgBox "新密码不能为空,请重新输入!", vbOKOnly + vbExclamation, "警告"
        Text3.Text = ""
        Text3.SetFocus
        Exit Sub
    End If
    If Text3.Text <> Text4.Text Then
        MsgBox "两次输入的新密码不同,请重新输入!", vbOKOnly + vbExclamation, "警告"
        Text3.Text = ""
        Text4.Text = ""
        Text3.SetFocus
        Exit Sub
    Else
        sql = "select * from [password] where [username] ='" & Text1.Text & "'"
        rs.Open sql, conn, adOpenStatic, adLockReadOnly    '打开返回的可用记录集
        If rs.EOF = True Then
          MsgBox "没有这个用户", vbOKOnly + vbExclamation, ""
          Text1.Text = ""
          Text2.Text = ""
          Text3.Text = ""
          Text4.Text = ""
          Text1.SetFocus
        Else
          If Trim(rs.Fields(1)) <> Trim(Text2.Text) Then
              MsgBox "原密码不对,请重新输入!", vbOKOnly + vbExclamation, "警告"
              Text2.Text = ""
              Text3.Text = ""
              Text4.Text = ""
              Text2.SetFocus
          Else
              MsgBox "密码修改成功!", vbOKOnly + vbInformation, "提示"
              Text1.Text = ""
              Text2.Text = ""
              Text3.Text = ""
              Text4.Text = ""
              Text1.SetFocus
            End If
        End If
    End If
    rs.Update
    rs.close
    
End Sub

解决方案 »

  1.   

    rs.Open sql, conn, adOpenStatic, adLockReadOnly    '打开返回的可用记录集adLockReadOnly表示只读。
      

  2.   


    ...
            Text3.SetFocus 
            Exit Sub 
        Else 
            sql = "select * from [password] where [username] ='" & Text1.Text & "'" 
            rs.Open sql, conn, 3, 3    '改一下这里 
            If rs.EOF = True Then 
              MsgBox "没有这个用户", vbOKOnly + vbExclamation, "" 
              Text1.Text = "" 
    ...
      

  3.   

    '新增记录:conn.execute "insert into 表名(字段1,字段2,...) values(...)"
    '更新记录:conn.execute "update 表名 set ... where ..."
    '删除记录:conn.execute "delete from 表名 where ..."
      

  4.   

    你是以只读方式打开的记录集,当然会出错,而且我没发现你的代码里有更新密码的操作
    另外,对数据库记录操作(新增、更新、删除),还是利用SQL语句好,就象3楼所说的