Este código pode ser utilizado para compactar e reparar bancos desenvolvidos em Access com as extenções *.mdb e *.accdb. sem a necessidade de abrir o banco.
Box = MsgBox ("O banco é em Office 2007(*.accdb)?" &_ Chr(13) & "Se for clique em Sim." &_ Chr(13) & "E se for anterior(*.mdb), clique em Não",vbYesNo + vbInformation,"Reparar e Compactar") If box = vbYes then banco = InputBox ("Informe o caminho do banco com o nome sem a extensão" &_ Chr(13)& "Ex.:\caminhonome banco") If banco = VbCancel then MsgBox "Ação Cancelada",vbInformation,"Reparar e Compactar" Else Set Access = Wscript.CreateObject ("Access.Application") Set Shell = WScript.CreateObject("WScript.Shell") Set FSO = CreateObject("Scripting.FileSystemObject") ori = banco & ".accdb" bak = banco & "Compactando.accdb" Access.CompactRepair ori,bak If FSO.fileexists (bak) Then FSO.deletefile (ori) FSO.MoveFile bak,ori End If MsgBox "Banco Reparado",vbInformation,"Reparar e Compactar" box1 = msgbox("Abrir Banco Reparado",vbYesNo + vbInformation,"Reparar e Compactar") If box1 = vbYes Then Access.Visible = TRUE Access.OpenCurrentDatabase ori If Access.Visible = TRUE Then aberto = 1 Do While aberto = 1 WScript.Sleep(1000) If Access.Visible = False Then aberto = 0 End If Loop End If Else 'nada faz End If End If WScript.Quit