Access/EXCEL表格数据交换工具 V2版介绍

Access/EXCEL表格数据交换工具 V2版 是一套基于 Excel/WPS VBA + ADO 的 Access 数据库与 Excel/WPS 表格之间的数据交换工具,主要用于解决 Access 数据库表结构复杂、字段较多、手工导入导出容易出错、数据库路径不固定、字段映射维护困难等问题。

工具支持选择任意 MDB / ACCDB 数据库文件,自动扫描数据库对象,自动生成表配置和字段配置,并可按照配置将 Access 表或查询导出到 Excel/WPS 工作表,也可以将修改后的 Excel/WPS 数据按字段映射重新导入 Access 数据库。

相比传统手工复制、Access 导入导出向导或固定代码导入方式,本工具具有更高的通用性和安全性:

  • 不再固定绑定某一个数据库文件;
  • 不再依赖固定字段顺序;
  • 支持字段映射;
  • 支持指定字段导入;
  • 支持导入前自动备份;
  • 支持 Replace / Append 两种导入模式;
  • 支持 Excel 与 WPS 常见办公环境。

经过多轮优化,目前版本已达到 V2 实用稳定版,适合日常办公、业务系统维护、考勤数据处理、Access 数据库辅助维护、Excel/WPS 二次编辑后回写等场景。


📌 核心功能一览

功能 说明
选择任意数据库 支持选择任意 .mdb / .accdb Access 数据库文件
自动刷新数据库结构 自动扫描 Access 中的表、查询、链接表等对象
自动生成表配置 自动写入 Config_Tables,形成可维护的表清单
自动生成字段配置 自动写入 Config_Fields,形成字段映射表
字段映射导出 Config_Fields 指定字段导出,不依赖表字段顺序
字段映射导入 按字段名插入 Access,避免 SELECT * 顺序错乱风险
支持中文表头 Excel 表头可与 Access 字段名不同
支持必填校验 可配置字段是否必填,导入前自动检查
自动编号字段保护 自动编号字段默认不参与导入,降低主键冲突风险
导入前自动备份 每次导入前自动备份数据库,防止误操作
Replace 导入模式 清空目标表后重新导入
Append 导入模式 不清空原表,直接追加数据
批量导出 支持批量导出 TableType=1 的常用表
对象清单导出 可导出 Access 实际对象清单,辅助排查数据库结构
参数集中管理 通过 Config_Settings 管理数据库路径和工具参数
按钮操作中心 按钮统一放在 Config_Settings 页面,配置表更清爽
WPS/Excel 双兼容 使用 ADO 后期绑定,兼容常见 Excel/WPS VBA 环境

⚙️ 工作表结构说明

V2版采用配置驱动结构,主要包含以下工作表:

工作表 用途
Config_Settings 参数配置与按钮操作中心
Config_Tables Access 表/查询对象配置
Config_Fields Access 字段与 Excel 表头映射配置
Access_Objects Access 数据库对象清单输出表
Data_表名 从 Access 导出的数据工作表
Backup 文件夹 自动保存导入前的数据库备份文件

🧭 Config_Settings 参数配置表

Config_Settings 是 V2版的操作中心和参数配置中心。按钮统一放在该工作表右侧,避免占用 Config_TablesConfig_Fields 的配置区域。

参数结构

字段 说明
Key 参数名称
Value 参数值
Remark 参数说明

常用参数

Key Value 示例 说明
DatabasePath D:\Data\DBBASE.MDB 当前 Access 数据库完整路径
ExcelDataPrefix Data_ 导出数据工作表前缀
AutoBackupBeforeImport 1 导入前是否自动备份
DefaultImportMode Replace 默认导入模式
LastBackupPath D:\Backup\DB_20260108.mdb 最后一次备份文件路径

📋 Config_Tables 表配置说明

Config_Tables 用于保存 Access 数据库对象清单和导入导出控制参数。

