¿como puedo compactar una BD mediante codigo ?


RESPUESTA
=========

Ya existe en esta WEB un ejemplo de Buho y de Happy para poder compactar mediante
código la propia MDB desde la ue se ejecuta el código.
Es interesante leer dicha explicación, pues recuerdo que una MDB abieta, no se
puede compactar así misma, pues para compactar una MDB, ésta debe estar cerrada.
La pregunta que nos ocupa, se refiere a una MDB externa a la que corre el codigo.


'sr es el archivo origen, con ruta completa
'dt es el archivo destino, tambien con ruta completa

Public Sub BackUpper(sr As String, dt As String)
Dim TDelay As Date

'Hace copia de la base de datos "sr" en la "dt"
On Error GoTo Boquepa
TDelay = Now()
DoEvents
DBEngine.CompactDatabase sr, dt

fin:
    Exit Sub

Boquepa:
    Select Case Err.Number
        Case 3204
            'If 6 = MsgBox("La copia de seguridad ya ha sido realizada hoy. ¿Desea reemplazar la copia ya existente por esta?", vbYesNo + vbQuestion) Then
                'Borrar la copia existente en el disco
                Kill (dt)
                Resume
            'End If

        Case 3024
            MsgBox "No se encuentra el archivo origen " & sr & ". NO se ha podido realizar la copia de seguridad.", vbExclamation
            Resume fin

        Case 3356
            'Esperar a que pasen 5 segundos para que surja el error
            If DateDiff("s", TDelay, Now()) < 5 Then
                Resume
            Else
                'MsgBox "Para poder hacer copia de seguridad del servidor,no puede estar siendo utilizado en modo exclusivo. Compruebe que no haya ningún otro usuario conectado.", vbExclamation
                Resume fin
            End If

        Case 3343
            MsgBox "El archivo seleccionado como origen, no es una base de datos access.", vbExclamation
            Resume fin

        Case 3043
            MsgBox "La ruta (de red) seleccionada no está disponible en estos momentos. No se ha podido acceder al servidor.", vbExclamation
            Resume fin

        Case 3044

            Resume fin

        Case Else
            MsgBox "DEBUG: # " & Err.Number & ": " & Err.Description
            Resume fin

    End Select

End Sub


Esta funcion ha sido posteada por Karlitos en News Microsfot Access

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)