当前位置:编程学习 > VB >>

vb sql 无法更新

我连接的是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 i

End 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

--------------------编程问答-------------------- 先帮顶 --------------------编程问答--------------------
rs.Update
改为
rs.UpdateBatch
--------------------编程问答--------------------
'建议删除记录用:
conn.execute "delete from 表名 where ... "
'修改记录用:
conn.execute " update 表名 set ... where ..."
--------------------编程问答-------------------- 对初学者来说这个有难度

引用 3 楼 leftie 的回复:
VB code'建议删除记录用:conn.execute"delete from 表名 where ..."'修改记录用:conn.execute" update 表名 set ... where ..."
--------------------编程问答-------------------- 设断点,单步调试,看执行过程 --------------------编程问答-------------------- 修改密码那里那里错了  点击确认后没有保存 我试试2楼大哥的刷新 --------------------编程问答-------------------- refresh刷新 --------------------编程问答--------------------
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 
--------------------编程问答--------------------

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了 --------------------编程问答-------------------- 哦 明白了  谢谢 --------------------编程问答-------------------- 不用客气,有问题上来问
顺手把帖子结了吧

引用 10 楼 myth_dream 的回复:
哦 明白了  谢谢
--------------------编程问答-------------------- 额 路过 --------------------编程问答-------------------- 已经有人解决了。做一个路人吧
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,