Access增加记录后如何知道自增量ID字段的值 (100分)

  • 主题发起人 主题发起人 hamang
  • 开始时间 开始时间
H

hamang

Unregistered / Unconfirmed
GUEST, unregistred user!
Access增加记录后如何知道自增量ID字段的值,数据库一定要是access,增加记录用SQL语句,不用Query的Post
 
select max(id) from tablename
 
这样好像不可靠吧,而且速度很慢也
 
你将新值属性设置为‘递增’,得到的MAX(ID)+1应该就是你的新增的未保存的记录的ID
你的意思是不是在未保存该记录前将他的ID赋给其他表的字段,这样的话,你也可以用时务
啊,可以先提交数据,再处理他的ID啊
 
access中有事务处理??请说详细一点
 
我用的是笨办法,添加完毕后,再Locate一下,定位到刚刚添加的记录。
 
数据类型--〉选择自动编号即可,我都用了,ok
 
用 insert into 增加的,就用select max(id)去找
用 post 增加的,用dateset.FetchAll或dateset.Refresh去找
 
朋友啊,看清题目,没那么简单
 
我也遇到了这样的问题,尚未解决
 
select max(id) from tablename
這樣不行嗎? 我在剛完成的項目裏就是這樣做的呀,先 insert ,然後取其自增的列.insert
到另一個表中. 我先以為也不可靠,但事實證明沒任何問題.速度對於我們一般的需要來說
也是沒問題的. 你試試吧.
 
我也遇到类似问题,好象没法得到,取Max不对,并发怎么办?
用Query还有可能,但你又不用。
用SQL的话,除非该记录的其他字段可以提供定位差不多。
Access好像没有事务
 
我以前也遇到过这个问题,好像是这样的:
select @@identity
 
max 肯定不对,
因为 当对数据进行了 删除 操作时,
自增字段用 max 来判断就不行了。
一般的笨方法,就是读进去之后再查找。

 
当成一个字段处理。
 
好象用sql内置函数可以获取最大的自动编号值。
 
因为 当对数据进行了 删除 操作时,
access好像不管,继续增吧
所以max应该也可以

不过DEN的方法也不错

 
我曾经在ASP里实现过,希望能给你启发

'添加服务卡号
'cardId:关键值,引用
set rs1=server.createobject("adodb.recordset")
sq2="select * from servCard"

rs1.open sq2,conn,1,3
rs1.addnew
rs1("custId")=request.form("tid")
rs1("serCardNo")=request.form("cardNO")
rs1("purchMoney")=request.form("deposit")
rs1("PurchID")=PurchaseID
rs1.update
dim servID,temp1
temp1 = rs1.bookmark
rs1.bookmark = temp1
servID=rs1.Fields("cardId").Value
Response.write servID&"</br>" '测试返回当前纪录ID
 
用ADO的事务,启动事务后,那个表就被独占了,别人就不可以插入新的数据,所以就没有并发问题,在有SELECT MAX 一下不就行了。
 
还是用Query吧,我也没有找到什么好办法。其实用Query,打开时使用空记录,速度与SQL差不多。如: select * from <table> where 1=0,这样就可以选出空记录,再插入,即可取回自增字段。
 
后退
顶部