字段 说明
A列 TableName Access 表名或查询名
B列 Info 中文说明或备注
C列 TableType 是否参与批量导出,1=参与0=不参与
D列 ImportMode 导入模式,支持 Replace / Append
E列 KeyFields 主键字段,预留给后续 Update / Upsert 模式
F列 AllowImport 是否允许导入,1=允许0=禁止
G列 ObjectType Access 对象类型,如 TABLEVIEW
H列 SheetName 对应 Excel/WPS 数据工作表名称

TableType 说明

含义
0 普通对象,不参与批量导出
1 常用对象,参与批量导出

ImportMode 说明

模式 含义
Replace 导入前先清空 Access 目标表,再重新导入
Append 不清空目标表,直接追加数据

🧩 Config_Fields 字段配置说明

Config_Fields 是本工具的核心配置表,用于控制 Access 字段与 Excel/WPS 表头之间的映射关系。

字段 说明
A列 TableName 所属 Access 表名或查询名
B列 AccessField Access 中的真实字段名
C列 ExcelHeader Excel/WPS 中显示的表头名称
D列 ImportFlag 是否导入,1=导入0=不导入
E列 RequiredFlag 是否必填,1=必填0=非必填
F列 FieldType 字段类型代码
G列 FieldSize 字段长度
H列 IsAutoNumber 是否自动编号字段
I列 DefaultValue 默认值
J列 Remark 字段备注

字段映射示例

TableName AccessField ExcelHeader ImportFlag RequiredFlag
PersInfo EmpNo 工号 1 1
PersInfo Name 姓名 1 1
PersInfo Dept 部门 1 0
PersInfo ID ID 0 0

说明:

  • AccessField 是 Access 数据库真实字段名;
  • ExcelHeader 是导出到 Excel/WPS 后显示的表头;
  • 两者可以相同,也可以不同;
  • 自动编号字段建议 ImportFlag=0
  • 业务必填字段建议 RequiredFlag=1

🚀 操作流程

第一步:创建或重建按钮

首次使用时,运行宏:

1
CreateConfigTableButtons

程序会在 Config_Settings 页面创建操作按钮,包括:

1
2
3
4
5
6
7
8
9
10
11
12
13
选择数据库
刷新结构
生成字段
导出当前表
导入当前表
批量导出
备份数据库
检查配置
对象清单
参数配置
表配置
字段配置
重建按钮

按钮统一放在 Config_Settings,这样 Config_TablesConfig_Fields 可以专门用于维护配置数据。


第二步:选择 Access 数据库

点击按钮:

1
选择数据库

或运行宏:

1
SelectDatabaseFile

程序会弹出文件选择窗口,选择目标 Access 数据库文件:

1
2
.mdb
.accdb

选择完成后,数据库完整路径会写入:

1
Config_Settings → DatabasePath

如果 WPS 环境不支持文件选择窗口,程序会自动降级为输入框方式,让用户手动输入数据库完整路径。


第三步:刷新数据库结构

点击按钮:

1
刷新结构

或运行宏:

1
RefreshDatabaseStructure

程序会自动完成两件事:

  1. 扫描当前数据库中的表、查询、链接表等对象;
  2. 自动补充 Config_TablesConfig_Fields

刷新后会生成类似结构:

1
2
Config_Tables:保存表清单
Config_Fields:保存字段清单

如果数据库中存在系统表、临时对象或不可读取对象,工具会自动跳过或提示失败明细。


第四步:检查和调整表配置

进入 Config_Tables,检查每个表的配置。

常用调整项包括:

字段 建议
Info 填写中文说明,方便识别
TableType 常用导出表设为 1
ImportMode 根据需要设为 ReplaceAppend
AllowImport 不允许回写的表设为 0
SheetName 可自定义导出的工作表名称

示例:

TableName Info TableType ImportMode AllowImport SheetName
TableB 测试数据表 1 Replace 1 Data_TableB
PersInfo 人事资料表 1 Append 1 Data_PersInfo
QueryA 查询视图 1 Replace 0 Data_QueryA

第五步:检查和调整字段配置

进入 Config_Fields,检查字段映射。

重点关注:

