Gracias.
' Trap for errors.
On Error GoTo error_handler
' Compact and repair the database. Use the return value of
' the CompactRepair method to determine if the file was
' successfully compacted.
RepairDatabase = _
Application.CompactRepair( _
LogFile:=True, _
SourceFile:=strSource, _
DestinationFile:=strDestination)
' Reset the error trap and exit the function.
On Error GoTo 0
Exit Function
' Return False if an error occurs.
error_handler:
RepairDatabase = False
End Function
Esta función anterior compacta y repara la base de datos especificada (.mdb)
o el archivo de proyecto de Microsoft Access (.adp). Devuelve un Boolean;
Verdadero si el proceso se ha realizado correctamente.
El archivo de origen no debe ser la base de datos actual o no debe abrirlo
ningún otro usuario, ya que al llamar a este método, se abrirá el archivo en
modo exclusivo.
--
Saludos desde Valladolid
Francisco Javier García Aguado
---
http://www.buho.tk [http://www.clikear.com/webs/accessbhuo/index.html]
http://groups.msn.com/Access2000VisualBasic/
=======================================
Web de Access de Juan M Afan de Ribera
http://www.juanmafan.tk
=======================================
"Alberto" <anon...@discussions.microsoft.com> escribió en el mensaje
news:0d0101c3d6bc$0df74350$a101...@phx.gbl...
Si metes esto en un módulo, puedes llamar a la función POMPACTARPACO cuando
quieras para reparar y compactar tu mdb.
Option Compare Database
Option Explicit
'------------------------------------------------------------
' COMPACTAR
' Francisco Javier García Aguado
' Bhúo Julio 2002
' Misterio de este código:
' Con SendKeys "%" lo que hacemos es activar la barra superior de access
' Con SendKeys "h" pasamos al menu H-erramientas
' Con Sendkeys "u" pasamos al menu U-tilidades
' Con Sendkeys "o" pasamos al menu c-O-mpactar y Reparar
' Si alguien define una barra de menús personalizadas, se pueden
' cambiar perfectamente la secuencia de SendKeys
' No es lo que yo quería, pero funciona
'------------------------------------------------------------
Public Function COMPACTARPACO()
On Error GoTo COMPACTAR_Err
SendKeys "%", False
SendKeys "h", False
SendKeys "u", False
SendKeys "o", False
COMPACTAR_Exit:
Exit Function
COMPACTAR_Err:
MsgBox Error$
Resume COMPACTAR_Exit
End Function
"Alberto" <anon...@discussions.microsoft.com> escribió en el mensaje
news:0d0101c3d6bc$0df74350$a101...@phx.gbl...
Si tuviera verguenza, me abría puesto #ff0000.
Si tuviera vergüenza, me hhhhhhhhhhhhhhhhhhhhhabría puesto #ff0000.
Un método que es común a todas las versiones es DBEngine.CompactDatabase
A partir de la versión 2000 de Access el método RepairDatabase fue absorvido
por el método CompactDatabase que repara y compacta la base de datos en un
solo paso.
--
Saludos desde Barcelona
Juan M. Afán de Ribera
[MVP MS ACCESS]
http://www.juanmafan.tk
http://www.clikear.com/webs4/juanmafan
"Búho" <pacoQU...@nemo.es> escribió en el mensaje
news:%23XzCB9r...@TK2MSFTNGP11.phx.gbl...
--
Saludos desde Barcelona
Juan M. Afán de Ribera
[MVP MS ACCESS]
http://www.juanmafan.tk
http://www.clikear.com/webs4/juanmafan
"Búho" <pacoQU...@nemo.es> escribió en el mensaje
news:uB4xoft1...@TK2MSFTNGP12.phx.gbl...
DoCmd.RunCommand acCmdCompactDatabase
DoCmd.RunCommand acCmdRepairDatabase
Uffff hora de dormir (es la 1 y 40 am, aunque creo que en España son como
las 7).
Dije que esto funciona "correctamente" pero eso es falso. Quise decir que se
escribe y se complila correctamente y hasta aparece en la ayuda sensible y
en la lista de propiedades y métodos.
La pregunta es ¿para qué sirve? para compilar y reparar otras mdb?
En principio te puedo decir que "parece" funcionar cuando utilizas
automatización (digo parece, porque va tan rápido que mmmmm nose nose nose
nose...), por ejemplo:
Dim app As Access.Application
Set app = New Access.Application
app.OpenCurrentDatabase "c:\neptuno.mdb"
app.RunCommand acCmdRepairDatabase
app.RunCommand acCmdCompactDatabase
app.Quit
Set app = Nothing
eso sí, si la base tiene un formulario de inicio o macro autoexec, debes de
desactivarlo primero, porque sino te dará el famoso mensaje de "la base de
datos no puede ser compactada mientras se está ejecutando código Visual
Basic" (o algo así)
--
Saludos desde Barcelona
Juan M. Afán de Ribera
[MVP MS ACCESS]
http://www.juanmafan.tk
http://www.clikear.com/webs4/juanmafan
"Fernando V" <fvergara...@operamail.com> escribió en el mensaje
news:%23Igoq9A...@TK2MSFTNGP09.phx.gbl...
--
Saludos desde Valladolid
Francisco Javier García Aguado
---