Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
不重复编号,在局域网共同操作数据时很重要。
今天我和同事测试了一下,关于同时增加行时,ldnetify的编号是否会重复。
二位同事在操作表格之前,IDNETIFY编号已经到达13了
同事A:先增加三行。此时IDNETIFY编号显示为 14.15.16
同事B:也增加三行。此时IDNETIFY编号显示为 14.15.16
表中有一个 记录跟踪编号 列,代码如下
e.DataRow("记录跟踪编号") = Format(e.DataRow("录入日期"),"yyMMdd") &"-"& Format(e.DataTable.Compute("Count(录入日期)", "[_identify] < 0" & e.DataRow("_Identify"))+1,"0000")
希望记录跟踪编号列的作用是 代表某一行,编号必需唯一。
如此,同事A所增加行时, 此时看到 记录跟踪编号 列中 内容
100806-0014
100806-0015
100806-0016
同事B所增加行时, 此时看到 记录跟踪编号 列中 内容 也是
100806-0014
100806-0015
100806-0016
小弟不解,帮助说过,[_identify]是唯一的,照此理解,A同事增加三行的时候,[_identify]是13.14.15,,,那么B同进增加三行的时候,应该是16.17.18才对呀!为何他们都是14.15.16呢?小弟不解
有时,A,B同事保存时,会提示错误对话框
此主题相关图片如下:image001(08-06-10-51-01).png
与同事们测试,又发现
A同事增加三行的时候,[_identify]是13.14.15,,,
B同事增加三行的时候,[_identify]是13.14.15,,,
A先保存,然后B再保存
此时 [_identify]发生变化
A 同事所看到的,[_identify]是13.14.15
B 同事所看到的,[_identify]是16.17.18,,,
那么如此看来,此代码 不能产生唯一的编号 了
e.DataRow("记录跟踪编号") = Format(e.DataRow("录入日期"),"yyMMdd") &"-"& Format(e.DataTable.Compute("Count(录入日期)", "[_identify] < 0" & e.DataRow("_Identify"))+1,"0000")
求解,怎么样才能产生唯一的编号??????
网络共享操作时,每增加一行,我是采用的SQL 语句来增加的,使用
dim str as string = Format(date.now,"yyyy-MM-dd")
cmd.commandtext = "select count(*) from {入库} where [制单日期] = '"& str &"'"
dim str1 as string = cmd.ExecuteScalar()
dim str4 as string
if str1 > 0 then
str4 = "IP" & Format(date.now,"yyyyMMdd") & Format(str1+1,"0000")
else
str4 = "IP" & Format(date.now,"yyyyMMdd") & "0001"
end if
cmd.CommandText = "Insert Into [入库] (入库单号,制单员,制单日期,制单时间,入库状态) Values('" & str4 & "','" & vars("用户") & "','" & str5 & "','" & str3 & "','单据录入')"
cmd.ExecuteNonQuery()
之前也是有遇到楼主这种现象,现在就不会了。不知这样是否合理,但解决此问题。只提供楼主参考。
如果是外部数据源,肯定不会有楼主图片说的情况。
至于内部数据源,我测试也没有发现图片那种错误,不过我再看看。
二位同事在操作表格之前,IDNETIFY编号已经到达13了
同事A:先增加三行。此时IDNETIFY编号显示为 14.15.16
同事B:也增加三行。此时IDNETIFY编号显示为 14.15.16
狐爸,有没有办法再增加行后,IDNETIFY 的数值自动变为唯一?
增加行----保存--然后在向大家显示新增加的空白行
把保存动作直接隐藏到狐表内部去。。
狐爸,我知道增加行后保存可以改变 _identify
看此代码:
录入日期 = Date.Today()
e.DataRow("记录跟踪编号") = Format(e.DataRow("录入日期"),"yyMMdd") &"-"& Format(e.DataTable.Compute("Count(录入日期)", "[_identify] < 0" & e.DataRow("_Identify"))+1,"0000")
按照您的意思,按钮的代码是:先增加行,然后保存行 ,那么这是两个动作,A动作增加,B动作保存
A动作的时候,录入日期 与 _identify 都有数值,,那么执行上面的代码, 记录跟踪编号 的内容已经生成
问题是,跟踪编号还是不能保证唯一。。
虽然,增加行后马上保存行,能改变 _identify 的值,但是对于 上面的代码还是无效。。只要增加了行,就马上产生跟踪编号。。。
有什么简单的办法能让 跟踪编号 在共享文件的时候,也成为唯一编号?
谢谢狐爸
学生自省。。。
定要熟读帮助三遍。。。