字段 说明
ExcelHeader 可以改成中文表头
ImportFlag 控制该字段是否参与导入
RequiredFlag 控制导入前是否检查不能为空
IsAutoNumber 自动编号字段一般不导入

例如:

1
2
3
4
AccessField: EmpNo
ExcelHeader: 工号
ImportFlag: 1
RequiredFlag: 1

导出后 Excel/WPS 表头显示为:

1
工号

导入时工具会自动按字段映射写回:

1
AccessField = EmpNo

第六步:导出当前表

Config_Tables 中选中要导出的表所在行,然后返回 Config_Settings,点击按钮:

1
导出当前表

或运行宏:

1
ExportSelectedTable

程序会根据 Config_Fields 配置生成 SQL:

1
SELECT [字段1], [字段2], [字段3] FROM [表名]

并导出到对应工作表:

1
Data_表名

如果 Config_Tables 中配置了 SheetName,则优先使用配置的工作表名称。


第七步:修改 Excel/WPS 数据

导出后,可以直接在 Data_表名 工作表中修改数据。

注意:

  • 第一行是表头,不要随意删除;
  • 表头名称应与 Config_Fields.ExcelHeader 保持一致;
  • 必填字段不能为空;
  • 自动编号字段通常不建议修改或导入;
  • 不建议随意改变列名,除非同步修改 Config_Fields

第八步:导入当前表

Config_Tables 中选中对应表所在行,然后返回 Config_Settings,点击按钮:

1
导入当前表

或运行宏:

1
ImportSelectedTable

导入前程序会自动执行:

  1. 检查是否允许导入;
  2. 检查数据工作表是否存在;
  3. 检查表头是否完整;
  4. 检查必填字段;
  5. 自动备份当前 Access 数据库;
  6. 根据 ImportMode 执行导入。

导入模式说明:

1
2
Replace:先清空目标表,再导入
Append :不清空目标表,直接追加

导入完成后会提示:

  • 导入表名;
  • 导入模式;
  • 导入行数;
  • 数据库备份路径。

📊 输出结果

Config_Tables 输出

字段 内容
TableName Access 对象名称
Info 中文说明
TableType 是否参与批量导出
ImportMode 导入模式
AllowImport 是否允许导入
ObjectType Access 对象类型
SheetName 对应工作表名称

Config_Fields 输出

字段 内容
TableName 所属表
AccessField Access 字段名
ExcelHeader Excel/WPS 表头
ImportFlag 是否导入
RequiredFlag 是否必填
FieldType 字段类型
FieldSize 字段长度
IsAutoNumber 是否自动编号
DefaultValue 默认值
Remark 备注

Data_表名 输出

输出位置 内容
第一行 ExcelHeader 表头
第二行起 Access 数据记录
工作表名称 默认 Data_表名 或配置的 SheetName

Backup 输出

每次导入前会自动生成数据库备份文件,例如:

1
Backup\DBBASE_20260108_150921.MDB

这样即使导入数据有误,也可以通过备份文件恢复。


🔍 功能详解

1. 任意数据库选择

V2版不再固定绑定某个数据库文件名。

用户可以通过按钮选择:

1
2
MDB
ACCDB

数据库路径会保存到:

1
Config_Settings.DatabasePath

这使得工具可以适配不同项目、不同业务系统、不同 Access 数据库,不需要每次修改 VBA 代码。


2. 自动扫描 Access 对象

工具会读取 Access 数据库中的对象清单,并自动生成 Config_Tables

可识别对象包括:

1
2
3
4
5
TABLE
VIEW
LINK
PASS-THROUGH
ACCESS TABLE

同时会自动过滤常见系统对象,例如:

1
2
3
MSys 开头的系统表
~ 开头的临时对象
部分 Access 内部对象

这样生成的表清单更加干净,便于用户维护。


3. 自动生成字段映射

V2版会对 Config_Tables 中的对象逐一读取字段,并写入 Config_Fields

字段配置默认规则:

项目 默认值
ExcelHeader 等于 AccessField
ImportFlag 普通字段为 1
RequiredFlag 默认 0
IsAutoNumber 自动识别或默认 0
Remark 留空

