La Web del Programador: Comunidad de Programadores
 
    Pregunta:  31802 - COMPACTAR BD ACCES 2000 CON TECNOLOGIA ADO
Autor:  Omar Andres Vera Olarte
No encuentro la forma de compactar y reparar una base de datos acces 2000 desde visual basic 6.0 y conectada con tecnologia ADO.
En Dao se como hacerlo pero con ADO no

Gracias por sus respuestas

  Respuesta:  Vladimir Blaskovic
' Nota WS_PATH es una variable pública que contiene
' la ruta de la base
' A tú proyecto debes agregar una referencia a :
' Microsoft Jet And Replication objects 2.X Library

Private Sub mnuCompacta_Click()
Dim Ws_basenew As String
Dim Je As New JRO.JetEngine
On Error GoTo ErrorHandler:
'
If MsgBox("Compacta Base de Datos ?", 1 + vbQuestion, "La Compactación puede tomar varios minutos!!!") <> vbOK Then
Exit Sub
End If
'
Screen.MousePointer = vbArrowHourglass
'
' Obtengo la Base original
'
Ws_basenew = WS_PATH & "\Pdp.Mdb"
'
'
' Se verifica que no exista un archivo con el nombre de la base de datos compactada.
If Dir(WS_PATH & "\NewPdp.Mdb") <> "" Then
Kill WS_PATH & "\NewPdp.Mdb"
End If
'
' Se Compacta la base de datos
Je.CompactDatabase "Data Source=" & Ws_basenew & ";", _
"Data Source=" & WS_PATH & "\NewPdp.Mdb;"

' Se elimina la base de datos original
Kill Ws_basenew

' Se Restablece el nombre original de la Base
Name WS_PATH & "\NewPdp.Mdb" As Ws_basenew
'
'
Screen.MousePointer = vbDefault
MsgBox "Compactación exitosa...", vbInformation
Exit Sub
ErrorHandler:
MsgBox Error$(Err.Number), vbCritical
Screen.MousePointer = vbDefault
Exit Sub
End Sub