以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口中的数据操作,报beginedit()将允许...  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=53124)

--  作者:不可思议的虫
--  发布时间:2014/6/30 12:42:00
--  [求助]窗口中的数据操作,报beginedit()将允许...
我尝试做了一个以窗口为主的操作界面,点击添加按钮时代码如下
Tables("员工表").AllowEdit=True
Tables("员工表").AddNew()
Forms("员工维护").open()

员工维护窗口打开后如果不进行任何操作,点击关闭按钮时代码如下
With CurrentTable
    If .Current IsNot Nothing Then
        .Current.Reject()
    End If
End With
Tables("员工表").AllowEdit=False
Forms("员工维护").Close()

设置AllowEdit是为了不想用户直接操作表格。

点击关闭按钮后就会报错此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据”

查下来应该是.Current.Reject()这里导致的报错,但不加这句的话数据表就会留下一个空白行,各位帮忙看下该如何解决?


--  作者:有点甜
--  发布时间:2014/6/30 14:18:00
--  

完整的出错例子,请上传,不是1楼的代码所应该有的错误,别的地方影响了。


--  作者:不可思议的虫
--  发布时间:2014/6/30 15:01:00
--  
谢谢,已经解决了,发现是因为AfterLoad中写了AllowEdit=false导致,本意是不想让用户直接编辑表的,看来通过这种方式限制编辑是不行的。
--  作者:不可思议的虫
--  发布时间:2014/6/30 15:11:00
--  
不对,还是有问题,好像忽好忽坏的,有时候不报错有时候报错。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:千帆办公平台.zip


--  作者:不可思议的虫
--  发布时间:2014/6/30 15:15:00
--  
好像第一次点击添加没问题,第二次就不行了
--  作者:jspta
--  发布时间:2014/6/30 15:16:00
--  

这个问题不用太纠结了,是Foxtable的事件响应问题,把这个错误在项目事件BeforeShowErrorMessage中屏蔽掉就可以了

 

Dim msg As String = e.Message1
If msg.Contains("此行已从表中移除并且") Then e.Cancel = True : Return


--  作者:有点甜
--  发布时间:2014/6/30 15:31:00
--  
以下是引用不可思议的虫在2014-6-30 15:15:00的发言:
好像第一次点击添加没问题,第二次就不行了

 

你给的例子,是外部数据源的,无法测试啊。你弄成内部表,或者access数据源的,打包发上来。


--  作者:不可思议的虫
--  发布时间:2014/6/30 15:34:00
--  
BeforeShowErrorMessage加了代码还是不行,我又试着增加了一句也不行。
Dim msg2 As String = e.Message2
If msg2.Contains("此行已从表中移除并且") Then e.Cancel = True

和我使用SQL Server有关系吗


图片点击可在新窗口打开查看此主题相关图片如下:2014-06-30 15 29 19.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2014-06-30 15 29 50.jpg
图片点击可在新窗口打开查看




--  作者:不可思议的虫
--  发布时间:2014/6/30 15:36:00
--  
就是点击完添加,然后什么也不操作的情况下,点击关闭按钮,有时候会报错,有时候正常。
--  作者:不可思议的虫
--  发布时间:2014/6/30 15:45:00
--  
我怕改成ACCESS后就好了...我先改个试试吧