用户可以后续手动修改中文表头、是否导入、是否必填等配置。


4. 指定字段导出

传统导出常见写法是:

1
SELECT * FROM TableB

这种方式依赖字段顺序,一旦表结构变化,后续导入可能出现错位。

V2版改为:

1
SELECT [字段1], [字段2], [字段3] FROM [表名]

字段来自 Config_Fields,更加稳定、清晰、可控。


5. 指定字段导入

导入时,V2版使用类似方式:

1
2
3
INSERT INTO [表名] ([字段1], [字段2], [字段3])
SELECT [表头1], [表头2], [表头3]
FROM [Excel数据表]

这样即使 Excel/WPS 中列顺序发生变化,只要表头名称和配置一致,也能正确导入。

这比直接使用:

1
INSERT INTO TableB SELECT * FROM ExcelSheet

更加安全。


6. 支持中文表头

Access 字段名往往是英文、拼音或系统字段,例如:

1
2
3
4
EmpNo
DeptID
CardNo
AttenDate

用户可以在 Config_Fields.ExcelHeader 中改成更容易理解的中文:

1
2
3
4
工号
部门
卡号
考勤日期

导出后工作表显示中文表头,导入时仍自动映射回 Access 字段名。


7. 必填字段校验

如果某些字段导入时不能为空,可以设置:

1
RequiredFlag = 1

导入前程序会自动检查:

  • 是否存在该表头;
  • 对应列是否存在空值;
  • 如果发现空值,会提示具体行号和字段名。

适合控制:

1
2
3
4
5
6
工号
姓名
日期
编号
卡号
部门

等关键字段。


8. 自动编号字段保护

Access 表中常见自动编号字段,例如:

1
2
3
ID
AutoID
RecordID

这类字段通常不应该从 Excel/WPS 导入,否则容易出现主键冲突或自动编号异常。

V2版在字段配置中增加:

1
IsAutoNumber

并在导入字段映射时默认跳过自动编号字段,降低导入风险。


9. 导入前自动备份

导入操作存在风险,尤其是 Replace 模式会先清空目标表。

V2版在导入前自动执行数据库备份:

1
2
Backup\数据库名_年月日_时分秒.mdb
Backup\数据库名_年月日_时分秒.accdb

如果导入结果不符合预期,可以使用备份文件恢复。


10. Replace / Append 双模式

V2版支持两种常用导入模式。

模式 说明 适合场景
Replace 清空目标表后重新导入 全量更新、重新整理基础资料
Append 直接追加到目标表 增量导入、日志追加、批次数据导入

后续版本可继续扩展:

1
2
Update:按主键更新
Upsert:有则更新,无则新增

11. 批量导出常用表

如果 Config_Tables.TableType=1,该表会参与批量导出。

运行宏:

1
ExportType1Tables

或点击按钮:

1
批量导出

工具会逐个导出常用表,即使某个表失败,也不会中断全部任务,而是汇总失败信息。


12. 对象清单辅助检查

运行:

1
ExportAccessObjectList

或点击按钮:

1
对象清单

工具会输出当前数据库中实际可识别的 Access 对象到:

1
Access_Objects

用于排查:

  • 是否选错数据库;
  • 数据库里是否存在目标表;
  • 表名是否拼写错误;
  • Access 对象类型是否符合预期。

🧩 导入导出规则优先级

执行导出时,程序按以下规则判断:

  1. 当前选中行必须能识别出 TableName
  2. 优先读取 Config_Tables.SheetName
  3. 如果 SheetName 为空,则使用 ExcelDataPrefix + TableName
  4. 字段列表来自 Config_Fields
  5. 导出时读取该表全部配置字段;
  6. 自动生成或清空对应数据工作表;
  7. 第一行写入 ExcelHeader
  8. 第二行起写入 Access 数据。

