【发布时间】:2017-07-04 03:29:25
【问题描述】:
我有一个使用直通查询填充的 Access 数据库。
我从 SQL 数据库中获取特定数据并将其转储到 Access 上。
此 Access 数据库每周更新一次,但我不能简单地附加前一周的新数据,因为过去的所有其他周也会更新。
我所做的是截断 Access DB,然后再次加载所有内容。
当我这样做时,我需要压缩和修复数据库,以免大小膨胀。
我的问题是,这样做可以吗?目前我正在使用answer中发布的逻辑。
我还没有遇到任何问题,但我只是想确保并让我们的访问大师考虑一下。此外,我还计划在我们的服务器上进行计划运行以完成任务。
只需要确保它不会轻易损坏(首先损坏文件的可能性是多少?)。
如果你会问,我为什么需要这样做?数据用户无法访问 SQL 服务器。
所以我必须为他们提取数据,以便他们可以连接到 Access DB。
以防万一您需要代码:
Dim sqlDelete As String
Dim sqlAppend As String
sqlDelete = "DELETE * FROM dbo_Table;"
sqlAppend = "INSERT INTO dbo_Table (Col1,Col2) SELECT Col1,Col2 FROM passThrough;"
With DoCmd
.SetWarnings False
.RunSQL sqlDelete
.RunSQL sqlAppend
.SetWarnings True
End With
Application.SetOption "Auto Compact", True
【问题讨论】:
-
我在定期做一些名称中包含 Repair 的事情时会遇到问题,因为它具有真正的负面含义(为什么你需要修复某些东西,除非它是坏了)。为什么您的用户没有 SQL Server 的 SELECT 功能?
-
@KenWhite
Why don't your users have SELECT capabilities for SQL Server?我也问了同样的问题。但是,我认为这与网络流量和工作范围(由公司指示)有关。服务器也在地球的一半。