以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] combobox在值发生变化时如何恢复旧值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58677)

--  作者:gfj72
--  发布时间:2014/10/22 10:11:00
--  [求助] combobox在值发生变化时如何恢复旧值

专家:

      我建了一个combobox下拉框,在ValueChanged事件中,会先执行对当前记录

是否有空值的判定。

Dim Colnames As String() = {"产品编号","产品批号","生产日期","测试日期","测试者","模号","班次","总长L","D喷嘴中心距M","端面外径X","端面外径Y","端面外径X\'","端面外径Y\'","D喷嘴外径AX","D喷嘴外径AY","D喷嘴外径AX"
Dim Isadd As Boolean = True
For Each ColName As String In Colnames
If Tables("容器尺寸测量表").Current.IsNull(ColName) Then
Isadd = False
MessageBox.Show("当前记录还未输入完成,请完成输入")

(这里想加入一行代码,终止combobox选择新的值,恢复值变化前的值)
Exit For
End If
Next

因为该控件没有oldvalue属性,e.cancel也无效。不知道这里如何加代码,或如何获得旧值,

如果用获得旧值后再读取回旧值,这里的代码是否还会执行一次?这样就会跳出两次提醒了。

以上,谢谢!


--  作者:有点甜
--  发布时间:2014/10/22 10:17:00
--  

 1、用一个变量在enter事件记录原来的值;

 

 2、还原值的时候,控制不要触发代码 http://www.foxtable.com/help/topics/2218.htm

 


--  作者:Bin
--  发布时间:2014/10/22 10:18:00
--  
增加一个全局变量,每次ValueChanged之后, 为这个全局变量复制当前的Value,  那么就可以把这个全局变量当作oldValue 用了
--  作者:gfj72
--  发布时间:2014/10/22 10:25:00
--  

有没有可以直接把数据库所有行进行锁定的代码?


--  作者:有点甜
--  发布时间:2014/10/22 10:28:00
--  

参考Locked属性

 

 http://www.foxtable.com/help/topics/0427.htm

 


--  作者:gfj72
--  发布时间:2014/10/22 10:54:00
--  

采用逐行判定然后再进行锁定,如果数据量大,执行起来还是需要时间的,如果能有直接不判定,直接实施锁定,

就不用再去对数据库逐条判定了,这样执行起来是不是会快许多?


--  作者:有点甜
--  发布时间:2014/10/22 10:58:00
--  
 DataTables("表A").ReplaceFor("_Locked", True)