Office中国论坛/Access中国论坛

标题: ADO recordset 如何绑定 报表 数据源 [打印本页]

作者: xingzhihao    时间: 2010-10-7 12:53
标题: ADO recordset 如何绑定 报表 数据源
本帖最后由 xingzhihao 于 2010-10-7 12:57 编辑

ADO recordset 绑定窗体数据源没有任何问题,但是绑定报表数据源就出错
代码如下:
问题在哪里呢?
            DoCmd.OpenReport "封面", acViewPreview
           str = "SELECT 个人一般情况表.* FROM 个人一般情况表 WHERE (((个人一般情况表.个人编号)='" & Forms![个人信息浏览]!grbh & "'));"
          Rs.Open str
          set  reports![封面].recordset=rs
          Rs.Close

提示“在MDB中该功能不可用。”

期望大侠指点一二。谢谢了

作者: hjb016    时间: 2010-10-7 12:57
DoCmd.OpenReport "封面", acViewPreview
这个后面本来就有一个条件的.不需要这样去绑定的.
作者: xingzhihao    时间: 2010-10-7 12:59
回hjb016版主
因为需要远程访问数据,必须采用ADO的方法,代条件的方法怎么支持ADO记录集呢?
作者: t小宝    时间: 2010-10-7 13:40
报表不能绑定记录集,可在报表的打开事件中设置RecordSource属性为需要的SQL语句。
作者: tmtony    时间: 2010-10-7 13:46
MDB在报表中只支持DAO方式 ,ADP才支持ADO
可用以下方式
在报表open事件中增加
Dim db As DAO.Database
    Dim rs As DAO.Recordset
   
    Set db = CurrentDb
   
  
    Set rs = db.OpenRecordset("邮件列表2", dbOpenDynaset)
    Me.RecordSource = rs.Name

作者: t小宝    时间: 2010-10-7 14:00
回复 tmtony 的帖子
  Set rs = db.OpenRecordset("邮件列表2", dbOpenDynaset)
    Me.RecordSource = rs.Name
还不如直接 Me.RecordSource = "邮件列表2",

即使用DAO,Set Me.Recordset = rst  这样好象也是不行的。


   
作者: xingzhihao    时间: 2010-10-7 17:57
感谢各位老大的热心帮助,看来这个确实是MDB的缺点了
作者: tmtony    时间: 2010-10-8 10:42
回复
  Set rs = db.OpenRecordset("邮件列表2", dbOpenDynaset)
    Me.RecordSource = rs.Name
还不如 ...
t小宝 发表于 2010-10-7 14:00


是的,你说得有道理, 虽然使用DAO是可以的,便还不如直接 设置数据源为表. 但如果在其它地方有一个RS要传递过来,则可能会用得上.

总之, 将Access当成VB只做客户端,不使用绑定的方式的话,在报表上还是会遇到不少问题

作者: xingzhihao    时间: 2010-10-8 21:06
呵呵,我用迂回的办法解决了,就是先用ADO 把远程数据写入本地表,作为报表的数据源。实践通过。
再次感谢!
作者: t小宝    时间: 2010-10-8 23:07
回复 tmtony 的帖子

原来这个用法。
ACCESS的报表如果直接支持记录集就更强大了。。。
作者: LeeTien    时间: 2010-10-10 10:54
升级2010版看看
作者: greatbaijin    时间: 2011-1-20 10:27
回复 t小宝 的帖子

me too
作者: Aoksen    时间: 2011-4-1 10:15
还是不明白,多介绍介绍呗

作者: mclly2000    时间: 2013-6-15 12:22
Access2010的报表也不支持ADO记录集
作者: zhuyiwen    时间: 2013-6-15 13:46
xingzhihao 发表于 2010-10-7 12:59
回hjb016版主
因为需要远程访问数据,必须采用ADO的方法,代条件的方法怎么支持ADO记录集呢?

既然用ADO方案,为何不用ADP呢?

在ADP中,报表可以绑定记录集哟,呵呵




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3