以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 关联问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=86145) |
-- 作者:sjx71 -- 发布时间:2016/6/11 22:22:00 -- [求助] 关联问题 各位老师,我有个程序 今天运行出了问题,加载表的时候提示如下错误信息,然后就退出程序了
程序中 公服用户单位名称和公服用户表信息之间建立了关联,
出现问题前我做了如下操作
我在外部表设置中(公服用户单位名称和公服用户表信息)设置过滤条件为 [_Identify] Is Null
然后再 AfterOpenProject 里 写过 Tables("公服用户表单位名称").OpenLoadTree("公服用户单位名称",150,30,True)
后又改写成分页加载
With DataTables("公服用户单位名称")
最后我把 AfterOpenProject 事件和外部表设置的过滤条件都删除之后 就出现了上述问题。
老师帮我分析一下什么问题,怎么改
谢谢 |
-- 作者:大红袍 -- 发布时间:2016/6/12 0:46:00 -- 是不是你列【公服用户单位名称】有重复的值?这一列的值,不能有重复值。 |
-- 作者:sjx71 -- 发布时间:2016/6/12 8:33:00 -- 谢谢老师,确实是有重复值,删除重复值就好了。 再问一个问题,怎么会出现重复值了呢,我程序里也写了防止重复的代码了,哪个操作可能会导致重复值?
Select e.DataCol.name Case "公服用户单位名称" If e.DataRow.IsNull("公服用户单位名称") = False Then If e.DataTable.Compute("Count([_Identify])","公服用户单位名称 = \'" & e.NewValue & "\'") > 1 Then MessageBox.Show(e.DataRow("公服用户单位名称") & "在本表中已经存在!") e.DataRow("公服用户单位名称") = e.OldValue ElseIf DataTables("销户公服用户单位名称").Compute("Count([_Identify])","公服用户单位名称 = \'" & e.NewValue & "\'") > 0 Then MessageBox.Show(e.DataRow("公服用户单位名称") & "在销户公服用户单位名称表中已经存在!") e.DataRow("公服用户单位名称") = e.OldValue End If End If 谢谢 |
-- 作者:Hyphen -- 发布时间:2016/6/12 8:53:00 -- 如果是多用户环境,就有可能出现重复,如果是这样,Compute可以改成SQLCompute |
-- 作者:sjx71 -- 发布时间:2016/6/12 8:59:00 -- 谢谢! |