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

7
假设您有一个包含大约200,000行的最大表格的数据库,并经常进行修改。客户希望Excel通过ODBC连接到数据库,并作为前端来管理数据。数据应该可以同时由多达25个用户进行修改。
我的第一反应是建议使用其他解决方案,例如Web前端。但是假设客户坚持使用Excel解决方案,您认为这可行吗?您会看到哪些陷阱?
我对以下事项存在疑虑:
1.数据完整性(如何管理多个用户同时修改同一数据) 2.大量不必要地移动数据(打开Excel工作簿时,我想整个数据库都必须被传输) 3.安全性(以安全方式仅向适当的用户显示部分数据将是具有挑战性的-请参见上一个问题) 4.使用工具(Excel)处理其并不擅长的事情(请原谅我用了一句俏皮话)

由于我也像詹姆斯一样误读了标题,所以我试图修复它和正文中的句子。 - David Schmitt
谢谢,显然措辞有点不清楚。 - simon
这将主要涉及编辑还是主要分析/查看? - Fionnuala
2个回答

5
我经常这样做。您不需要带入整个数据库甚至整个表格。我使用ADO和VBA,并通过Command对象发送SQL语句。例如,我有一个版税数据库,具有Excel前端。
用户键入发票号码,SELECT语句检索该记录并填充一些自定义类。用户输入/修改一些数据,然后单击“保存”。然后,类具有一个方法,根据情况将记录写回数据库,使用UPDATE或INSERT。
在月底,用户输入日期范围并检索一些记录到报告中,再次只是使用SELECT语句填充一些类并输出到工作表。
使用事务,以便如果遇到任何记录锁定问题,您可以回滚,但是对于25个用户,您可能不需要。

2
乍一看,我建议将Excel视为网页处理,即仅提取所需数据并使用特定表单进行编辑,通过ADO逐个更新记录。您只需要锁定一个记录,并且仅需要在更新时的一小段时间内进行锁定。您可以检查记录自打开以来是否已更改,用户可以被告知他们不能打开记录进行编辑,然后将其留在编辑表单中,否则他们可能会失去更改。
通常这样的小组很少需要同时更改同一条记录。
我认为你不会遇到25个并发用户的太多问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接