Categorias

Compactar e reparar banco Access

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

Arquivos para Download:

Compactar e Reparer Bancos.vbs