代码之家  ›  专栏  ›  技术社区  ›  simon

同时使用Excel作为前端访问数据库?

  •  7
  • simon  · 技术社区  · 15 年前

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

    我的第一反应是推荐其他东西,例如Web前端。但是假设客户坚持使用Excel解决方案,你会认为它是可行的吗?你会从中看到什么陷阱?

    我的疑问是:

    1. 数据完整性(如何管理同时修改同一数据的用户)
    2. 大量数据不必要地移动(打开Excel工作簿时,我认为必须传输整个数据库)
    3. 安全性(仅以安全的方式向适当的用户显示部分数据将具有挑战性-请参阅上一点)
    4. 用一个工具(excel)做一些不擅长的事情(请原谅这个双关语)
    2 回复  |  直到 15 年前
        1
  •  5
  •   Dick Kusleika    15 年前

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

    用户在发票编号和select语句中键入一条记录并填充一些自定义类。用户输入/修改一些数据并单击“保存”。然后类有一个方法,该方法使用将记录写回数据库,并根据情况更新或插入记录。

    在月底,用户输入一个日期范围并将一些记录检索到报表中,同样地,只需要一个select语句来填充一些类并输出到工作表中。

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

        2
  •  2
  •   Fionnuala    15 年前

    乍一看,我建议将Excel视为一个网页,也就是说,只提取所需的数据,并使用特定的表单进行编辑,通过ADO一次更新一条记录。您只需要锁定一条记录,并且只需要花费少量的时间来更新。您可以检查记录在打开进行编辑后是否发生了更改,并告诉用户不能打开要编辑的记录,然后将其留在编辑表单中,否则可能会丢失更改。

    这样一小部分人通常不太可能同时改变同一个记录。

    我认为25个并发用户不会给您带来太多麻烦。