设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 求教,如何在VBA中增加一条记录,并返回此记录的“自动编号”字段值

[复制链接]
跳转到指定楼层
1#
发表于 2010-8-26 21:58:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求教各位
我有一个数据表,其中的ID字段的数字类型是“自动编号”。
我想使用vba语句向其增加一行数据,并取得此行数据的ID字段的数据。

我使用了如下语句,
strSQLAddBOM = "INSERT INTO [reBills of Materials] ( ProductID, MateraCategoryID, MateralName, Status ) " & _
                         "VALUES(" & lngProductID & "," & lngMaterialCategoryID & ",'" & strMaterialName & "'," & "-1);"
rstAddBOM.Open strSQLAddBOM, CurrentProject.Connection, adOpenKeyset, adLockReadOnly

ID= rstAddBOM.Fields(0).Value

但rstAddBOM在运行后好象自动被关闭,显示最后一语句错误。

请教如何实现。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-8-26 22:06:23 | 只看该作者
select @@IDENTITY
这个查询可获取新的自动递增值
3#
发表于 2010-8-27 09:40:54 | 只看该作者
2楼的是在sql用。
access里:
一、用dmax取最大值,如果多机操作可能有误。
二、用记录集追加,可获得正确的id。
4#
发表于 2010-8-27 14:18:24 | 只看该作者
期待高手
5#
发表于 2010-8-27 15:40:30 | 只看该作者
求教各位
我有一个数据表,其中的ID字段的数字类型是“自动编号”。
我想使用vba语句向其增加一行数据,并 ...
laoyaoyang 发表于 2010-8-26 21:58


rstAddBOM.Open "[reBills of Materials]", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
rstAddBOM.addnew
rstAddBOM("ProductID").value=lngProductID
rstAddBOM("MateraCategoryID").value=lngMaterialCategoryID
rstAddBOM("MateralName").value=strMaterialName
rstAddBOM("Status").value=-1
rstAddBOM.update
ID= rstAddBOM.Fields(0).Value




点击这里给我发消息

6#
发表于 2010-8-28 09:58:35 | 只看该作者
本帖最后由 t小宝 于 2010-8-28 10:01 编辑
求教各位
我有一个数据表,其中的ID字段的数字类型是“自动编号”。
我想使用vba语句向其增加一行数据,并 ...
laoyaoyang 发表于 2010-8-26 21:58


rstAddBOM.Open 的第一个参数(数据源)不能是操作查询,操作查询不返回数据集。
可用Currentdb.Execute运行操作查询,再用选择查询打开记录集获取字段值。

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

本版积分规则

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

GMT+8, 2024-5-21 12:34 , Processed in 0.095826 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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