我能找到的大部分资源来自several years past旧版本的Access,我很好奇是否已经发现最佳实践/新方法。
我有一个表,其中包含一堆我希望压缩/修复的.mdb文件的路径。这样做的正确方法是什么?这仍然是正确的方法吗?
Function Compact_DB(path as String, databaseName as String)
'for example, path = "C:\MyFiles\dev\"
'databaseName = "MyDatabase.mdb"
'COMPACT CHOSEN DATABASE, TO TEMPORARY DATABASE NAME
DBEngine.CompactDatabase path & databaseName, path & "Spare1.mdb"
'DELETE OLD DATABASE
Kill path & databaseName
'RENAME TEMPORARY DATABASE TO ORIGINAL NAME
Name path & "Spare1.mdb" As path & databaseName
End Function
然后在我的所有数据库中循环运行它?
Sub Compact_All()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
DoCmd.SetWarnings False
rs.Open "select * from compactList", CurrentProject.Connection
While Not rs.EOF
call Compact_DB(rs("path"), rs("databaseName"))
rs.MoveNext
Wend
rs.Close
set rs = Nothing
End Sub
答案 0 :(得分:2)
大多数事情都没有改变。是的,这仍然是一种适当的方式。
只需移除迷路DoCmd.SetWarnings False
即可。那应该不存在。
进一步说明:Call
已弃用。使用Compact_DB rs("path"), rs("databaseName")
代替Call
的那一行。
此外,While ... WEnd
大部分都被Do While ... Loop
取代。但这只是风格。
请注意,所有用户都需要完全关闭所有数据库。你无法压缩开放数据库。