一个简单的问题:是否可以使用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中进行构建,以进行推广您需要重新构建应用程序,并在后端构建一个真正的RDBMS。
确实,最好不要一开始就使用Access,除非您当然是世界上唯一的人并且拥有唯一的计算机 :)
关于c# - 没有VBA的MS Access?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6094788/