如何将Crystal报表文件(RPT)从Access转换为Microsoft Sql Server?

时间:2012-03-10 00:04:56

标签: visual-studio-2010 sql-server-2008 crystal-reports

我已经接管了最初用VB.Net net编写的应用程序的支持,现在已经移植到C#。该应用程序最初使用了Access数据库,我现在已将其迁移到Microsoft SQL Server 2008.除了使用Crystal Reports构建的报表外,一切正常。我以前从未使用过Crystal Reports,我很难将.RPT文件转换为使用Sql Server而不是Access。

我正在使用Visual Studio 2010并为VS安装了Crystal Reports 13.0.1。现在,当我打开其中一个RPT文件时,我看到“Field Explorer”带有“Database fields”树项,我可以展开它来显示一个表。如果我右键单击“数据库字段”并选择“验证数据库”,将弹出一个窗口,其标题为“Access / Excel(DAO)”,字段“数据库名称”显示.mdb文件的路径和“数据库类型”此处显示“访问”。如果我下拉“数据库类型”,我只看到此处列出的基于文件的数据库,例如“dBase 5.0”,“Excel 8.0”,“Paradox 5.x”等。

那么如何更改“数据库字段”以读取我的Sql Server数据库而不是Access?

更新:

确定。我现在大部分都在那里。我已设法使用Database Expert连接到数据库(右键单击“Database Fields”,然后从上下文菜单中选择“Database Expert”)。然后,我扩展了“创建新连接”,然后“OLE DB(ADO)”,并且能够从提供者列表中选择“SQL Server Native Client 10.0”。通过这种方式,我可以添加到Sql Server数据库的链接。

然后我尝试去“设置数据库位置..”并将提供程序从“我的连接”下的.mdb更新到现在列在那里的Sql数据库,然后选择“更新”。如果仅链接表并且这些表存在于Sql数据库(它们是)中,则此方法可以正常工作。但是如果报告有一个命令(sql查询),则更新失败,因为该命令的语法对于Sql Server不正确。我可以删除该命令并使用正确的语法在Sql Server连接下重新创建它,但是我丢失了报告中链接到原始命令的所有字段。这不是一个问题,因为我可以手动重新创建这些,但我想知道在将数据库位置设置为Sql Server时是否有办法更改命令的语法?

1 个答案:

答案 0 :(得分:0)

删除sql代码的行,然后执行db update,然后更新sql代码。