设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2924|回复: 5
打印 上一主题 下一主题

[表] 多用户使用情况下,如何避免ID重复?

[复制链接]
跳转到指定楼层
1#
发表于 2014-6-14 14:46:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 stvent 于 2014-6-14 14:49 编辑

我现有一数据库,一张正式表A,一张临时表B,数据登陆记录登陆人员,窗体数据录入都是绑定B表,然后,按保存的时候,按登陆人员区分把B表上的数据插入到A表,然后清空对应用户的B表数据,以这种方式实现按钮保存数据,现在问题在于,我在B表新增记录的时候,是取A表上ID列最大值+1的,但在多用户使用的情况下(B表数据未插入到A表),有可能多个人员在B表上取得相同的ID,这样就对保存数据产生ID重复,而不允许插入的问题,所以,请各位大新们,有什么方法可以避免多用户同时操作数据库时,在未插入数据到A表时,取得的ID不相同?


A表,ID不允许重复
B表(A表的临时表),ID生产是取A表ID的最大值+1,在窗体点击保存后,才会将登陆用户相关的数据插入到A表,并清空B表上该用户的记录,如未进行保存,另一用户录入数据,取得ID值会相同


如何避免或设计表格???求助

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2014-6-15 10:36:36 | 只看该作者
将“id取A表ID的最大值+1”放在窗体的更新后事件中试试。
3#
 楼主| 发表于 2014-6-15 16:54:04 | 只看该作者
wuaza 发表于 2014-6-15 10:36
将“id取A表ID的最大值+1”放在窗体的更新后事件中试试。

我现在用A表与B表作一个ID联合查询,然后再Dmax,解决了问题,但不知道是否笨方法
4#
发表于 2014-6-17 13:00:57 | 只看该作者
stvent 发表于 2014-6-15 16:54
我现在用A表与B表作一个ID联合查询,然后再Dmax,解决了问题,但不知道是否笨方法

数据少的时候没什么,数据多的时候还是用ADO比DMax好一些。
5#
发表于 2014-6-18 00:17:19 | 只看该作者
很简单,真很简单
先取得表A-ID(max+1)的值:NewID
然后:insert into 表A(id, 字段1, 字段2...) select (" & NewID
& ", 字段1, 字段2...)  from 表B where 表B.ID = " & ME!ID
然后:delete 表B where 表B.ID = " & ME!ID
6#
 楼主| 发表于 2014-6-18 21:15:39 | 只看该作者
layaman_999 发表于 2014-6-18 00:17
很简单,真很简单
先取得表A-ID(max+1)的值:NewID
然后:insert into 表A(id, 字段1, 字段2...) select ( ...

强!~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-1 00:14 , Processed in 0.086905 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表