设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 调用存储过程做子窗体的数据源

[复制链接]
跳转到指定楼层
1#
发表于 2004-5-6 06:04:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在主窗体mainForm中建一个子窗体subForm,主窗体中建一个按纽,按纽事件中加入
dim rst as new adodb.recordset
set rst=currentproject.connection.execute("exec pro存储过程 ‘" & 日期1 & "','" & 日期2 & "'")
forms!mainForm.subForm.form.recordsource=rst

proc存储过程是这样写的
alter proedure proc存储过程(@日期1 datetime,@日期2 datetime)
as
select 日期,字段1,字段2
from 表1 where 日期 between @日期1 and @日期
在点击按纽后系统提示"你输入的表达式引用了一个关闭或不存在的对象"
请各位高手帮忙是哪里出错了!!我这样做是想通过主窗体的内容再增加查询条件设置子窗体的数据源,达到各种查询条件下的子窗体内容.多谢!


[此贴子已经被作者于2004-5-5 22:47:59编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2004-5-6 18:31:00 | 只看该作者
在ADP中,你可以这样做:

1、假设你的主窗体mainForm上有两个文本框:“日期1”和“日期2”,有一个按钮为“cmdQuery”,放上一个子窗体控件名为“subForm”,子窗体名为frmDetails,存储过程与你问题中的一致。

2、对子窗体frmDetails的属性进行设置:
    记录源:proc存储过程
    输入参数:@日期1=forms!mainForm!日期1, @日期2=forms!mainForm!日期2

3、对主窗体mainForm进行设置:
    “日期1”文本框:输入掩码:0000-99-99;0;_
    “日期2”文本框:输入掩码:0000-99-99;0;_

4、cmdQuery的事件处理程序:

Private Sub cmdQuery_Click()
    Me.subForm.Form.Requery
End Sub

运行mainForm, OK!达到你的要求!
[此贴子已经被作者于2004-5-6 10:35:44编辑过]

点击这里给我发消息

3#
发表于 2004-5-6 18:41:00 | 只看该作者
下图是我这里的实例:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

4#
发表于 2004-5-6 18:51:00 | 只看该作者
分析你的错误:

forms!mainForm.subForm.form.recordsource=rst

forms!mainForm.subForm.form.recordsource是一个字符串性,因此肯定出错,如果改为:

Set Me.subForm.form.Recordset = rst

则可能通过。(我没有测试)
5#
 楼主| 发表于 2004-5-7 04:36:00 | 只看该作者
谢谢zhuyiwen,我将代码改了你最后说的方法,不能通过。第1种方法我以前就是这么做的,但是如果存储过程的参数变动的话,就一定要更改客户端的窗体觉得麻烦。
我想到的可行的方法了;
me.subForm.form.recordsource="exec pro存储过程" & "'" & 日期1 & "','" & 日期2 & "'"

完全通过.再次谢谢zhuyiwen,以后还要多向你们请教!

点击这里给我发消息

6#
发表于 2004-5-7 05:07:00 | 只看该作者
至少又多一种解决问题的方法,呵呵

不过我的方法是测试通过了的.

[此贴子已经被作者于2004-5-6 21:08:18编辑过]

7#
发表于 2004-5-10 19:50:00 | 只看该作者
form.recordsource可以直接使用SQL语句
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 18:55 , Processed in 0.096842 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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