Skip to content

Script to Backup, Compact, and Recomplie MS Access Database

  • Replace Database1.accdb with your database name
  • If needed, replace path to MSAccess.exe for your version / installation set "MSACCESS_EXE=C:\Program Files\Microsoft Office\root\Office16\MSACCESS.EXE"
accdb_backup_decompile_compact.cmd
@echo off

if "%~1"=="" goto SET_DEFAULT
if not exist "%cd%\%~1" goto SET_DEFAULT
set "fn=%~1"
goto AFTER_DEFAULT

:SET_DEFAULT
set "fn=Database1.accdb"

:AFTER_DEFAULT
set "MSACCESS_EXE=C:\Program Files\Microsoft Office\root\Office16\MSACCESS.EXE"
set "backup_folder_name=backup"

REM Create Backup folder if it does not exist
if not exist "%cd%\%backup_folder_name%" md "%cd%\%backup_folder_name%"

for /f %%A in ('powershell -NoProfile -Command "Get-Date -Format yyyyMMdd-HHmmss"') do set "TIMESTAMP=%%A"

set "source=%cd%\%fn%"
set "destination=%cd%\%backup_folder_name%\%fn%.%TIMESTAMP%"

echo 1. Backup command:
echo    `copy "%source%" "%destination%"`
copy "%source%" "%destination%"
echo    ... completed
echo.

echo 2. Decompile and Compact command:
echo    `"%MSACCESS_EXE%" "%source%" /decompile /compact`
"%MSACCESS_EXE%" "%source%" /decompile /compact
echo    ...completed
echo.

timeout /t 50

:END