For i = 1 To MSHFlexGrid1.Rows - 1
conn.Execute "UPDATE class set [班号]= '" & MSHFlexGrid1.TextMatrix(i, 1) & "' where [班号]<> '" & MSHFlexGrid1.TextMatrix(i, 1) & "'"
Next i
这是保存代码,为什么我保存后它把每个字段都变成一样的,我应该如何改?
conn.Execute "UPDATE class set [班号]= '" & MSHFlexGrid1.TextMatrix(i, 1) & "' where [班号]<> '" & MSHFlexGrid1.TextMatrix(i, 1) & "'"
Next i
这是保存代码,为什么我保存后它把每个字段都变成一样的,我应该如何改?
解决方案 »
- vb6.0怎样实现目录树与数据库的连接 100求解
- vb程序如何能具有xp风格呀,据说利用manifest文件就行,可是总是不成功,谁能具体说说,谢谢了。
- 关于数据库连接的问题?
- datagrid的datasource只能是ADODC控件吗?
- 关于form上响应F12事件的程序
- VB ZSG出了问题 求高手 指点
- 奇怪啊,我的ODBC怎么由中文变成了英文的?而且以前的Windows认证都不行了?!!急!!在线等!!
- 怎样判断鼠标何时进入控件,何时出来?
- 我下午就得交作业,大家帮忙啊,谢了,写个注释,万分感谢!!!
- 急救,帮帮我!
- 紧急求助:sql语句中where子句用法!!
- 新建的对象当不用时要不要销毁?
原句在每次循环中都会对每条记录进行一次修改,就是说你上一次的对所有的记录都修改了
,下一次又对所有的记录又都改了一遍,所以会出都一样的情况了
一般来讲,你的目的是一次循环修改一条记录,所以你该限定该修改记录,建议在sql条件中再写上 and [班号]= ……
只要让sql找出单一的一条对应记录就可以了
假如有1,2,3,4,5
where a <> 2 则有 1,3,4,5四种情况也就是说你每更新一次都会把不符合where的纪录全部更新掉......
于是数据库的所有字段就都变成了最后一次更新的值
班号 届别 班主任 备注
41024 2004 刘斯0 10
41025 2002 刘斯1 20
41026 2003 刘斯2 30
是用MSHFLEXGRID控件的,我的用意是把修改的表格保存到数据库中去~~
Auto_Id 班号 届别 班主任 备注
1 41024 2004 刘斯0 10
2 41025 2002 刘斯1 20
3 41026 2003 刘斯2 30在修改后的表里也有对应的Auto_Id字段
这时可把代码改成这样即可
For i = 1 To MSHFlexGrid1.Rows - 1
conn.Execute "UPDATE class set [班号]= '" & MSHFlexGrid1.TextMatrix(i, 2) & "' where [Auto_Id]='"& MSHFlexGrid1.TextMatrix(i, 1) &"' and [班号]<> '" & MSHFlexGrid1.TextMatrix(i, 2) & "'"
Next i
又有个新问题,
上面的AUTO_ID不能连续从1开始排列,好像ACCESS删除一行后,不是按连续的排列的?
没什么的,只要保证其唯一性就可以了。
rs.movefirst
For i = 1 to MSHFlexGrid1.Rows - 1
rs!班号 = MSHFlexGrid1.TextMatrix(i, 1)
rs.update
rs.movenext
if rs.eof exit for
Next i