我想从 DATABASE1 中的查询压缩 DATABASE2。
情况:我有 2 个 Access 数据库,一个包含所有查询/逻辑,一个包含从第一个创建的表。在我从 DATABASE1 写入 DATABASE2 中的表之前,我使用查询来删除表的内容。由于表很大,我还想在删除内容的查询运行后压缩数据库(理想情况下,我想将查询嵌套到一个中)。
有谁知道这是否可能?
将 MS Access 用于 Office 365 MSO (16.0....) 32 位
我想从 DATABASE1 中的查询压缩 DATABASE2。
情况:我有 2 个 Access 数据库,一个包含所有查询/逻辑,一个包含从第一个创建的表。在我从 DATABASE1 写入 DATABASE2 中的表之前,我使用查询来删除表的内容。由于表很大,我还想在删除内容的查询运行后压缩数据库(理想情况下,我想将查询嵌套到一个中)。
有谁知道这是否可能?
将 MS Access 用于 Office 365 MSO (16.0....) 32 位
是的,你可以这么做。创建这个函数:
Public Function CompactDatabase(ByVal Path As String)
Dim SrcName As String
Dim DstName As String
Dim Success As Boolean
On Error GoTo Exit_CompactDatabase
SrcName = Path
DstName = Replace(Path, ".accdb", ".tmpdb")
DBEngine.CompactDatabase SrcName, DstName
Kill SrcName
Name DstName As SrcName
Success = True
CompactDatabase = Success
Exit_CompactDatabase:
End Function
然后使用不是来自 Database2 的表运行这样的查询:
SELECT Top 1 CompactDatabase("d:\path\Database2.accdb") AS Success
FROM SomeTable;