我连接的是sql数据库,然后在一个form中做删除的时候,提示无法更新
Private Sub Command8_Click()
 If rs.EOF = False Then
        X = MsgBox("确认删除", vbExclamation + vbYesNo)
        If X = vbYes Then
            rs.Delete
            rs.Update
            rs.MoveNext
         Else
            Exit Sub
        End If
    End If
End Sub
Private Sub Command7_Click()
 If rs.State = adStateOpen Then
        rs.Close
    End If
    Call OpenConn
    Sql = "select * from zongji where 1=1"
    rs.Open Sql, cn, 3, 3
   If rs.RecordCount > 0 Then
        Set DataGrid1.DataSource = rs             '结果集赋结表格
        
    Else
        Set DataGrid1.DataSource = Nothing
    End If
   DataGrid1.Refresh
    Dim i As Integer
   For i = 0 To DataGrid1.Columns.Count - 1
        DataGrid1.Columns(i).Width = 1000
   Next iEnd Sub
请问下 那里错了??还有在我点击修改密码的时候没有响应?判断后是否相同后不知道跑哪里去了
Private Sub Command2_Click()
     If rs.State = adStateOpen Then
        rs.Close
     End If
   
    Sql = "select * from zhmm "
    rs.Open Sql, cn, 1, 1
    If password = rs.Fields("密码") Then
             If Text1.Text <> rs.Fields("密码") And Text2.Text <> Text3.Text And Text2.Text <> "" Then
               MsgBox "请确认密码是否正确或两次新密码是否一致", vbInformation + vbOKOnly
             Else: rs.Fields("密码") = Text2.Text
                   rs.Fields("修改时间") = Format(Now, "yyyy-mm-dd hh:mm")
                   rs.Update                                   '更新新记录
                   MsgBox "保存成功", vbInformation + vbOKOnly
              End If
      
      End If
      
      
  
       Call CloseConn
       Set rs = Nothing                            '释放对象
End Sub

解决方案 »

  1.   

    rs.Update
    改为
    rs.UpdateBatch
      

  2.   

    '建议删除记录用:
    conn.execute "delete from 表名 where ... "
    '修改记录用:
    conn.execute " update 表名 set ... where ..."
      

  3.   

    Private Sub Command2_Click() 
        If rs.State = adStateOpen Then 
            rs.Close 
        End If 
      
        Sql = "select * from zhmm " 
        rs.Open Sql, cn, 1, 3 '注意这里游标的锁定类型,改成这个adLockOptimistic=3,1是adLockReadOnly只读
        If password = rs.Fields("密码") Then 
                If Text1.Text <> rs.Fields("密码") And Text2.Text <> Text3.Text And Text2.Text <> "" Then 
                  MsgBox "请确认密码是否正确或两次新密码是否一致", vbInformation + vbOKOnly 
                Else: rs.Fields("密码") = Text2.Text 
                      rs.Fields("修改时间") = Format(Now, "yyyy-mm-dd hh:mm") 
                      rs.Update                                  '更新新记录 
                      MsgBox "保存成功", vbInformation + vbOKOnly 
                  End If       
          End If 
        
          Call CloseConn 
          Set rs = Nothing                            '释放对象 
    End Sub 
      

  4.   


    Private Sub Command8_Click() 
    If rs.EOF = False Then 
            X = MsgBox("确认删除", vbExclamation + vbYesNo) 
            If X = vbYes Then 
                rs.Delete 
                rs.Update 
                rs.MoveNext 
            Else 
                Exit Sub 
            End If 
        End If 
    End Sub 其实这段中的更新是没必要的 
    你就是想刷新而已
    重新查找一下就OK了