Error al compactar y reparar base de datos access 2003

Estoy utilizando un código para reparar y compactar la base de datos desde la aplicación y al ejecutarla me da un error aún teniendo activado la referencia Microsoft Jet and Replication Objects 2.6 Library y me da este error

este es el código

Private Sub Form_Close()
' Compactar una base de datos con ADO
Dim sDBTmp As String
Dim je As JRO.JetEngine
'
On Error GoTo ErrCompactar
'
Set je = New JRO.JetEngine
'
' Crear un nombre "medio" aleatorio
sDBTmp = "D:\SG RADIO\DBT_Datos_SGR_v2.mdb"
' Asegurarnos de que no existe una base con el nombre temporal
If Len(Dir$(sDBTmp)) Then
Kill sDBTmp
End If
'
'MsgBox " Compactando la base de datos..."
' Compactar la base de datos
je.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\SG RADIO\DatosSGRv2.mdb;Jet OLEDB:Database Password=c1906d2023;", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDBTmp & ";Jet OLEDB:Database Password=c1906d2023;"
'
' Eliminar la base de datos original
Kill "D:\SG RADIO\DatosSGRv2.mdb"
'
' Renombrar la base temporal con el original
Name "D:\SG RADIO\DBT_Datos_SGR_v2.mdb" As "D:\SG RADIO\DatosSGRv2.mdb"
'
'MsgBox " Base de datos compactada."
'
Exit Sub
'
ErrCompactar:
' Mostrar el mensaje de error
MsgBox "Error al compactar la base de datos:" & vbCrLf & _
Err.Number & " " & Err.Description, _
vbExclamation, "Error al compactar la base de datos"
Err.Clear
MsgBox " *** Error al compactar la base de datos ***"
End Sub

¿Qué puede suceder? Si me pudieran ofrecer otro método.

1 Respuesta

Respuesta
1

Carlos le dejo esta función que use hace muchos años, debe ajustar la ruta y nombre de la base de datos.

Function CompactaBackEnd()
    On Error GoTo CompactaBackEnd_Err
    Dim strPath As String
    DoCmd.Echo True, "Compactando el BackEnd ....."
    DoCmd.Hourglass True
    strPath = CurrentProject.Path    '& "\" & "dbRifas_bs.mdb"
    ' Borramos los registros de la tabla tblTemBoletas
    CurrentDb.Execute "DELETE * FROM tblTemBoletas"
    DBEngine.CompactDatabase strPath & "\dbRifas_bs.mdb", strPath & "\tem.mdb"
    If Err.Number = 0 Then    ' Borrar la base datos original y renombra el archivo temporal
        Kill strPath & "\dbRifas_bs.mdb"
        Name strPath & "\tem.mdb" As strPath & "\dbRifas_bs.mdb"
    End If
    DoCmd.Hourglass False
    DoCmd.Echo False
    MsgBox "BacKend Compactado satisfactoriamente !!", vbInformation, "Compactando Tablas del sistema "
CompactaBackEnd_Err_Exit:
    DoCmd.Echo False
    DoCmd.Hourglass False
    Exit Function
CompactaBackEnd_Err:
    MsgBox "Ha ocurrido en siguiente error . " & Err.Description, vbExclamation, "Error al compactar tablas del sistema"
    Resume CompactaBackEnd_Err_Exit
End Function

Esta función se llama desde el FronEnd y compacta el BackEnd.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas