Aqui está um código VBA que você pode usar para auto-compactar o arquivo .accdb assim que ele for aberto. O código deve ser colocado em um módulo e será executado automaticamente na abertura do banco de dados.
Código VBA para Compactar Banco de Dados ao Abrir
Private Sub CompactarAoAbrir()
Dim strPath As String
Dim strBackupPath As String
Dim strTempDB As String
On Error GoTo TrataErro
' Caminho completo do banco de dados atual
strPath = CurrentDb.Name
' Caminho do backup antes de compactar
strBackupPath = Left(strPath, Len(strPath) - 6) & "_backup_" & Format(Now, "yyyymmdd_hhmmss") & ".accdb"
' Caminho do banco de dados temporário usado para a compactação
strTempDB = Left(strPath, Len(strPath) - 6) & "_temp.accdb"
' Cria uma cópia de segurança do banco de dados
FileCopy strPath, strBackupPath
' Fecha o banco de dados atual para permitir a compactação
Application.SetOption "Auto compact", False
Application.Quit
' Compacta o banco de dados atual para o arquivo temporário
DBEngine.CompactDatabase strPath, strTempDB
' Substitui o banco de dados original pelo arquivo compactado
Kill strPath
Name strTempDB As strPath
' Reabre o banco de dados original compactado
Shell "msaccess.exe """ & strPath & """", vbNormalFocus
Exit Sub
TrataErro:
MsgBox "Erro durante a compactação: " & Err.Description, vbCritical
End Sub
Pressione Alt + F11 para abrir o Editor VBA.
Insira o código acima em um módulo novo ou existente.
No Editor VBA, expanda Formulários no painel de navegação.Clique com o botão direito em Formulário Inicial, selecione Visualizar código.No menu suspenso à esquerda, selecione Form, e à direita, Open.Chame a função CompactarAoAbrir no evento Form_Open.
Private Sub Form_Open(Cancel As Integer)CompactarAoAbrirEnd Sub
Clique aqui e nos contate via What's App para avaliarmos seus projetos
Nenhum comentário:
Postar um comentário