我有一个MS-Access应用程序,可以将数据格式化为两个大型电子表格(20,000多行),将这些数据导入表格,运行一些查询比较数据并将结果输出为excel文件.
问题是随着应用程序(和VBA代码)的增长,使用Access变得更加痛苦,我想知道是否有更好的方法?
与MS-Access相比,.NET(C#)解决方案的优点/缺点是什么,以及最好的库等?
干杯,
Breandán
到目前为止响应的欢呼声,我忘了提及虽然这个应用程序需要独立,我需要能够打包应用程序并将其发送给最终用户安装在他们的计算机上.这只有(注意)安装了MS-Office和.Net Framework,所以我不确定MySQL等在没有托管位置的情况下是多么可行.
迁移到.Net可以让您拥有更好的工具来操纵数据.
你必须要小心你的Access解决方案目前到底在做什么:如果你正在进行大量处理来自Excel的数据的特殊情况处理,那么你很可能还需要做那些你选择的语言或框架.
如果您将大量代码投入到将Excel数据提取到Access中,那么您仍然可以保留该部分的Access并使用.Net来帮助您进行比较和创建生成的Excel报告.
如果不了解更多有关您的项目的建议,真的有点难以推荐.
如果你只是想使用自动化来提取数据并创建你的Excel文件,那么.Net可能不会为你提供很多东西,因为你仍然必须完成你在Access中已经完成的相同的事情.
相反,您可以考虑使用使用不同范例的商业Excel组件以更好的方式打开/创建Excel电子表格.
有一些组件供应商有这些.
一种解决方案还是使用报告工具直接从Excel中提取数据并生成一个报告,您只需将其保存回Excel即可.
我的建议是:
如果您的Access解决方案稳定且正在执行其工作,那么您可以考虑保留它.
搬到新系统将花费您的时间和金钱,您必须检查结果是否值得投资.
如果您觉得Access的功能太受限制,那么花一些时间尝试各种允许您操作Excel的解决方案和组件,例如使用LINQ Excel提供程序(1或2)可以提供一个很好的抽象,或尝试各种商业组件,直到找到符合您需求的组件.
如果你要使用.Net路线,你可能最终甚至不需要数据库来处理数据.
如果你这样做,你可以随时使用Jet - 或其新版本ACE-作为创建MSAccess数据库的后端.
它已经安装在大多数机器上,并且得到了MS工具的良好支持.
其他不错的选择是SQL Server Compact和SQLite,因为这些都不需要复杂的设置,只需要一个随项目一起提供的DLL.