压缩和修复其他数据库的列表
Compacting and repairing a list of other databases
我能找到的大部分资源都来自 several years past 旧版本的 Access,我很好奇最佳实践/新方法是否已经曝光。
我有一个 table 包含我希望 compact/repair 的一堆 .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
大部分内容没有改变。是的,这仍然是一个合适的方式。
只需删除流浪者 DoCmd.SetWarnings False
。那不应该在那里。
进一步说明:Call
已弃用。使用 Compact_DB rs("path"), rs("databaseName")
而不是 Call
.
的那一行
此外,While ... WEnd
大部分被替换为 Do While ... Loop
。但这只是风格。
请注意,所有用户都需要完全关闭所有数据库。您无法压缩打开的数据库。
我能找到的大部分资源都来自 several years past 旧版本的 Access,我很好奇最佳实践/新方法是否已经曝光。
我有一个 table 包含我希望 compact/repair 的一堆 .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
大部分内容没有改变。是的,这仍然是一个合适的方式。
只需删除流浪者 DoCmd.SetWarnings False
。那不应该在那里。
进一步说明:Call
已弃用。使用 Compact_DB rs("path"), rs("databaseName")
而不是 Call
.
此外,While ... WEnd
大部分被替换为 Do While ... Loop
。但这只是风格。
请注意,所有用户都需要完全关闭所有数据库。您无法压缩打开的数据库。