将MS Access报表转换为SQL Server报告

4

我有许多旧的 MS Access 报告,我想把它们移到 SQL Server 上。

这个可行吗?需要采取哪些步骤?


SQL Server没有像Access那样的表单和报表,您需要使用SQL Server Reporting Services。这是您要做的吗? - Matt McHugh
1个回答

2
翻译:
  1. 确定要转换的报告
  2. 在 MS Access 中以设计模式打开该报告

enter image description here

  1. 获取旧的报告副本或从MS Access中运行报告(作为制作SSRS报告的基础)
  2. 打开报告属性并找到报告正在使用的记录源:qry_Intermediary_Summary

enter image description here

转到查询选项卡,右键单击查询并选择设计视图:

enter image description here

右键单击并选择SQL视图。

enter image description here

将 MS Access SQL 复制到 SQL Management Studio 中。

enter image description here

编辑 MS Access SQL 以使其符合 SQL Server 标准:
  • 转义列名,这些列名是保留的 SQL 关键字(例如 GROUP)
  • 将双引号替换为单引号
  • 确保表/视图存在
  • 移除美元符号
  • 将 Trim(...) 转换为 LTrim(RTrim(...)))
  • 等等

enter image description here

当查询使用嵌套查询时,我们需要将它们转换为存储过程并将数据加载到临时表中。例如:

enter image description here

这个 SQL 使用了 3 个嵌套查询:
  • qryTopStocks
  • qryTopStocksBuys
  • qryTopStocksSells​

我们无法将这些查询转换为返回表的函数,因为函数不支持 ORDER BY
我们也无法将这些查询转换为视图,因为视图不接受参数

因此,我们必须将这些查询转换为存储过程:

enter image description here

然后在我们的数据集中,我们将存储过程执行到临时表中,以便我们可以进行连接:

enter image description here

enter image description here

一旦您拥有查询并且它返回与 MS Access 完全相同的结果(查看旧报告以检查),那么我们就可以创建一个新报告。
我已经使用了 MS Access 到 SSRS 转换工具。它成功获取了 MS Access 报告设计,但无法提取数据。这些 SSRS2005 版本的报告位于 AAA 目录中。将要转换的报告从 AAA 文件夹复制到 BBB 项目文件夹中。
将旧的 SSRS2005 报告导入到 BIDS/SSRS2016 中:

enter image description here

将所有控件选择并复制到新的SSRS2016报表中。然后从项目中删除SSRS2005报表。您只需要它来复制保留设计、字体和样式的控件。
在BIDS中将所有控件映射到数据集中的字段。
更新:我刚刚找到了这个,它非常有帮助:https://www.databasejournal.com/features/msaccess/article.php/3705151/Converting-Access-Queries-to-SQL-Server.htm 这是一个关于MS Access查询与SQL Server查询(用于链接数据库)的很好的解释。

https://www.mssqltips.com/sqlservertip/1482/microsoft-access-pass-through-queries-to-sql-server/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接