没有VBA的MS Access?

Elm*_*mex 9 c# wpf ms-access vba winforms

一个简单的问题:是否可以使用C#而不是VBA进行MS Access?我可以使用Windows窗体和(或)WPF扩展Access应用程序吗?这种情况会有意义吗?

Bin*_*ier 9

是的,您可以在C#中编写GUI应用程序,然后让MSAccess按钮(或菜单)单击shell到C#app,在命令行上传递上下文信息(例如,数据库名称,要打开的表单,记录的ID等).

或者,您可以向应用程序公开COM接口,以便可以使用CreateObject创建表单或访问其他功能.

您会发现很难回到其他方式,从C#应用程序访问您的MSAccess表单和报告,但可以使用COM或Windows套接字完成.

您当然可以在后端编写带有MSAccess数据库的C#GUI应用程序,而不使用任何MSAccess表单(注意如果可以并且决定不使用MSAccess GUI的任何方面,那么我强烈建议使用不同的数据库完全 如SQL Lite或SQL Express).

希望这可以帮助.

更新回答为什么有人会这样做?重点是什么?

MsAccess数据库规模可怕.我见过写得好的Access应用程序遭遇4或5个用户的损坏和数据完整性问题.授予网络速度和稳定性有一定的效果,但问题实际上是访问(SqlExpress应用程序随着网络恶化而扩展得更好).请参阅MsAccess的限制

MS Access的可伸缩性来看

Access在任何重要的数据库项目中都没有真正的位置.它基本上针对那些希望能够存储家庭信息而无需学习高级Excel来实现它的人们的家庭市场

从一篇Inform IT文章中,他们花了很多文章告诉你为什么要使用MsAccess,他们补充说(这个重点是我的)

  • 可扩展性.Access无法轻松处理非常大的数据库.一般来说,数据库越大,Access应用程序的设计就越小心.
  • 网络.虽然Access是一个具有内置记录锁定和其他事务功能的多用户数据库,但它在网络上不能很好地工作

"它在网络上运行不佳" 真的很老兄?在这个时代 - 分布式计算是下一件大事 - 这到底有什么用呢?所以基本上,如果一台计算机上只有一个用户需要使用该应用程序,那就没关系,但如果有可能需要将其推广给多个用户,为什么要花时间和精力在Access中构建它,将其推出您需要在后端重新构建应用程序和真正的RDBMS.

真的,你最好不要首先使用Access,除非你是世界上唯一的人,你拥有唯一的计算机 :)

  • @Elmex出了那些可能的选项,最后一个可能会给你最好的结果.代码和支持会更容易,因为你不必在应用程序之间来回跳转.此外,您的最终用户无需运行Access.只是.NET,您的EXE(和DLL依赖项)以及与数据库的有效连接. (2认同)
  • 你在答案中添加的所有内容都是主观的,错误的.它完全基于对如何正确使用Access和Jet/ACE数据库引擎以及遵循最佳实践缺乏了解.这种对Access的态度很普遍,但这并没有让它变得更糟. (2认同)
  • ...当有_so多个优秀工具(其中一些是_free_)用于开发针对服务器数据库的应用程序时 - 为什么有人会选择在MsAccess中编写该应用程序?**为什么有人会这样做?重点是什么?** (2认同)