Foxtable(狐表)用户栏目专家坐堂 → [求助]数据唯一性校验


  共有5255人关注过本帖树形打印复制链接

主题:[求助]数据唯一性校验

帅哥哟,离线,有人找我吗?
alangoon
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
[求助]数据唯一性校验  发帖心情 Post By:2013/8/22 15:18:00 [只看该作者]

各位专家好!

 

有关于数据唯一性校验问题想请教一下。不知道各位有没有遇见同样问题?

请先看图。

这个界面用了两个表,一个主表,一个明细表。单向关联,入库单编号为关联列。

 

 

由于要求入库单编号在主表必须唯一,不可重复。我试过在两个地方输入校验代码:

1. 表的DataColChanged:

   Select Case e.DataCol.Name
    Case "转仓单编号"
        If e.NewValue IsNot Nothing Then
            If DataTables("入库单主文件").Select("入库单编号 = '" & e.NewValue & "'").Count > 1 Then
                Messagebox.Show("您输入的单据编号重复,请重新输入!","提示")
                e.DataRow("入库单编号") = Nothing
            End If
        End If
End Select

 

2. 窗口的Validating:

    If e.sender.value IsNot Nothing Then
    If DataTables("其他入库单").Select("入库单编号 = '" & e.sender.value & "'").Count > 1 Then
        messagebox.show("入库单编号重复了,请重新输入!","提示")
        e.cancel = True
    End If
End If

 

当然不是同时两个地方代码都存在。

 

结果就是:我输入相同的入库单编号时,能够提示数据重复,但是竟然将先前输入的明细表给调出来了。非常讨厌。

请教一下该怎么处理才不会这样呢?

谢谢了,在线等答案。


图片点击可在新窗口打开查看此主题相关图片如下:20130822_143616.jpg
图片点击可在新窗口打开查看

简单做了个例子,请指点一下。谢谢。

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

[此贴子已经被作者于2013-8-22 15:43:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/22 15:20:00 [只看该作者]

上个例子看看,将先前输入的明细表给调出来了? 是什么意思?

 回到顶部
帅哥哟,离线,有人找我吗?
alangoon
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
  发帖心情 Post By:2013/8/22 15:26:00 [只看该作者]

上例子比较麻烦。不好意思。

 

比如说之前我输入单据号:IS_130822_01,并且输入了明细。保存。

 

现在我又新增一条数据:不小心重输入了IS_130822_01,即重复了,然后就把之前输入的单据号:IS_130822_01下的明细给关联出来了。

 

还是看看能不能做个例子吧,表达出来很辛苦。


 回到顶部
帅哥哟,离线,有人找我吗?
alangoon
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
  发帖心情 Post By:2013/8/22 15:45:00 [只看该作者]

Bin先生,例子已经上传了,请帮忙看看。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/22 15:52:00 [只看该作者]

例子没看懂,你里面并没有限制代码啊

 回到顶部
帅哥哟,离线,有人找我吗?
alangoon
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
  发帖心情 Post By:2013/8/22 15:53:00 [只看该作者]

我在窗口的单据号那里代码:Validating

 回到顶部
帅哥哟,离线,有人找我吗?
alangoon
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
  发帖心情 Post By:2013/8/22 15:57:00 [只看该作者]

简单点,就是我希望表A的单据号是唯一的。在窗口如果输入了重复的单据号,系统会提示错误但不会将表B的明细调出来。

有没有办法?

 


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/22 16:02:00 [只看该作者]

写在DatacolChangIng中就行了

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



 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/8/22 16:09:00 [只看该作者]

datacol有个属性 Unique 设置为true可以禁止该列重复,不过有个小问题,跟你代码一样,只能是判断加载到Foxtable中的数据。 


 回到顶部
帅哥哟,离线,有人找我吗?
alangoon
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:2118 威望:0 精华:0 注册:2013/3/9 23:21:00
  发帖心情 Post By:2013/8/22 18:23:00 [只看该作者]

看来Bin哥并没有理解我的意思,

我要的效果是:如果表A单据号重复了,不会显示表B的相同单据号的数据。


 回到顶部
总数 12 1 2 下一页