假设您拥有一个包含大约200,000行的最大表的数据库,并且经常进行修改。客户端希望Excel通过ODBC连接到数据库,并作为前端来管理数据。数据最多可同时由多达25个用户修改。
我的第一直觉是推荐别的东西,例如网络前端。但是假设客户坚持使用Excel解决方案,您认为它是否可行,您会看到哪些陷阱?
我的怀疑是:
答案 0 :(得分:5)
我一直这样做。不,你不必带入整个数据库甚至整个表。我使用ADO和VBA并通过Command对象发送SQL语句。例如,我有一个带有Excel前端的版税数据库。
用户键入发票编号,SELECT语句检索该记录并填充一些自定义类。用户输入/修改一些数据并单击“保存”。然后该类有一个方法,根据情况将记录写回数据库和UPDATE或INSERT。
在月末,用户输入日期范围并将一些记录检索到报告中,再次只是填充某些类并输出到工作表的SELECT语句。
使用事务处理,以便在遇到任何记录锁定问题时可以回滚,但有25个用户可能不会回滚。
答案 1 :(得分:2)
乍一看,我建议将Excel视为有点像网页,即只提取所需数据并使用特定表格进行编辑,通过ADO一次更新一条记录。您只需要锁定单个记录,并且只需要更新所需的时间。您可以检查记录是否已更改,因为它已打开进行编辑,并且可以告诉用户他们无法打开记录进行编辑,然后将其保留在编辑表单中,否则他们可能会丢失更改。
这样一个小组通常不太可能需要同时更改同一记录。
我不认为25个并发用户会遇到很多问题。