执行导入时,程序按以下规则判断:

  1. 当前选中行必须能识别出 TableName
  2. AllowImport 必须为 1
  3. 数据工作表必须存在;
  4. Config_Fields.ImportFlag=1 的字段参与导入;
  5. IsAutoNumber=1 的字段默认跳过;
  6. Excel/WPS 表头必须匹配 ExcelHeader
  7. RequiredFlag=1 的字段不能为空;
  8. 导入前自动备份数据库;
  9. 根据 ImportMode 执行 ReplaceAppend
  10. 导入完成后提示行数和备份路径。

📅 版本演进

版本 核心改进
v2.0 增加数据库选择、结构刷新、字段配置、按钮操作中心、Replace/Append 导入模式
v1.8 增加导入前自动备份、必填字段检查、表头检查
v1.6 增加指定字段导入,避免 SELECT * 字段顺序风险
v1.5 增加 Config_TablesConfig_Fields 配置表
v1.3 增加批量导出 TableType=1
v1.2 优化 WPS 兼容,改用 ADO 后期绑定
v1.0 初始版本,支持 Access 表导出到 Excel 与 Excel 导入 Access

当前版本:v2.0 Production 实用稳定版


🔧 常用宏入口

宏名称 功能
CreateConfigTableButtons Config_Settings 创建操作按钮
SelectDatabaseFile 选择 Access 数据库文件
RefreshDatabaseStructure 刷新数据库结构并生成配置
GenerateConfigFields 根据表清单生成字段配置
ExportSelectedTable 导出当前选中的 Access 表
ImportSelectedTable 将当前数据工作表导入 Access
ExportType1Tables 批量导出 TableType=1 的表
BackupDatabase 手动备份当前数据库
CheckSelectedTableConfig 检查当前表配置
ExportAccessObjectList 导出 Access 对象清单

🖱️ 按钮说明

按钮统一位于:

1
Config_Settings
按钮 功能
选择数据库 选择 MDB / ACCDB 文件
刷新结构 自动生成或补充表配置与字段配置
生成字段 单独刷新字段配置
导出当前表 导出 Config_Tables 当前选中表
导入当前表 将对应数据工作表导入 Access
批量导出 批量导出 TableType=1 的表
备份数据库 手动备份当前数据库
检查配置 检查当前表字段、表头、导入模式
对象清单 输出 Access 实际对象清单
参数配置 跳转到 Config_Settings
表配置 跳转到 Config_Tables
字段配置 跳转到 Config_Fields
重建按钮 重新生成按钮

💡 常见问题

Q:为什么刷新结构后只看到一个表?
A:请先检查是否选对了数据库。可以点击 对象清单,查看当前数据库实际包含哪些 Access 对象。

Q:为什么生成字段配置时部分表失败?
A:可能是查询需要参数、对象不可读取、链接表失效、权限不足或对象名称异常。可以查看失败明细,并用 对象清单 辅助判断。

Q:为什么导入时提示找不到数据工作表?
A:请先执行 导出当前表,生成对应的 Data_表名 工作表,或检查 Config_Tables.SheetName 是否填写正确。

Q:为什么导入时提示缺少导入列?
A:Excel/WPS 第一行表头必须与 Config_Fields.ExcelHeader 一致。如果修改过表头,请同步修改字段配置。

Q:为什么自动编号字段没有导入?
A:自动编号字段通常不应导入,工具会根据 IsAutoNumber 默认跳过,避免主键冲突。

Q:Replace 和 Append 有什么区别?
A:Replace 会先清空目标表再导入,适合全量更新;Append 不清空原表,适合追加新数据。

Q:导入错了怎么办?
A:工具会在导入前自动备份数据库,可以从 Backup 文件夹中找到导入前的备份文件恢复。

Q:WPS 中可以使用吗?
A:可以。工具使用 ADO 后期绑定,不强制引用 ADO 库;文件选择窗口不可用时会自动使用输入框方式选择数据库路径。

Q:为什么按钮没有反应?
A:请确认宏已启用,并检查按钮是否正确绑定到 Btn_ 开头的入口宏,例如 Btn_ExportSelectedTable

Q:为什么出现“二义性名称”?
A:通常是同一个模块里存在两个同名过程,例如两个 CreateConfigTableButtons。删除旧版重复过程,只保留新版过程即可。


