表中添加过新记录以后可以立即拿出新记录的属性吗?

hmyang 2006-03-17 09:44:41
'打开数据集,检查大类是否存在,若不存在则添加
AddPayoutInfo.Open "tbGoods_BigClass", g_Conn, adOpenStatic, adLockOptimistic
DBstr = "SELECT Goods_BigClassIDint, Goods_BigClassNamestr FROM tbGoods_BigClass"
Set AddPayoutInfo = g_Conn.Execute(DBstr)

While Not AddPayoutInfo.EOF
If Me.cmbGoodsBigClass.Text <> AddPayoutInfo.Fields.Item(1).Value Then '不匹配
AddPayoutInfo.MoveNext
i = 0
Else '匹配,跳转到Judge1
bigclassid = AddPayoutInfo.Fields.Item(0).Value
MsgBox bigclassid
i = 1
GoTo Judge1
End If
Wend

Judge1: '若是新大类,则跳转到此
If i = 0 Then
g_Conn.Execute "INSERT INTO tbGoods_BigClass VALUES ('" & Me.cmbGoodsBigClass.Text & "')"


End If

AddPayoutInfo.Close

表中tbGoods_BigClass只有Goods_BigClassIDint, Goods_BigClassNamestr两个属性,前者为自动增加(主键)
以上代码通过,我想在添加过记录后,马上就返回主键值,但是直接取好像会提示“行集不支持反向提取”,这是问什么?
大家帮下忙,谢谢
...全文
70 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jobs002 2006-03-17
select max(lngCode) as '最大号码' from table
select @@IDENTITY
  • 打赏
  • 举报
回复
hmyang 2006-03-17
谢谢,我现在只能重新查找一边,再移动到最后一个记录取相应的ID号
因为对于自动增长的字段,删除最后的记录后,字段还是在前面的基础上继续增加,而不是在现存记录上增加
  • 打赏
  • 举报
回复
of123 2006-03-17
rs.Open "SELECT * FROM tbGoods_BigClass", g_Conn

g_Conn.Execute "INSERT INTO tbGoods_BigClass VALUES ('" & Me.cmbGoodsBigClass.Text & "')"

rs.Requery
rs.BookMark = rs.LastModified

debug.print rs!Goods_BigClassIDint

其实,你在添加记录前
rs.MoveLast
lngClassID = rs!Goods_BigClassIDint + 1
就可以知道加入记录后的自动增加编号。
  • 打赏
  • 举报
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2006-03-17 09:44
社区公告
暂无公告