以Excel作为前端同时访问数据库 – 可行吗?

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

我的第一本能是推荐别的东西,比如网页前台。 但是假设客户坚持Excel的解决scheme,你会认为这是可行的,你会看到什么陷阱?

我的疑惑是关于:

  1. 数据完整性(如何pipe理用户同时修改相同的数据)
  2. 大量的数据不必要地移动(当打开Excel工作簿时,我想象整个数据库必须被传送)
  3. 安全性(以安全的方式仅向适当的用户显示部分数据将是具有挑战性的 – 见前面的观点)
  4. 使用工具(Excel)的东西,它不擅长(赦免双关语)

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

用户键入一个发票号码,一个SELECT语句检索一个logging并填充一些自定义类。 用户input/修改一些数据并点击“保存”。 然后类有一个方法,写入logging回到数据库与UPDATE或INSERT取决于情况。

在月末,用户input一个date范围,并将一些logging检索到一个报告中,再次只是一个SELECT语句填充一些类并输出到一个表。

使用事务,所以你可以回滚,如果你打任何logginglocking问题,但25用户可能不会。

乍一看,我会build议对待Excel有点像一个网页,即只拉取所需的数据,并使用特定的forms进行编辑,通过ADO一次更新一个logging。 您只需要locking一条logging,并且只需要一小部分时间来更新。 您可以检查logging是否因为打开编辑而发生了变化,用户可能被告知无法打开logging进行编辑,然后将其放在编辑表单中,或者可能会丢失更改。

这样一个小组通常不太可能需要同时更改相同的logging。

我不认为你会有25个并发用户的麻烦。