VBA中的MS Access 2003刷新链接的ODBC表导致膨胀

cdohn

使用以下代码,在刷新链接的ODBC表连接时会膨胀数据库大小。这样,如果不关闭并重新打开数据库以使其压缩,用户将永远无法完全完成该过程。连接是通过SQL链接的,数据库中有13个链接表。该代码将连接重置4次。

   Dim dbs As DAO.Database   
   Dim tdf As DAO.TableDef  
   Dim rs As DAO.Recordset  
   Dim strSite As String  

   Set dbs = CurrentDb  
   Set rs = dbs.OpenRecordset("tblSites")  

   'Run query against Default Site to create table  
   DoCmd.OpenQuery ("qryWarranty01") 'creates tblWarranty  

   'Loop through Site 2, Site 3 & Site 4 and append data to table  
    With rs  
        .MoveFirst  
        Do While .EOF = False  
        strSite = rs.Fields("Site")   
            For Each tdf In dbs.TableDefs  
                If Len(tdf.Connect) > 0 Then  
                tdf.Connect = "ODBC;DRIVER={SQL Server};SERVER=ServerName;DATABASE=" & strSite & ";UID=Username; PWD=Password;"  
                tdf.RefreshLink  
                End If  
            Next  
            DoCmd.OpenQuery "qryWarranty02"  'appends to tblWarranty  
        .MoveNext  
        Loop  
End With   
rs.Close  

'Reset tables to be linked to Default Site
For Each tdf In dbs.TableDefs  
If Len(tdf.Connect) > 0 Then  
    tdf.Connect = "ODBC;DRIVER={SQL Server};SERVER=ServerName;DATABASE=Site1;UID=Username; PWD=Password;"  
    tdf.RefreshLink  
End If  
Next  

我已经搜索了除“压缩和修复”之外的其他解决方案。有人可以向我解释为什么此代码中发生的膨胀如此之快吗?还有另一种方法可以完成我需要做的事情吗?

我感谢您的帮助。

谢谢,卡拉

其他

这里有一些可能性:

  • 忽略膨胀。太极端了吗?Repair&Compact有什么坏处?
  • 仅更改.ConnectRefreshLink中使用的表,而qryWarranty02不是全部11个表。
  • 从创建SQL Server视图qryWarranty02,链接该视图。现在,您只需要切换一个TableDef。
  • 使用直通查询而不是链接的视图。我不认为更改PT查询的.Connect会导致与表相同的膨胀。
  • 对4个数据库进行4个带有固定连接字符串的直通查询,然后遍历它们。不再切换(但查询中有冗余)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VBA中的MS Access 2003刷新链接的ODBC表导致膨胀

来自分类Dev

DLookup:MS Access VBA 中的查询与表?

来自分类Dev

带VBA的MS Access链接表

来自分类Dev

如何从其他数据库中打开宏-VBA,MS Access 2003

来自分类Dev

如何从MS Access 2003 VBA处理MS Excel分页符

来自分类Dev

表中各个字段的MS Access中的Word Fill VBA

来自分类Dev

MS Access VBA 查询多个表

来自分类Dev

MS Access中的临时表

来自分类Dev

如何使用VBA for MS Access在预先存在的表中创建字段?

来自分类Dev

如何根据MS Access VBA代码中的昨天日期过滤表?

来自分类Dev

通过MS-ACCESS中的vba创建新表时如何包含变量

来自分类Dev

MS Access中VBA代码的继承

来自分类Dev

使用MS Access 2003使用Outlook-VBA

来自分类Dev

MS Access,刷新嵌入在表单中的报告

来自分类Dev

MS Access,刷新嵌入在表单中的报告

来自分类Dev

OLEDB / ODBC在Python和MS Access VBA之间的相反工作

来自分类Dev

MS Access中的聚合功能导致错误

来自分类Dev

比较VBA Access中的表

来自分类Dev

MS Access报告中的超链接

来自分类Dev

MS Access VBA,尝试更新一个表并从另一个表中删除

来自分类Dev

我在创建VBA以便在ms-access中将数据动态添加到表中时遇到问题

来自分类Dev

MS Access VBA:如何在没有警告消息的情况下从表中删除一行

来自分类Dev

MS Access VBA IF()

来自分类Dev

使用VBA将ODBC链接的SQL表复制到Access表

来自分类Dev

MS Access VBA;从按日期筛选的表中选择记录

来自分类Dev

MS Access,VBA-将交叉表导出到Excel

来自分类Dev

MS Access VBA 跳过插入表之一

来自分类Dev

在 MS Access 中使用 VBA 查询转置表

来自分类Dev

ODBC链接表的MS-Access筛选器查找选项

Related 相关文章

热门标签

归档