Foxtable(狐表)用户栏目专家坐堂 → 自动编号重复,老师看看怎么回事吧


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

主题:自动编号重复,老师看看怎么回事吧

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/24 15:13:00 [显示全部帖子]

你部门缩写都是相同数量的字符的吗?如果不是

 

 idx = CInt(max.Substring(13,3)) + 1 '获得最大编号的后三位顺序号,并加1

 

请改成

 

 idx = CInt(max.Substring((dr("部门缩写") & "-FW-" & bh & "-").length,3)) + 1 '获得最大编号的后三位顺序号,并加1

 

多人同时录入的时候,有可能重复;但一个人录入的时候如果重复,那不可能。

 

你在保存之前beforeSaveDataRow、DataColChanging事件试试判断重复

 

http://www.foxtable.com/webhelp/scr/2481.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/24 16:24:00 [显示全部帖子]

以下是引用guosheng在2018/5/24 15:32:00的发言:
如果将 编号列的,禁止重复属性,设置为true,是否会避免 多人录入 自动编号 的重复现象? 如此操作会不会造成,重复的话,某些编号为空?
手动编号在列的 datacolchanging事件中容易控制重复;但是若是自动编号不好控制吧?
有一点不太理解,已经使用SQLcompute来判断数据了,为什么编号还会重复呢
[此贴子已经被作者于2018/5/24 15:34:13编辑过]

 

【如果将 编号列的,禁止重复属性,设置为true,是否会避免 多人录入 自动编号 的重复现象? 如此操作会不会造成,重复的话,某些编号为空?】

 

不可以;不会。

 

【手动编号在列的 datacolchanging事件中容易控制重复;但是若是自动编号不好控制吧?】

 

一样的处理一样的代码而已。

 

【有一点不太理解,已经使用SQLcompute来判断数据了,为什么编号还会重复呢】

 

多人同时操作的时候,会有小概率出现重复,如:同一时间有三个sqlcompute查找最大值,得到都是99,然后99+1存放为100,那么就有3个重复值。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/24 20:59:00 [显示全部帖子]

如果要彻底解决编号是否重复,请加上 _Identify 列的值到你的编号去。此列的值肯定是不重复的。

 

或者是使用openQQ编号 http://www.foxtable.com/webhelp/scr/3008.htm

 

或者 http://www.foxtable.com/webhelp/scr/1994.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/25 11:39:00 [显示全部帖子]

先去看看qqserver.foxdb、qqclient.foxdb,把例子弄明白了,再做编号

 

http://www.foxtable.com/webhelp/scr/2968.htm

 

http://www.foxtable.com/webhelp/scr/2972.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/25 14:26:00 [显示全部帖子]

UserLogging事件,改代码

 

For Each dr2 As DataRow In DataTables("user").select("")
    Dim nm As String =  dr2("部门") & "." & dr2("name")
    If nm <> e.UserName Then '如果不是登录者本人
        If e.Buddies.Contains(nm)= False Then
            e.Buddies.Add(nm)
        End If
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/25 17:09:00 [显示全部帖子]

1、照着做,写到对应的事件里面去;

 

2、如果要知道值,你弹出msgbox(msg)看看不就知道了?


 回到顶部