我相信你会得到很多“不要这样做”的答案,我必须说,这是有充分理由的。这不是一个理想的解决方案......
话虽这么说,我以前也曾走过这条路(以及类似的路),主要是因为工作将其指定为硬性要求,而我无法绕过它。
对此需要考虑以下几点:
使用 ADO / DAO 从 Excel 链接到 Access 有多容易?它的功能是否相当有限,或者我可以发挥创意吗?
这是相当简单的。与使用其他工具做事相比,您受到的限制更大,因为 VBA 和 Excel 表单比大多数完整的编程语言有更多的限制,但没有任何东西会成为阻碍。它有效——有时有点难看,但它确实有效。在我上一家公司,我经常不得不这样做 - 偶尔会通过 Excel 中的 VBA 从 Access 和 Oracle 中提取数据。
我是否会付出性能损失(与使用 Access 中的表单作为 UI 相比)?
我的经验是,肯定有一个性能。这样做的惩罚。我从来不在乎(在我的用例中,事情足够小,这是合理的),但是使用 Excel Access 比直接在 Access 中工作要慢得多。部分取决于你想做什么......
就我而言,似乎绝对最慢(也是最痛苦)的事情是尝试根据 Access 数据填写 Excel 电子表格。这并不有趣,而且通常非常慢。如果您必须走这条路,请确保在 Excel 隐藏/不可见的情况下执行所有操作,否则重绘绝对会杀了您。
假设数据库始终使用 Excel VBA 中的 ADO / DAO 命令进行更新,这是否意味着我可以让多个 Excel 用户使用同一个 Access 数据库,而不会遇到任何并发问题等?
您几乎使用 Excel 作为客户端 - 与使用 WinForms 应用程序或任何其他工具的方式相同。 Access 的 ADO/DAO 客户端非常好,因此您可能不会遇到任何并发问题。
话虽如此,Access 的扩展性并不好。如果您有 2 或 3 个(甚至 10 个)用户,这非常有用。如果你有 100 个,你可能会遇到问题。另外,我倾向于发现 Access 需要定期维护才能避免出现损坏问题。必须定期备份 Access DB。根据我的经验,定期压缩访问数据库将有助于防止数据库损坏。
还有其他我应该注意的事情吗?
你正在以艰难的方式做这件事。使用 Excel 访问 Access 比直接使用 Access 要做更多的工作。
我建议您研究一下 Access VBA API - 其中大部分与 Excel 相同,因此您的学习曲线会很小。不同的部分只会让这变得更容易。您还将拥有 Access 报告和表单的所有优势,它们比 Excel 中的报告和表单更加面向数据。报告对于此类事情非常有用,从长远来看,拥有宏和报告将使生活变得更轻松。如果用户要使用表单来管理所有内容,则在 Access 中执行表单将与在 Excel 中执行表单非常非常相似,并且看起来几乎相同,但将使一切更快、更流畅。