c# - 没有 VBA 的 MS Access?

标签 c# wpf winforms ms-access vba

一个简单的问题:是否可以使用 C# 而不是 VBA 来 Access 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

Access doesn't really have a place in any significant database project. It is basically aimed at the home market for people who want to be able to store info for home use without having to learn advanced Excel to do it

来自 Inform IT文章,他们用文章的大部分时间告诉您为什么应该使用 MsAccess,他们补充说(我强调的是)

  • 可扩展性。 Access 不处理 非常大的数据库很容易。 一般来说,越大 数据库,越仔细 Access 应用程序必须是 设计。
  • 网络。虽然 Access 是一个 内置多用户数据库 记录锁定和其他 交易功能,它没有 在网络上运行良好

“它在网络上运行不佳” 真的吗?在当今时代 - 分布式计算是下一件大事 - 这到底有什么好处? 所以基本上,如果一台计算机上只有一个用户需要使用该应用程序,那没关系,但如果有机会,您需要将其推广给多个用户,为什么要花费时间和精力来构建它在 Access 中,要推出它,您需要重新构建应用程序,并在后端建立一个真正的 RDBMS。

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

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

相关文章:

c# - C# 中的双向/双向字典?

c# - .NET 富文本框中的彩色文本

c# - 如何保持 SqlConnection 始终打开

c# - Button Style 的内容只出现在一个 Button 实例中

c# - 使用 C# 在 Windows 7 中创建 Metro 风格的 Winform

c# - 更改 TextBox 中的滚动条位置?

c# - 如何使用 epplus 遍历 excel 表中的行?

c# - 基于属性值的样式

wpf - F# 异步和 WPF 进度条

c# - Telerik RadGauge + 数据绑定(bind)