能否用set rs=conn.execute("insert into ...")返回记录集,如果不能...

xdd1125 2003-11-18 05:46:22
conn是connection对象
如果不能,在不用rs.addnew的情况下,有什么更好的方法?
...全文
158 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yoki 2003-11-19
  • 打赏
  • 举报
回复
如果是sql数据库,可以这样:

Dim rs As New ADODB.Recordset
rs.Open "INSERT INTO jobs(a,b,c) VALUES ('Accountant',12,125)", cnDatabase
rs.Open " SELECT @@IDENTITY AS 'Identity'", cnDatabase
Debug.Print rs!Identity
xdd1125 2003-11-19
  • 打赏
  • 举报
回复
是否还有其它好点的办法?
佛的光辉 2003-11-19
  • 打赏
  • 举报
回复
Insert Into是不会返回记录集的
guolei0813 2003-11-19
  • 打赏
  • 举报
回复
可能不行,只会显示出所以记录。
xdd1125 2003-11-19
  • 打赏
  • 举报
回复
我是想返回刚插入的AUTO ID号,这样很方便。不然的话,我得这样:
rs.open "select * from mytable where id<0" '返回一空记录集

rs.addnew
...
rs.update
得到rs("id"),这样很麻烦
guolei0813 2003-11-19
  • 打赏
  • 举报
回复
我建议你还是把你的程序改一改,使它能对你表中的id进行控制。
插入后是不会返回结果集的。
以下代码可供参考,很好用的。
Public Function GetNewId() As Integer
sqlstmt = "SELECT ID FROM Table ORDER BY Id"
Set Rs2 = Con.Execute(sqlstmt)
With Rs2
If .EOF Or .BOF Then
GetNewId = 1
Exit Function
Else
.MoveFirst
i = 1
End If
While Not .EOF
If !ID = i Then
i = i + 1
.MoveNext
Else
GetNewId = i
Rs2.Close
Exit Function
End If
Wend
Rs2.Close
End With
GetNewId = i
End Function
longki 2003-11-18
  • 打赏
  • 举报
回复

你要干嘛?"Insert Into"语句不是可以增加一条记录吗?
yoki 2003-11-18
  • 打赏
  • 举报
回复
conn.execute "insert into yourtable ..."
set rs=conn.execute ("select * from yourtable")

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