以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  莫名其妙的错误,请帮忙看看问题在哪里?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3758)

--  作者:reachtone
--  发布时间:2009/7/31 12:40:00
--  莫名其妙的错误,请帮忙看看问题在哪里?

这是例子,代码非常简单。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


窗口1的按钮事件如下:
With DataTables("表A")   ’从数据库中重载表
   .LoadFilter = ""
   .Load()
End With
With Tables("表A")      ’清空过滤条件、设置排序并增加一行
   .Filter = ""
   .Sort = "_Identify"
   .AddNew()
End With

数据表CurrentChanged的事件设置如下:
MessageBox.Show(e.table.Current("第一列"))

两个事件分别单独执行都没问题,但如果两个事件都触发,就出错了。搞了一上午都没找出原因,头都大了。请高手帮忙看看,多谢!


--  作者:mr725
--  发布时间:2009/7/31 12:57:00
--  
if tables"表A").count > 1 then 
    MessageBox.Show(e.table.Current("第一列"))
end if


但会出现两次MessageBox.Show的提示窗口 ~? 且第一次提示的第一行第一列的内容,第二次提示的就是增加的行第一列的内容(空值),如果按钮中给增加的行第一列赋值后,还会再显示赋值后的内容。
还有一个怪现象:就是,任何单元格输入的第一个字符或空格键后就好跳出了提示(显示原该行第一列的内容),输入完回车后又提示输入后的内容。。。。。

按钮代码中,不增加行也没问题~ ! 但按钮对任何行的第一列赋值,都会在第一行第一列中显示???
[此贴子已经被作者于2009-7-31 13:38:54编辑过]

--  作者:reachtone
--  发布时间:2009/7/31 13:38:00
--  

是的,非常奇怪。估计就是因为新增行的问题。按说,用table里的新增行,光标会自动定位到这个新增行上,弹出的显示内容也应该是这个新增行的。为什么就出错呢?
莫不是foxtable本身的bug吧?


--  作者:mr725
--  发布时间:2009/7/31 13:51:00
--  
还有啊~
1、按钮中只用第一段代码 with  ....  end with  :  这时表中的无论当前是选择那个单元格都会跑到第一行去。但这是currentchanged事件代码不会提示!
2、按钮中只用第二段代码 with  ....  end with  :增不增加行都不会有上面现象~
[此贴子已经被作者于2009-7-31 13:52:39编辑过]

--  作者:reachtone
--  发布时间:2009/7/31 14:16:00
--  
期待老六答疑解惑!
困扰我大半天了,郁闷。
--  作者:狐狸爸爸
--  发布时间:2009/7/31 14:21:00
--  
出错是正常,因为Load之前,因为重新加载的话,Current会为空的,直到加载结束。
--  作者:reachtone
--  发布时间:2009/7/31 14:27:00
--  
以下是引用狐狸爸爸在2009-7-31 14:21:00的发言:
出错是正常,因为Load之前,因为重新加载的话,Current会为空的,直到加载结束。

确实如此,加个判断就可以了:If CurrentTable.Current Isnot nothing。
谢谢老六的点拨