【发布时间】:2018-11-13 04:11:58
【问题描述】:
我正在尝试在 Access 2010 中创建更新查询,以从用户的本地副本更新我们共享驱动器上的重复表。
Access 程序本身使用通常的拆分前端/后端。
由于 VPN 经常掉线,我们想出了一个方法:
- 将前端的最新版本和后端的副本下载到用户的本地驱动器
- 然后运行本地前端/后端(两个链接)
- 然后使用 VBA 更新本地和网络位置上的单个记录,除非网络驱动器不可用,然后它将更新的数据转储到一个数组中,以便在程序关闭时再次尝试。
我有两个相同的表(一个在本地,一个在网络上),我需要创建一个更新查询来将本地表中所做的任何更改更新到网络上的一个,以便可以将其存储在为他们机器上的下一个用户提供网络数据库。
UPDATE HiringMgrData As NetworkHiringMgrData IN '\\ServerName\FilePath\HREmails_be.accdb'
SET NetworkHiringMgrData.UserName = HiringMgrData.UserName,
NetworkHiringMgrData.UserPhone = HiringMgrData.UserPhone,
NetworkHiringMgrData.UserEmail = HiringMgrData.UserEmail
WHERE NetworkHiringMgrData.ID IN (SELECT ID FROM HiringMgrData)
当它到达 SET 语句时,这给了我一个错误,并且单击只会使网络表中的字段空白。
我试图“欺骗”Access 将网络数据库中的表视为 NetworkHiringMgrData,同时将表名保留在本地数据库 HiringMgrData 中,希望 Access 能够区分两者。
实际上,本地和网络数据库都有一个名为 HiringMgrData 的表,其字段名称为 ID、UserName、UserPhone 和 UserEmail。
我能够让附加查询工作使用:
INSERT INTO HiringMgrData IN '\\ServerName\FilePath\HREmails_be.accdb'
SELECT HiringMgrData.*
FROM HiringMgrData;
这只是将本地数据库中 HiringMgrData 表中的任何新记录添加到网络数据库中的 HiringMgrData 表中,但我无法更新现有记录。
【问题讨论】: