您可以尝试添加10000条记录,然后看文件大小。 再删除记录,再看文件大小。 再压缩,再看文件大小。 您就会明白了。您可以在程序启动的时候做。'修复压缩数据库 Public Sub RepairDataBase()
Dim TmpData As String
TmpData = App.Path & "\DataBase\tmp.mdb"
If FileExists(TmpData) Then Kill TmpData
DBEngine.CompactDatabase SYSDATABASE, TmpData, , , ";pwd=" & DataBasePWD Kill SYSDATABASE Name TmpData As SYSDATABASE
End SubSYSDATABASE : 数据库路径 (App.Path & "\Data\My.MDB") DatabasePWD : 数据库密码这个sub在程序开始时候调用。
Const OFS_MAXPATHNAME = 128 Const OF_EXIST = &H4000Private Type OFSTRUCT cBytes As Byte fFixedDisk As Byte nErrCode As Integer Reserved1 As Integer Reserved2 As Integer szPathName(OFS_MAXPATHNAME) As Byte End TypePrivate typOfStruct As OFSTRUCT Declare Function apiOpenFile Lib "Kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long Public Function FileExists(ByVal sFilename As String) As Boolean On Error Resume Next If Len(sFilename) > 0 Then apiOpenFile sFilename, typOfStruct, OF_EXIST FileExists = typOfStruct.nErrCode <> 2 End If End Function判断文件是否存在的Func
再删除记录,再看文件大小。
再压缩,再看文件大小。
您就会明白了。您可以在程序启动的时候做。'修复压缩数据库
Public Sub RepairDataBase()
Dim TmpData As String
TmpData = App.Path & "\DataBase\tmp.mdb"
If FileExists(TmpData) Then Kill TmpData
DBEngine.CompactDatabase SYSDATABASE, TmpData, , , ";pwd=" & DataBasePWD
Kill SYSDATABASE
Name TmpData As SYSDATABASE
End SubSYSDATABASE : 数据库路径
(App.Path & "\Data\My.MDB")
DatabasePWD : 数据库密码这个sub在程序开始时候调用。
Const OF_EXIST = &H4000Private Type OFSTRUCT
cBytes As Byte
fFixedDisk As Byte
nErrCode As Integer
Reserved1 As Integer
Reserved2 As Integer
szPathName(OFS_MAXPATHNAME) As Byte
End TypePrivate typOfStruct As OFSTRUCT
Declare Function apiOpenFile Lib "Kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
Public Function FileExists(ByVal sFilename As String) As Boolean
On Error Resume Next
If Len(sFilename) > 0 Then
apiOpenFile sFilename, typOfStruct, OF_EXIST
FileExists = typOfStruct.nErrCode <> 2
End If
End Function判断文件是否存在的Func