如何配置MS Access(2016)前端连接PostgreSQL后端并同步考勤数据?
好的,既然你已经搞定了PostgreSQL ODBC驱动的安装,接下来咱们一步步完成MS Access 2016到PostgreSQL的连接与数据同步,步骤都很明确:
1. 配置PostgreSQL ODBC系统数据源(DSN)
这一步是让Windows系统识别你的PostgreSQL数据库,方便Access调用:
- 打开ODBC数据源管理器:可以通过控制面板的「管理工具」找到,或者直接搜索
odbcad32.exe(划重点:Access 2016默认是32位,一定要用32位的ODBC管理器,64位的会不兼容) - 切换到「系统DSN」标签页,点击「添加」按钮
- 在驱动列表里选择PostgreSQL Unicode(优先选Unicode版本,避免中文等非ASCII字符的编码乱码问题),然后点「完成」
- 填写数据源配置信息:
- 数据源名称:起个好记的名字,比如
Access_Attendance_PG - 服务器:PostgreSQL服务器地址,本地部署的话填
localhost或127.0.0.1 - 端口:默认是
5432,没修改过的话直接用这个 - 数据库:提前在PostgreSQL中创建好的目标数据库名称(必须先建好空库,不然连不上)
- 用户名称:PostgreSQL的登录用户名,比如默认的
postgres - 密码:对应用户的登录密码
- 数据源名称:起个好记的名字,比如
- 点击「测试」按钮验证连接,成功的话依次点「确定」保存配置
2. 在MS Access中链接PostgreSQL数据源
现在让Access和PostgreSQL建立关联:
- 打开你的Access考勤表数据库
- 切换到「外部数据」选项卡,找到「ODBC数据库」按钮(在「导入并链接」分组里)
- 选择「链接到数据源,创建链接表」,然后点「确定」
- 在「选择数据源」窗口切换到「机器数据源」标签页,选中你刚才创建的系统DSN,点「确定」
- 输入PostgreSQL的用户名和密码(如果之前没保存密码),确认后就能看到PG数据库里的表(空库的话会显示为空),点击「确定」完成链接
3. 迁移现有考勤表数据到PostgreSQL
把Access里的历史数据导过去,有两种常用方法:
- 方法一:直接导入向导(适合全量迁移)
- 回到Access的「外部数据」选项卡,再次点击「ODBC数据库」,这次选择「导入数据源到当前数据库的新表中」,选中你的DSN
- 选择要迁移的考勤表,跟着向导设置导入选项(比如是否保留主键、索引),完成后数据就会同步到PostgreSQL的对应表中
- 方法二:追加查询(适合增量或筛选迁移)
- 先在PostgreSQL中创建和Access考勤表结构匹配的表(注意字段类型对应:Access的
Text对应PG的varchar,Date对应timestamp,Number对应int/numeric等) - 在Access中创建追加查询:
- 打开「创建」选项卡,选择「查询设计」
- 添加本地的考勤表,关闭显示表窗口
- 在「设计」选项卡的「查询类型」组里,切换为「追加」查询
- 选择链接的PostgreSQL目标表,点击「确定」
- 把需要迁移的字段从本地表拖到查询设计网格,确保字段一一对应
- 运行查询,确认数据成功追加到PG表中
- 先在PostgreSQL中创建和Access考勤表结构匹配的表(注意字段类型对应:Access的
4. 设置定期自动数据同步(可选)
如果需要后续自动同步新增/修改的考勤数据,可以这么做:
- 方法一:Access宏+Windows任务计划
- 设计一个宏,添加「运行查询」操作,执行你创建的增量追加查询(记得给查询加条件,比如
WHERE 考勤日期 > (SELECT MAX(考勤日期) FROM [链接的PG考勤表]),只同步新数据) - 保存宏后,用Windows任务计划程序定期打开Access并运行这个宏,实现自动同步
- 设计一个宏,添加「运行查询」操作,执行你创建的增量追加查询(记得给查询加条件,比如
- 方法二:Access数据宏
- 如果你的Access数据库是
.accdb格式(2010+版本支持),可以在本地考勤表上创建数据宏,当有新记录添加或修改时,自动同步到链接的PostgreSQL表中,实时性更好
- 如果你的Access数据库是
内容的提问来源于stack exchange,提问作者Sajeev
相关产品推荐
相关产品推荐

