Eu vou passar um cód. para compactação mas ainda não consegui um cód. de progressbar q funcione perfeitamente. Se eu conseguir eu coloco outro post ok?
Primeiro vc tem q fazer a referência pois será usado o Microsoft® Jet and Replication Objects. Vá no menu "Project" e clique na opção "References....". Procure por "Microsoft Jet and Replication Objects 2.6 Library". Neste exemplo q citei é apenas uma versão do JRO, vc poderá ter outras ok?
Segue o cód para compactação....
Private Sub Command2_Click()
If Not compactaDB("Caminho_BancodeDados_Origem.MDB","Caminho_BancodeDados_Destino.MDB") Then
MsgBox "Ocorreu um erro durante a compactacao ", vbExclamation
Else
MsgBox "Arquivo compactado com sucesso", vbInformation
End If
End Sub
No módulo do seu projeto ou local mesmo coloque esta função
Public Function compactaDB(ByVal origem_path As String, _
ByVal destino_path As String) As Boolean
On Error GoTo Erro_compacta
Dim DB_origem As String, DB_destino As String
Dim JRO As JRO.JetEngine
Set JRO = New JRO.JetEngine
DoEvents
DB_origem = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & origem_path
DB_destino = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & destino_path & ";Jet OLEDB:Engine Type=5"
JRO.CompactDatabase DB_origem, DB_destino
compactaDB = True
Kill (origem_path)
Name destino_path As origem_path
DoEvents
Exit Function
Erro_compacta:
compactaDB = False
MsgBox Err.Description, vbExclamation
End Function
t+