以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何在保存数据时先判断该行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69590) |
-- 作者:yongxuanchen -- 发布时间:2015/6/7 21:10:00 -- 如何在保存数据时先判断该行 如果一行之前被锁定,修改时保存会提示错误。如何在保存数据前先判断该行是否被锁定。最好的状态是如何实现一个被锁定的行在窗口中也不能修改数据(在保存之前就发现该行被锁定了)。 |
-- 作者:大红袍 -- 发布时间:2015/6/7 21:15:00 -- 什么意思,报什么错?在什么事件写代码? |
-- 作者:yongxuanchen -- 发布时间:2015/6/7 21:42:00 -- 锁定行 我在锁定某行后在对应窗口中对该行对应的TXBOX进行修改,然后保存该表。提示“1信息表已经关闭,不能调用其中的空间“textbox2”” |
-- 作者:yongxuanchen -- 发布时间:2015/6/7 21:43:00 -- 继续提示 .NET Framework 版本:2.0.50727.5485 |
-- 作者:大红袍 -- 发布时间:2015/6/7 21:44:00 -- 跟锁定不锁定没什么关系,代码写得有问题。 |
-- 作者:yongxuanchen -- 发布时间:2015/6/7 22:00:00 -- 代码是这样的,当“竣工日期”为空是按保存,提示上面的错误。 With Tables("电梯信息表") If .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改 |
-- 作者:大红袍 -- 发布时间:2015/6/7 22:03:00 -- With Tables("电梯信息表") Dim drx1 As Row=Tables("电梯信息表").Current If drx1 IsNot Nothing Then If drx1.isnull("竣工日期") Then messagebox.show("必须输入竣工日期") Forms("电梯信息表").Controls("DateTimePicker1").Select() Return End If If drx1.isnull("合同编号") Then messagebox.show("必须输入合同编号") Forms("电梯信息表").Controls("TextBox42").Select() Return End If ..... If .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改 MessageBox.Show("该记录未被修改,不需要进行保存操作") Else Tables("电梯信息表").Current.Save() Tables("电梯信息表").Current.Locked = True MessageBox.Show("当前行已经被保存,若想撤销,请<撤销修改>! ") End If End If End With |
-- 作者:yongxuanchen -- 发布时间:2015/6/7 22:08:00 -- 还是不行 版主,还是不行,提示同样的错误。谢谢。 |
-- 作者:yongxuanchen -- 发布时间:2015/6/7 22:09:00 -- 补充 上述的程序建立在菜单上。在窗口中用同样的程序不会提示错误。 |
-- 作者:大红袍 -- 发布时间:2015/6/7 22:26:00 -- If drx1 IsNot Nothing Then
改成
If drx1 IsNot Nothing AndAlso Forms("电梯信息表").Opened Then [此贴子已经被作者于2015/6/7 22:26:11编辑过]
|