if sc.recordcount=0 then
IDvar=1
else
sc.movelast
IDvar=sc.Fields(0)+1 '我写错了,应该是加1。
end if
一般情况下对数据库的操作在多用户时这种方法也不会有问题的,不信你可以试试。
还有一种办法就是除了用ID以外,另设一个主键如果编号等,在保存后要修改记录时以编号做为条件更好一些。
to cqq_chen(我是谁)
应该是:
if sc.recordcount=0 then
IDvar=1
else
sc.movelast
IDvar=sc.Fields(0)
end if
吧
我的意思你还不清楚,我要得到的ID是当前记录保存后此记录的ID,而不是未保存前数据库中最后记录的ID。
另外,用rec.movelast得到的ID并不一定是最后一个ID,因为应该考虑到多用户操作的情况。
在你保存这条记录之前先找到它的ID不行吗?
'DAO
dim db as database
dim sc as recordset
dim IDvar as long
set db=openatabase()
set sc=db.openrecordset()
if sc,recordcount<>0 then
IDvar=1
else
sc.movelast
IDvar=sc.Fields(0)
end if
db.execute "insert...."
这样不行吗?