【问题标题】:Update duplicate table in network location from local copy从本地副本更新网络位置中的重复表
【发布时间】: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 表中,但我无法更新现有记录。

【问题讨论】:

    标签: sql vba ms-access


    【解决方案1】:

    试试下面的。我试图在我的 MS Access 数据库上做类似的事情,出于某种原因,这对我有用,而不是使用 IN 'network path'

    UPDATE [\\ServerName\FilePath\HREmails_be.accdb].HiringMgrData As NetworkHiringMgrData inner join HiringMgrData as LocalHiringMgrData on NetworkHiringMgrData.ID = LocalHiringMgrData.ID SET NetworkHiringMgrData.UserName = LocalHiringMgrData.UserName, NetworkHiringMgrData.UserPhone = LocalHiringMgrData.UserPhone, NetworkHiringMgrData.UserEmail = LocalHiringMgrData.UserEmail;

    【讨论】:

      【解决方案2】:

      我认为您的WHERE 子句是错误的,应该是

      WHERE NetworkHiringMgrData.ID = HiringMgrData.ID;
      


      请注意,随着所有记录的更新,这可能会产生大量网络流量。也许您的应用程序可以管理isChanged 标志并仅更新这些记录。

      【讨论】:

      • 我试过了,它仍然给我一个错误,要求输入 HiringMgrData.UserName、HiringMgrData.UserPhone 和 HiringMgrData.UserEmail 的参数值。我会研究 isChanged 标志,感谢您的建议!
      猜你喜欢
      • 2017-10-01
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多