⚠️ 注意事项

  1. 使用前请先保存当前工作簿。
  2. 第一次使用建议先点击 选择数据库
  3. 导入前请确认 Config_Tables.AllowImport=1
  4. Replace 模式会清空目标表,务必确认已备份。
  5. 自动编号字段一般不要导入。
  6. 修改 Excel/WPS 表头后,请同步检查 Config_Fields.ExcelHeader
  7. 必填字段如果为空,程序会阻止导入。
  8. 不建议对 Access 查询对象执行导入,除非该查询本身可更新。
  9. 如果数据库被其他程序占用,导入或备份可能失败。
  10. .mdb 在 64位 WPS/Office 环境下可能需要安装 ACE OLEDB 驱动。
  11. 如果 FileDialog 在 WPS 中不可用,可手动输入数据库路径。
  12. 建议定期清理 Backup 文件夹,避免备份文件过多。
  13. 不建议直接删除 Config_TablesConfig_Fields,可通过刷新结构补充配置。
  14. 导入正式业务数据库前,建议先复制一份数据库进行测试。

🛠️ 适用场景

场景 示例
Access 数据库维护 批量导出表数据到 Excel 修改后回写
考勤系统数据处理 导出人事、考勤、班次、请假等表辅助编辑
基础资料整理 对客户、人员、部门、物料等基础表进行维护
批量数据修正 在 Excel/WPS 中批量修改字段后导入
数据迁移辅助 从旧 Access 数据库导出并整理字段
业务系统辅助维护 对 MDB/ACCDB 后台数据进行可视化维护
查询结果导出 将 Access 查询结果导出为 Excel/WPS 表格
数据核对 将多个表导出后进行比对、筛选、检查
办公自动化 替代手工 Access 导入导出操作
WPS 环境数据处理 在没有完整 Office 的环境下辅助维护 Access 数据

🧪 推荐使用流程

1
2
3
4
5
6
7
8
9
10
11
12
1. 打开工具工作簿
2. 启用宏
3. 运行 CreateConfigTableButtons
4. 在 Config_Settings 点击【选择数据库】
5. 点击【刷新结构】
6. 检查 Config_Tables
7. 检查 Config_Fields
8. 在 Config_Tables 选中目标表
9. 回到 Config_Settings 点击【导出当前表】
10. 修改 Data_表名 工作表
11. 回到 Config_Settings 点击【导入当前表】
12. 查看导入结果和备份文件

🔐 数据安全设计

V2版特别强化了导入安全:

安全机制 说明
导入前确认 导入前弹窗显示表名、模式、行数
自动备份 导入前自动复制数据库文件
AllowImport 控制 可禁止某些表导入
ImportFlag 控制 可禁止某些字段导入
自动编号保护 自动编号字段默认跳过
必填校验 防止关键字段为空
表头校验 防止导错列或字段错位
Replace/Append 明确提示 避免误清空数据
失败提示 失败时显示具体错误原因

🔮 后续可扩展方向

V2版已经预留部分结构,后续可以继续扩展:

方向 说明
Update 模式 按主键更新已有记录
Upsert 模式 有则更新,无则新增
字段类型校验 按日期、数字、文本长度自动检查
默认值填充 空值自动填入默认值
导入日志 记录每次导入时间、用户、行数、结果
权限控制 对不同用户限制导入权限
字段备注读取 从 Access 字段说明中读取备注
数据差异对比 导入前比较 Excel 与 Access 差异
多数据库管理 支持保存多个数据库路径方案
一键恢复备份 从 Backup 文件夹选择备份并恢复

Access/EXCEL表格数据交换工具 V2版 - 下载地址

选择任意一个下载地址并点击,输入通行密钥 Access password,打开下载页面后在右上角点击下载按钮(如未出现按钮请刷新页面)


📞 技术支持

官网:

求助建议: http://xlcs.de/
邮件联系: admin@fdc.sd


📷 模块展示

Access/EXCEL表格数据交换工具


XLCS — 让全成本测算更智能