请问谁有mshflexgrid中数据修改后保存的实例 用的mshflexgrid与text框结合录入多行数据并保存至数据库中,现在若要修改其中的多行数据后如何再保存至数据库呀?我是先从数据库中读取数据至Mshflexgrid表中,然后修改好以后不知道如何保存?发现问题有些蹊跷 有的时候改了更新不了 再改第2次的话 它又好了 还有如果是改了多行记录的话 有的就更新一条记录 其他的没变 再试几次 说不定下次又好改了 晕了 郁闷! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是更新的代码,其中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 执行update需要一定的时间,我想你的循环里加入sleep延时试试另外如果某数据为空会报错退出,请确保Flex1的各项数据不为空 你的代码有两个问题,一是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 我也遇到过这样的问题,最后我采用两个办法搞掂,要么每改一个数据就更新一次数据库;要么全改好了决定保存时把数据库中相应的记录全删了,再把mshflexgrid中的数据全写回数据库。 还请高手来帮我看看这个问题呀 怎么弄呀 chinaboyzyq说的用一个数组保存修改过的行的ID,判断修改过的再更新 这个怎么弄呀 非常感谢 求一断开外网连接的思路 SLQ+UNION+SQL排序 100分求助﹐不能執行SQL语句,急!!! 用vb上传数据到oracle中汉字全都是乱码! 奇怪问题 (关于text) 怎样在webbrowers中设置代理及清cookies????(急,急,急...) err.number 为0,怎么处理? 怎么样在局域网中传输.exe文件? 请问用VB的DataGrid控件,如何才能实现添加、删除记录??? 请问如何在自己编写的收发e-mail程序 串口接收数据字节数组转中英文混合字符串问题 vb 部件引用
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
另外如果某数据为空会报错退出,请确保Flex1的各项数据不为空
一是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