¿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