设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 6088|回复: 12
打印 上一主题 下一主题

用VBA打开有参数的存储过程 [代码简单]

[复制链接]
跳转到指定楼层
1#
发表于 2003-8-1 19:13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
'假设一个 "存储过程1"有两个参数:intID, intID1

Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim Par As New ADODB.Parameter

Set cmd.ActiveConnection = CurrentProject.Connection

Set Par = cmd.CreateParameter("intID", adInteger, adParamInput, 4, 5)
cmd.Parameters.Append Par

Set Par = cmd.CreateParameter("intID1", adInteger, adParamInput, 4, 10300)
cmd.Parameters.Append Par

cmd.CommandText = "存储过程1"
cmd.CommandType = adCmdStoredProc

Set rst = cmd.Execute

Debug.Print rst.RecordCount

rst.Close
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-8-12 02:02:00 | 只看该作者
我比你的还简单
比如在ADP/VB/VBA中执行一个带参数的存储程式!
currentproject.connection.execute " exec usp_mytest " & varuel
怎样,简单吧!
3#
 楼主| 发表于 2003-8-13 18:11:00 | 只看该作者
真的非常简单呀。

请教HG,如何使用这样的格式参入多个参数?
4#
发表于 2003-8-14 02:04:00 | 只看该作者
如果你想入多个参数,且在你的过程中没有预设参数值的
就可以按顺序入比如:
exec my_usp val1,val2,val3....
如果过程中有预设值的就一定要指定参数名和参数值
比如:
exec my_usp @val1=val,@val3=val
其实这些一点都不复杂,只是TSQL的一个灵活运应吧了。
如果感兴趣要以查查TSQL中EXEC的语法即可!

点击这里给我发消息

5#
发表于 2003-8-14 17:11:00 | 只看该作者
好贴好贴,怎么不早出来?我以前一直用类似HUANGHAI的方法,太多存储过程要处理,让我头大。
6#
发表于 2003-8-15 21:38:00 | 只看该作者
如果不用存储过程
而是直接用SQL语句的话那应该怎么做呢
7#
 楼主| 发表于 2003-8-16 18:24:00 | 只看该作者
HG,你真厉害,解决大问题。谢谢

------

有没有TSQL的电子教程传一个上来
8#
发表于 2003-8-17 03:16:00 | 只看该作者
其实使用sqlserver的存储过程的代码和用mdb的参数查询的代码几乎一致,我们大多数人都已经写过的

另外,上述两种方法应该说各有各的好处。而一般别人使用都是用建参数的方法,原因是:灵活、通用。直接用exec 执行是有局限性的,局限在可以写成字符的参数中,如果是一串二进流就不好办了。

9#
发表于 2003-8-22 07:15:00 | 只看该作者
各位,为什么我没有得到执行结果的呀,执行了的呀,我是按照上面的所说的做的呀
而且,我用DOCMD。OPENSTOREDPROCEDURE是可以看到结果的,请都各位了
10#
发表于 2003-8-23 04:24:00 | 只看该作者
如果你用
set rs as new adodb.recordset
rs=cm.exec usp_usp  arg1 arg2
得不到结果可能是你的procedure返回了多个记录集。
你可以试试加上
set nocount on在最前,
set nocount off在最后。]
如果还有问题请自检。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-4 06:33 , Processed in 0.141081 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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