io uso la jro.dll
se nn la hai te la passo
e il codice è questo:
codice:
Private Sub Compatta(ByVal Sorg As String, ByVal Dest As String)
Dim CONN As New JRO.JetEngine
Dim CONN_Sorg As String, CONN_Dest As String
CONN_Sorg = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Sorg & ";User ID=;Password=;"
CONN_Dest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Dest & "Temp.mdb" & ";Jet OLEDB:Engine Type=5;"
'Compatta il database.
If IO.File.Exists(Dest & "\Temp.mdb") Then
MsgBox("Attenzione File temporaneo nella cartell " & Dest & " gia' esistente: cambiare cartella")
Exit Sub
End If
On Error GoTo GestoreErrori
CONN.CompactDatabase(CONN_Sorg, CONN_Dest)
CONN = Nothing
'Copia il file compattato.
Kill(Sorg)
FileCopy(Dest & "\Temp.mdb", Sorg)
Kill(Dest & "\Temp.mdb")
MsgBox("Compattazione del database terminata con successo.", vbInformation, "Informazione")
Exit Sub
GestoreErrori:
MsgBox("Errore durante il tentativo di compattazione del database: " & Err.Description & ".", vbCritical, "Service")
End Sub
qusta sub ha bisogno del file .mdb come parametro e la directory del file temporaneo da creare