用的mshflexgrid与text框结合录入多行数据并保存至数据库中,现在若要修改其中的多行数据后如何再保存至数据库呀?我是先从数据库中读取数据至Mshflexgrid表中,然后修改好以后不知道如何保存?发现问题有些蹊跷 有的时候改了更新不了 再改第2次的话 它又好了 还有如果是改了多行记录的话 有的就更新一条记录 其他的没变 再试几次 说不定下次又好改了 晕了 郁闷!  

解决方案 »

  1.   

    这是更新的代码,其中Quality,Fuk,Wbquality为数值型,ID为自动递增项,请问哪里有问题呀?
    Call OpenConn
      For i = 1 To Flex1.Rows - 1
      If Flex1.TextMatrix(Flex1.Row, 0) <> "" Then
      conn.Execute ("UPDATE Sells SET Guige='" + Flex1.TextMatrix(Flex1.Row, 1) + "',Huif='" + Flex1.TextMatrix(Flex1.Row, 2) + "',Jiaol='" + Flex1.TextMatrix(Flex1.Row, 3) + "',Diameter='" + Flex1.TextMatrix(Flex1.Row, 4) + "',Quality=" + Flex1.TextMatrix(Flex1.Row, 5) + ",Fuhw='" + Flex1.TextMatrix(Flex1.Row, 6) + "',Box='" + Flex1.TextMatrix(Flex1.Row, 7) + "',Fuk=" + Flex1.TextMatrix(Flex1.Row, 8) + " ,Wbquality=" + Flex1.TextMatrix(Flex1.Row, 9) + " where ID= " & Me.Flex1.TextMatrix(Flex1.Row, 0) & "")
      End If
      Next i
      MsgBox "记录更新成功!", 64, "提示"
      XPBtedit.Enabled = True
      XPBtsave.Enabled = False
      End If
      

  2.   

    执行update需要一定的时间,我想你的循环里加入sleep延时试试
    另外如果某数据为空会报错退出,请确保Flex1的各项数据不为空
      

  3.   

    你的代码有两个问题,
    一是Flex1.Row是当前行,当你离开这行点下行是ID是对不上的,所以不会更新。
    二是你这样从上向下循环,你没有修改过的行也会更新一遍,相当影响速度。建议你用一个数组保存修改过的行的ID,判断修改过的再更新(这个你自己做吧)。Call OpenConn
      For i = 1 To Flex1.Rows - 1
      Flex1.Row=i
      If Flex1.TextMatrix(Flex1.Row, 0) <> "" Then
      conn.Execute ("UPDATE Sells SET Guige='" + Flex1.TextMatrix(Flex1.Row, 1) + "',Huif='" + Flex1.TextMatrix(Flex1.Row, 2) + "',Jiaol='" + Flex1.TextMatrix(Flex1.Row, 3) + "',Diameter='" + Flex1.TextMatrix(Flex1.Row, 4) + "',Quality=" + Flex1.TextMatrix(Flex1.Row, 5) + ",Fuhw='" + Flex1.TextMatrix(Flex1.Row, 6) + "',Box='" + Flex1.TextMatrix(Flex1.Row, 7) + "',Fuk=" + Flex1.TextMatrix(Flex1.Row, 8) + " ,Wbquality=" + Flex1.TextMatrix(Flex1.Row, 9) + " where ID= " & Me.Flex1.TextMatrix(Flex1.Row, 0) & "")
      End If
      Next i
      MsgBox "记录更新成功!", 64, "提示"
      XPBtedit.Enabled = True
      XPBtsave.Enabled = False
      End If
      

  4.   

    我也遇到过这样的问题,最后我采用两个办法搞掂,要么每改一个数据就更新一次数据库;要么全改好了决定保存时把数据库中相应的记录全删了,再把mshflexgrid中的数据全写回数据库。
      

  5.   

    还请高手来帮我看看这个问题呀 怎么弄呀 chinaboyzyq说的用一个数组保存修改过的行的ID,判断修改过的再更新 这个怎么弄呀 非常感谢