设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

请问何种类型的对象可以赋给Me.RecordSource

[复制链接]
跳转到指定楼层
1#
发表于 2002-5-19 03:41:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想用一个临时对象temp保存查询生成的记录集,然后反复对这个临时对象进行查询,将查询结果再次赋给它本身,最后把该临时对象赋给Me.RecordSource。目的是想做一个复合查询:它依次判断输入窗体上的每一个输入框是否为空,若为空就选择整个表(即该查询条件不改变temp中的记录集),不空就用输入的值查询符合条件的记录,并用temp保存查询产生的记录集;然后再判断下一个输入框,并在上回temp的基础上做类似操作,最后把temp中的记录集作为数据源赋给查询结果窗体。如以下程序段:

Dim [B]temp[/B] As ???
If IsNull(Forms![复合查询窗体]![起始题号]) Then
[B]temp[/B] = "SELECT 试题属性.* FROM 试题属性 ;"
Else
[B]temp[/B] = "SELECT 试题属性.* FROM 试题属性 WHERE (((试题属性.题号)>=[forms]![复合查询窗体]![起始题号] ));"
End If

If IsNull(Forms![复合查询窗体]![终止题号]) Then
[B]temp[/B] = "SELECT [B]temp[/B].* FROM [B]temp[/B] ;"
Else
[B]temp[/B] = "SELECT [B]temp[/B].* FROM [B]temp[/B] WHERE ((([B]temp[/B].题号)<=[forms]![复合查询窗体]![终止题号] ));"
End If

……

Me.RecordSource=[B]temp[/B]

请问这样的操作Access2000是否允许?如果允许,对象temp属于何种类型?该如何定义?如果不允许,请问如何实现类似功能?谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-5-19 03:44:00 | 只看该作者
http://www.office-cn.net/bbs/dispbbs.asp?boardID=2&RootID=4045&ID=4045
3#
 楼主| 发表于 2002-5-19 04:51:00 | 只看该作者
您这个例子跟我的问题不大一样啊。
我的这段程序最终要加载到[查询结果窗体]的事件中,而程序流程中要多次修改temp中保存的记录,如果直接用Me.RecordSource替换程序中的temp(我一开始就是这么做的)是无法通过编译的呀。
4#
发表于 2002-5-19 04:57:00 | 只看该作者
不就是字符串型吗
5#
 楼主| 发表于 2002-5-19 05:03:00 | 只看该作者
我的temp反复保存的是一个由查询产生的中间表,也就是一组记录集,而不是一个条件字符串。它不可能属于简单的string类型啊,如果定义为string类型,则运行时会提示错误说“数据库引擎无法发现输入表或查询'temp' ”,调试时会停在最后一行,即temp最终无法赋值给Me.RecordSource。
6#
发表于 2002-5-29 16:54:00 | 只看该作者
你的temp的字段类型用字符串类型就好了

点击这里给我发消息

7#
发表于 2002-5-29 18:16:00 | 只看该作者

使用ADO的记录集(ADODB.RecordSet)对象可以实现。

    Dim temp As ADODB.Recordset
    Dim strSQL As String

    ' 打开记录集
    strSQL = "Select ........"
    Set temp = New ADODB.Recordset
    With temp
        Set .ActiveConnection = CurrentProject.Connection
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .Open strSQL
    End With
   
    Set Me.Recordset = temp
    .
    .
    .
    ' 保存记录集
    temp.Save "temp.rst"

    ' 释放 temp 对象
    Set temp = Nothing

其它的自己去研究!

[fly][em04][em07][em04][/fly]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 16:52 , Processed in 0.087385 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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