Questo e' il codice da usare per compattare.
Era sul forum ma non l'ho trovato, quindi te lo riposto.
Ovviamente lo devi adattare x compattare il tuo MDB.
Ciao.
codice:
Option Explicit
Private Sub Command1_Click()
Dim CONN As JRO.JetEngine
Dim CONN_Sorg As String
Dim CONN_Dest As String
' Attenzione : Il programma compatta i database di access 97.
' Per compattare database diversi da access 97 cambiare il "Engine Type=4"
' es. access 2000 cambiare il "Engine Type=5"
Screen.MousePointer = vbHourglass
On Error GoTo ConnectionError
Set CONN = New JRO.JetEngine
'
If Dir("C:\Temp\New_Biblio.mdb") <> "" Then
Kill "C:\Temp\New_Biblio.mdb"
End If
'
CONN_Sorg = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\Biblio.mdb;User ID=Admin;Password=;"
CONN_Dest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\New_Biblio.mdb;Jet OLEDB:Engine Type=4;"
'
CONN.CompactDatabase CONN_Sorg, CONN_Dest
'
Set CONN = Nothing
'
If Dir("C:\Temp\Biblio.mdb") <> "" And Dir("C:\Temp\New_Biblio.mdb") <> "" Then
Kill "C:\Temp\Biblio.mdb"
FileCopy "C:\Temp\New_Biblio.mdb", "C:\Temp\Biblio.mdb"
End If
'
On Error GoTo 0
Screen.MousePointer = vbDefault
ExitError:
Exit Sub
ConnectionError:
Screen.MousePointer = vbDefault
'
MsgBox " VB #" & Err.Number & " " & Err.Description & " " & Err.Source
'
Resume ExitError
End Sub