Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

同一项目多次记录如何编号

jack  发表于:2012-10-04 10:38:20  
复制

如下,像对Serial Number对应的Test Start进行编号,如1、2...

 

Top
dbaseIIIer 发表于:2012-10-04 14:05:34

这个要问你为什么要这样设计了!

 

其实每次有 test 触发的时候,就应该在一个表新增一条记录,

而那个表就有个  自动跳号的 字段,

那就每个记录都有独立的  id  号了哦!

 

你建好那个表,把现在这些数据导进去,也就全部都要编号了哦!



jack 发表于:2012-10-04 18:06:14

谢谢回复,不过我想要的是对同一Serial number,它对应好几个Test Start,请按Test Start时间顺序进行标记(加一列),标注1、2、3,即第几次出现



网行者 发表于:2012-10-05 06:41:02

分组自动编号\筛选数据后自动分组编号的示例:http://www.accessoft.com/article-show.asp?id=5674

查询中自动编号:http://www.accessoft.com/article-show.asp?id=4807



jack 发表于:2012-10-05 10:55:47
分组自动编号\筛选数据后自动分组编号的示例:这个原表已经标记好了,我要的是原表没有标记,通过生成表查询做出来

dbaseIIIer 发表于:2012-10-05 12:05:08

1. 报表要显示就用一个,打开了 RunningSum 属性 做“在组之上”的 文本框就可以了

 

2. 窗体显示不能修改数据集 的话 就用 all join

 

   select * from tests where serialno='xxx'  .........保存为查询 "serialtest"

 

   select b.count([id]) as 第n次测试, a.* from serialtest as a, serialtest as b

   where a.testStart >= b.testStart

   group by a.id

 

3. 窗体动态显示就

 

   在文本框里用  =locateCount([id])

 

   并建立 public function locateCount()

        locateCount = dcount( ........)

   end function

  

 

但是,你只是为了 《显示》这个每个serial的第几次测试编号的话,会挺浪费cpu资源的!

 

 

即使你可以  在   触发测试时,插入记录时,就插入 第几次测试

        nz(dcount("[test.主键]", "测试表", "[serial]='" & serialnum & "'"),0)+1   或者

 

        nz( dmax("[第几次]","测试表","[serial]='" & serialnum & "'"),0)+1  

 

不过都是很浪费计算资源的。

 

 

看你 数据发现几秒钟就有新纪录的,告诉你下面这些!

 

不过你认为

- 没有用户投诉反应慢就交货收钱,

- 你的电脑有多余的资源可以浪费 或 你永远不会用 云数据库/云计算,

- 你没有准备当系统分析师,

- 你认为未来你不会做每秒有1000笔交易的,

 

以上随便一个原因,都可以不用往下看了!

 

 

告诉你,最快的处理方式 是

 

建 serial 表,含 id 和 一个 已测次数, 和 其他统计信息字段(如 成功次数,首次次成功测试次数,成功比率 等)

 

每次测试 保存在 test 表,含serialid字段,新加一个“测试次数”字段;

当 有测试结果就 更新 统计信息;

最关键的就是 插入新 记录的时候,就从serial表的 “已测次数”上 更新加1,保存在 serial表 和 test表。

 

记得要用数据库引擎的事务处理(BeginTrans, CommitTrans, RollBack 等,sql 数据库也需要)。

 

 

 



dbaseIIIer 发表于:2012-10-05 12:11:41

 

 

   select a.id, b.count([id]) as 标记

   from tests as a, tests as b

   where a.testStart >= b.testStart and a.serialNumber= b.serialNumber

   group by a.id

 

 

就是你需要的 id 和 序号标记了。



总记录:6篇  页次:1/1 9 1 :