使用以下代码,在刷新链接的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
我已经搜索了除“压缩和修复”之外的其他解决方案。有人可以向我解释为什么此代码中发生的膨胀如此之快吗?还有另一种方法可以完成我需要做的事情吗?
我感谢您的帮助。
谢谢,卡拉
这里有一些可能性:
.Connect
和RefreshLink
中使用的表,而qryWarranty02
不是全部11个表。qryWarranty02
,链接该视图。现在,您只需要切换一个TableDef。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句