添加一个textbox控件,msflexgrid控件,美安一次回车键动态改变文本库框的位置,然后是文本框获得焦点,接着将文本框中的内容赋给msflexgrid的相应的单元格,然后保存,(成批记录保存) 代码如下: private sub form_load() me.text1.visuable=false end sub private sub movetext(byval i as integer,byval j as integer) me.text1.left=me.mmsflexgrid1.left+me.msflexgrid1.colpos(i) me.text1.top=me.msflextrid1.top+me.msflexgrid1.rowpos(i) me.text1.visable=true me.text1.setfocus end sub private sub text1_change() me.msflexgrid1.text=me.text1.text end sub private sub text1_keypress() if ascii=13 then …… movetext …… end if end sub
用Vsflexgrid 控件做 删除给你一个思路 你加入一个自动增长的字段ID 然后在Vsflexgrid中隐藏这个ID Hidden(i)=true当删除时,用Vsflexgrid.RemoveItem(Row) Row为当前要删除的行在保存时循环整个GRID,生成一个SQL语句"DELETE FROM TABLENALE WHERE ID NOT IN (SELECT .... FROM TABLENAME WHERE ORDERNO=1" 就可以删除了实际上来说在删除时并不牵涉到数据,只有在保存时才真正删除数据修改.新增这些来说应该不用多说了吧?
SQL语句错了 DELETE FROM TABLENALE WHERE ID NOT IN (ID1,id2,id3) AND ORDERNO=1 " ID1.ID2,ID3是在表格上的 OrderNo是当前的单号
使用vsflexgrid控件的时候 在afteredit事件中实现保存,更新和删除等的操作
代码如下:
private sub form_load()
me.text1.visuable=false
end sub
private sub movetext(byval i as integer,byval j as integer)
me.text1.left=me.mmsflexgrid1.left+me.msflexgrid1.colpos(i)
me.text1.top=me.msflextrid1.top+me.msflexgrid1.rowpos(i)
me.text1.visable=true
me.text1.setfocus
end sub
private sub text1_change()
me.msflexgrid1.text=me.text1.text
end sub
private sub text1_keypress()
if ascii=13 then
……
movetext
……
end if
end sub
删除给你一个思路
你加入一个自动增长的字段ID
然后在Vsflexgrid中隐藏这个ID
Hidden(i)=true当删除时,用Vsflexgrid.RemoveItem(Row)
Row为当前要删除的行在保存时循环整个GRID,生成一个SQL语句"DELETE FROM TABLENALE WHERE ID NOT IN (SELECT .... FROM TABLENAME WHERE ORDERNO=1"
就可以删除了实际上来说在删除时并不牵涉到数据,只有在保存时才真正删除数据修改.新增这些来说应该不用多说了吧?
DELETE FROM TABLENALE WHERE ID NOT IN (ID1,id2,id3) AND ORDERNO=1 "
ID1.ID2,ID3是在表格上的 OrderNo是当前的单号