将 Access 报表的记录源设置为 ADODB 记录集
Posted
技术标签:
【中文标题】将 Access 报表的记录源设置为 ADODB 记录集【英文标题】:Set Access report's recordsource to ADODB recordset 【发布时间】:2021-04-12 01:48:48 【问题描述】:我有一个案例,我想将 Access 报告记录集设置为使用 ADODB 连接查询返回的记录集。
所以在报告中我不能这样做:
Me.recordsource = "SELECT * FROM TABLE1"
因为TABLE1
在数据库中不存在。有没有办法在不创建链接表的情况下做到这一点?
【问题讨论】:
我使用 Access 文件进行了测试。我能够设置表单的 Recordset 属性,但我怀疑是否可以使用报告来完成。可以从带有报告 RecordSource 属性的 Access 文件中提取数据而无需设置链接或连接,例如:SELECT * FROM tableORquery IN 'Z:\path\accessfile.accdb'
。
我使用 Access 文件测试了 ADO 和 DAO (***.com/questions/242504/…) - 报告均失败。
你连接的是什么类型的数据库?
【参考方案1】:
您可以设置报告记录集,但前提是您使用的是 ADP:
Set Me.Recordset = CurrentProject.Connection.Execute("SELECT * FROM Table1")
如果要使用外部表,可以使用直通查询:
Dim qd As DAO.QueryDef
Set qd = CurrentDb.CreateQueryDef("TempQuery")
qd.Connect = "ODBC;My ODBC connection string"
qd.SQL = "My SQL query"
Set qd = Nothing
Me.Recordsource = "SELECT * FROM TempQuery"
有一些技巧可以永久隐藏直通查询,和/或在报告关闭后将其删除,但通常我喜欢让它们可供用户使用。
【讨论】:
以上是关于将 Access 报表的记录源设置为 ADODB 记录集的主要内容,如果未能解决你的问题,请参考以下文章
MS Access 2016:设置报表的 RecordSource 以从子窗体中获取数据
在access报表中,按"编号"字段前四位分组统计每组记录的平均年龄,并将统计结果显示在组页脚节区.怎么做?