设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

数据源如何调用存储过程?

[复制链接]
跳转到指定楼层
1#
发表于 2002-8-30 00:58:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
想根据组合框选定值筛选子窗体数据源
子窗体数据源:存储过程是带输入参数的

能否用代码作成类似,一句代码包含输入参数:
Set RSC = CNN.Execute("存储过程 '" & 组合框选定值 & "'")

不想用窗体的输入参数方式做,能否用类似上面一句代码指定带输入参数的存储过程?

子窗体.Form.RecordSource =存储过程

谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
26#
发表于 2002-9-26 01:33:00 | 只看该作者
可能微軟設計出docmd.run系統功能,其目的,並不是這樣用的。我的推測。
看來不想寫代碼,還是不行呀。
25#
发表于 2002-9-25 21:55:00 | 只看该作者
我以前遇到这种问题都用 SET RST=
实现!!
现在问这个问题!!我回答不了!!
没有深度考虑!!
我试过insert可以使用
updata可以使用!
delete也可以!help中有表述!
但无法解释这个问题!
24#
 楼主| 发表于 2002-9-24 07:17:00 | 只看该作者
DoCmd.RunSQL ("exec 存储过程1 " & "'" & 输入  & "'")


ALTER PROCEDURE 存储过程1
@输入 nvarchar(28)
AS BEGIN TRAN
INSERT INTO dbo.表1 (姓名) VALUES( @输入)

if @@ERROR >0 OR @@ROWCOUNT<>1
ROLLBACK TRAN
ELSE
COMMIT TRAN
ENDIF

插入新记录是可以的,但是 SELECT * 表1 不行,得用 SET RST=
23#
发表于 2002-9-23 23:33:00 | 只看该作者
???
為什麼,對insert,updata,delete有用,而select不可用哪?
您試過了麼?ACCESS的幫助曾明確的指出docmd.runsql只對mdb有用.
也就是說,現在還沒有直接從窗體上可以立即傳遞參數給存儲過程的方法吧。
也就是,直接傳遞參數給docmd.runstordproc sp_name agr1,agr...
22#
 楼主| 发表于 2002-9-20 22:58:00 | 只看该作者
不过 DoCmd.RunSQL ("exec SP  输入参数")
好象只能对 插入、更新、删除查询这些有用,对 SELECT 不行(只好用 SET RST=)
21#
发表于 2002-9-20 20:01:00 | 只看该作者
Kenjisato:你有沒有注意在我的每一個存儲過程,視圖或函數中都可以隨意修改數據(但復合的存儲過程函數除外),你以前不是問過嗎?怎樣在視圖,隨意修改數據等,不過這次上傳例子中沒有哪些特殊情況,但我只能告訴你,所有的一切都可以實現,因為我實現過。
20#
发表于 2002-9-20 19:53:00 | 只看该作者
呵呵,老大,您誤解了我的意思,如果像你哪樣的實現,我想很早就可以搞定了。
不過,您的思路也挺獨特的,值得學習喔!
我現在是編程越來越懶,越來越不想多寫一點代碼。
殃在連窗體都不想作了,都想用存儲過程來實現,報表也不想作了,也同樣用函數或存儲過程來寮現,總之是越來越懶了。呵呵
19#
 楼主| 发表于 2002-9-20 19:10:00 | 只看该作者

我那例子也可以用,无非用数据表替代存储过程。你的例子好象很特别,能否多多交流!
18#
 楼主| 发表于 2002-9-20 19:00:00 | 只看该作者

简单的子窗体例子



文件下载

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

本版积分规则

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

GMT+8, 2024-9-23 09:23 , Processed in 0.093595 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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