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

最佳答案

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

另外,您可以向应用程序公开COM接口(interface),以便可以使用CreateObject创建表单或 Access 其他功能。

您会发现很难返回另一种方式,即从C#应用程序 Access 您的MSAccess表单和报表,但是可以使用COM或Windows套接字来完成。

您当然可以只使用后端的MSAccess数据库编写C#GUI应用程序,而不使用任何MSAccess表单( NB 如果可以并且确实决定不使用MSAccess GUI的任何方面,那么我强烈建议使用完全为的其他数据库,例如SQL Lite或SQL Express)。

希望这可以帮助。

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

MsAccess数据库严重扩展。我已经看到写得很好的Access应用程序在4或5个用户的情况下遭受损坏和数据完整性问题。授予网络速度和稳定性会产生影响,但实际上问题出在 Access 上(SqlExpress应用程序在网络越差时扩展性越好)。参见Limitations of MsAccess

How scalable is MS Access



他们在Inform IT文章中花了很多时间告诉您为什么应该使用MsAccess,他们补充说(这是我的重点)

  • 可伸缩性。 Access 无法处理
    非常大的数据库。
    一般来说,越大
    数据库,越仔细
    Access 应用程序必须是
    设计。
  • 网络。虽然 Access 是一个
    内置多用户数据库
    记录锁定及其他
    交易功能,它没有
    通过网络运作良好

  • “在网络上无法正常运行” 真的吗?在当今时代-分布式计算下一件大事-这到底有什么用?
    因此,基本上,如果一台计算机上只有一个用户需要使用该应用程序,那么就可以了,但是如果您有机会将其推广给多个用户,为什么要花时间和精力在Access中进行构建,以进行推广您需要重新构建应用程序,并在后端构建一个真正的RDBMS。

    确实,最好不要一开始就使用Access,除非您当然是世界上唯一的人并且拥有唯一的计算机 :)

    关于c# - 没有VBA的MS Access?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6094788/

    10-09 02:26