同时使用Excel作为前端访问数据库 - 可行吗?

时间:2010-02-19 09:36:35

标签: database excel frontend

假设您拥有一个包含大约200,000行的最大表的数据库,并且经常进行修改。客户端希望Excel通过ODBC连接到数据库,并作为前端来管理数据。数据最多可同时由多达25个用户修改。

我的第一直觉是推荐别的东西,例如网络前端。但是假设客户坚持使用Excel解决方案,您认为它是否可行,您会看到哪些陷阱?

我的怀疑是:

  1. 数据完整性(如何管理用户同时修改相同数据)
  2. 大量数据不必要地移动(打开Excel工作簿时,我想必须传输整个数据库)
  3. 安全性(以安全的方式向适当的用户显示部分数据将具有挑战性 - 请参阅上一点)
  4. 使用工具(Excel)做一些不擅长的事情(原谅双关语)

2 个答案:

答案 0 :(得分:5)

我一直这样做。不,你不必带入整个数据库甚至整个表。我使用ADO和VBA并通过Command对象发送SQL语句。例如,我有一个带有Excel前端的版税数据库。

用户键入发票编号,SELECT语句检索该记录并填充一些自定义类。用户输入/修改一些数据并单击“保存”。然后该类有一个方法,根据情况将记录写回数据库和UPDATE或INSERT。

在月末,用户输入日期范围并将一些记录检索到报告中,再次只是填充某些类并输出到工作表的SELECT语句。

使用事务处理,以便在遇到任何记录锁定问题时可以回滚,但有25个用户可能不会回滚。

答案 1 :(得分:2)

乍一看,我建议将Excel视为有点像网页,即只提取所需数据并使用特定表格进行编辑,通过ADO一次更新一条记录。您只需要锁定单个记录,并且只需要更新所需的时间。您可以检查记录是否已更改,因为它已打开进行编辑,并且可以告诉用户他们无法打开记录进行编辑,然后将其保留在编辑表单中,否则他们可能会丢失更改。

这样一个小组通常不太可能需要同时更改同一记录。

我不认为25个并发用户会遇到很多问题。