De acuerdo con la documentación: Application.Quit hace lo mismo que DoCmd.Quit. A saber
El método Quit sale de Microsoft Access. Puede seleccionar una de varias opciones para guardar un objeto de base de datos antes de salir.
Puede intentar llamar a cualquiera de ellos con el parámetro acQuitSaveNone
o 2 que "cierra Microsoft Access sin guardar ningún objeto". Tras una revisión posterior, use Application.Quit
como DoCmd.Quit
como added for backward compatibility for Access 95 (consulte las observaciones sobre el Método de abandono, tal como se aplica al objeto DoCmd). Hacer cualquiera de estos dos debe hacer un compacto automático al cerrar si tiene los permisos, que pueden ser la causa de usted conchas
Si eso no funciona para usted, aquí hay una sugerencia un tanto extrema. Guárdelo como un archivo vbscript y llámelo una vez que haya terminado con Access. Esto terminará todos los procesos de MSAccess en su PC con Windows, sin compactar ni reparar.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'msaccess.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
Llamar a la secuencia de comandos reemplazando [vbspath] con la ruta real. Si la ruta tiene espacios, asegúrese de usar comillas dobles y ponerlo entre comillas:
shell "cscript [vbspath]"
¿Cómo invoca estas 50 conchas? ¿Abrió cada uno de estos manualmente, o fueron abiertos por código? – dmarra
Abierto por código. –