使用 MS Access 导出、外部修改然后重新导入数据

使用 MS Access 导出、外部修改然后重新导入数据

我正在与一位客户合作,他有一个大型的旧版 MS Access“应用程序”,其中包含数十个数据库表。目前,只有一个人可以一次更新数据库,因为它是非分布式的;独立于单个工作站。考虑到 MS Access 应用程序的大小和复杂性,我们无法完全重写它 - 因此客户要求我们通过 Web 应用程序更新某些表,在更新阶段开始和结束时导入和导出数据。

我们的任务是开发以下工作流程:

  • 在数据更新过程开始时,以中间格式(CSV、XML 等)从必要的 Access 表中导出相关数据
  • 将数据导入由 MySQL 提供支持的 Web 应用程序
  • 在固定期限内,允许多个用户通过 Web 应用同时更新数据
  • 在数据更新过程结束时,以中间格式从 MySQL 导出数据
  • 将数据导回 MS Access

但是,我找不到合适的机制来启用最后阶段。没有 Access 导入选项似乎允许您更新现有记录以及添加新记录 - 您可以将数据导入新表,以及将新记录附加到现有表,但不能根据主键更新现有记录。正如 Access 在其所有Import选项中所说的那样...

Changes made to the source data will not be reflected in the database

我是否遗漏了某个导入选项的某些内容?还有哪些其他方法?

答案1

过去,在这种情况下,我将导入/更新分为几个步骤

  1. 将数据附加到空的“临时”表中

  2. 创建/运行更新查询,连接目标和源/临时表

  3. 创建/运行附加查询、左外连接目标和源/临时表(目标键=null)

  4. (可选)将临时表附加到历史表

  5. 截断临时表

这些步骤可以通过宏轻松实现自动化。

相关内容