Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador ACCDB. Mostrar todas as postagens
Mostrando postagens com marcador ACCDB. Mostrar todas as postagens

VBA Access | Como Copiar Todas as Tabelas Contidas no Arquivo ACCDB

 VBA Access | Como Copiar Todas as Tabelas Contidas no Arquivo ACCDB


Este código VBA copia todas as tabelas contidas no banco de dados Access, renomeando-as, e cria uma tabela de log, caso não exista, para registrar a execução do backup:

Sub CopiaTabelasComRenomeacao()

    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim nomeTabela As String
    Dim nomeTabelaCopia As String
    Dim dataHora As String
    Dim rs As DAO.Recordset

    On Error GoTo TrataErro

    ' Abre o banco de dados atual
    Set db = CurrentDb

    ' Formata a data e hora atual para usar no nome das tabelas copiadas
    dataHora = Format(Now, "yyyymmdd_hhmmss")

    ' Percorre todas as tabelas no banco de dados atual
    For Each tdf In db.TableDefs
        nomeTabela = tdf.Name
        
        ' Ignora as tabelas de sistema (começam com "MSys")
        If Left(nomeTabela, 4) <> "MSys" Then
            ' Define o novo nome da tabela com a data e hora incluída
            nomeTabelaCopia = nomeTabela & "_" & dataHora
            
            ' Copia a tabela com o novo nome
            db.Execute "SELECT * INTO [" & nomeTabelaCopia & "] FROM [" & nomeTabela & "]"
            
            ' Registra a cópia na tabela de log
            Call RegistraLog(db, "Cópia de Tabela", "Tabela '" & nomeTabela & "' copiada como '" & nomeTabelaCopia & "'")
        End If
    Next tdf

    MsgBox "Cópias de tabelas concluídas com sucesso."

    ' Limpeza de variáveis
    Set tdf = Nothing
    Set db = Nothing

    Exit Sub

TrataErro:
    ' Registra o erro na tabela de log
    Call RegistraLog(db, "Erro durante cópia", Err.Description)
    MsgBox "Ocorreu um erro: " & Err.Description, vbCritical

End Sub

Sub RegistraLog(ByVal db As DAO.Database, ByVal acao As String, ByVal descricao As String)

    Dim rs As DAO.Recordset

    ' Abre ou cria a tabela de log
    On Error Resume Next
    Set rs = db.OpenRecordset("tblBackupLog", dbOpenTable)
    If Err.Number <> 0 Then
        ' Cria a tabela de log se não existir
        db.Execute "CREATE TABLE tblBackupLog (ID COUNTER PRIMARY KEY, Acao TEXT(255), Descricao TEXT(255), DataHora DATETIME)"
        Set rs = db.OpenRecordset("tblBackupLog", dbOpenTable)
    End If
    On Error GoTo 0

    ' Adiciona um novo registro de log
    rs.AddNew
    rs!Acao = acao
    rs!Descricao = descricao
    rs!DataHora = Now
    rs.Update

    rs.Close
    Set rs = Nothing

End Sub

Explicação do Código


Conexão com o Banco de Dados

O código abre o banco de dados atual (CurrentDb).

Renomeação e Cópia das Tabelas:

Cada tabela no banco de dados é percorrida usando um loop For Each.

O nome da cópia da tabela é gerado adicionando a data e hora ao nome original da tabela.

A cópia é feita utilizando a instrução SELECT INTO.

Registro de Logs:

A função RegistraLog é usada para registrar cada operação de cópia em uma tabela de log chamada tblBackupLog. Se essa tabela não existir, ela é criada automaticamente.

Os registros incluem a ação realizada e uma descrição, juntamente com a data e hora da operação.

Tratamento de Erros:

O código captura e trata erros, registrando qualquer problema na tabela de log e informando o usuário via MsgBox.

Como Usar

Invocação: Execute este código diretamente no Access para criar cópias de todas as tabelas no banco de dados, com nomes renomeados para incluir a data e hora da cópia.

Logs: Consulte a tabela tblBackupLog para ver o histórico de cópias e qualquer erro que possa ter ocorrido.

Este código é útil para criar cópias de segurança das tabelas no próprio banco de dados, mantendo um histórico de backups realizados e facilitando a rastreabilidade.

 Clique aqui e nos contate via What's App para avaliarmos seus projetos 

Envie comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com


 Série Donut Project 
DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes


 Clique nas capas abaixo e compre também: 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)


Série Top 10 Funções: Top 10 Funções VBA para o Microsoft Excel (Série Top 10 Funções - Microsoft Excel)


eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes

eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes

eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes

VBA Access | Como Auto-Compactar o arquivo ACCDB

VBA Access | Como Auto-Compactar o arquivo ACCDB

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



Como Usar

Colocar o Código no Módulo:

Abra o Access.

Pressione Alt + F11 para abrir o Editor VBA.

 

Insira o código acima em um módulo novo ou existente.

Adicionar a Função ao Evento de Abertura:

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)
    CompactarAoAbrir
End Sub


Desativar a Opção de Compactação Automática do Access:

O Access possui uma opção de compactação automática ao fechar, mas essa função será desabilitada pelo código Application.SetOption "Auto compact", False. 

Isso é necessário para evitar conflitos com a compactação personalizada ao abrir o banco de dados.


Explicação do Código

Criação de Backup:

O banco de dados atual é copiado para um arquivo de backup com a data e hora da execução.

Compactação:

O banco de dados é compactado em um arquivo temporário.
O arquivo original é substituído pelo banco de dados compactado.

Reabertura do Banco:

Após a compactação, o banco de dados é reaberto automaticamente para continuar o uso normal.

Tratamento de Erros:

Se ocorrer algum erro durante a compactação, o erro é tratado e uma mensagem de erro é exibida.

Este código garante que o banco de dados seja compactado automaticamente toda vez que for aberto, ajudando a manter o desempenho e a integridade do banco de dados.

 Clique aqui e nos contate via What's App para avaliarmos seus projetos 

Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com


 Série Donut Project 
DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes


 Clique nas capas abaixo e compre também: 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)


Série Top 10 Funções: Top 10 Funções VBA para o Microsoft Excel (Série Top 10 Funções - Microsoft Excel)


eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes

eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes

eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes

PIECE OF CAKE - MS Access - Cinco Formas Manuais de Reparo


Existe uma série de questões que podem afetar seu banco de dados MS Access e retirá-lo do estado saudável, tornando-o corrompido, uma vez que seus arquivos físicos fiquem internamente danificados, por qualquer motivo, você não poderá mais acessar as informações neles armazenadas. O banco de dados MS Access é um dos programas de banco de dados mais importantes da Microsoft, e um dos mais disseminados. Suas aplicações armazenam vários tipos de dados em arquivos .MDB  e .ACCDB

 Aprenda: 17 Passos Essenciais para Melhorar seu Código VBA 

Algumas corrupções no banco de dados do MS Access podem ser facilmente corrigidas de forma manual por você simplesmente ler e seguir, com cuidado, os passos indicados. Aqui aprenderá algumas causas de corrupção, como efetuar a prevenção nos arquivos físicos do MS Access e como implementar o processo de reparação manual dos arquivos de banco de dados no MS Access.

Causas comuns de corrupção de dados:


  • Alguma falha no hardware, como ineficiência e instabilidade na rede ou mesmo discos rígidos corruptos;
  • Software com defeito, versão desatualizada do MS Office;
  • Acesso inapropriado e não liberado para multiusuário;
  • Concepção, design e dimensionamento inadequado do banco de dados; e
  • Possível infecção por vírus. 


Algumas mensagens de erro comuns:


  • Banco de dados em estado inesperado;
  • Formato de banco de dados não reconhecido, diversas versões acessando a mesma base de dados;
  •  # DELETED # aparece nas tabelas quando o acesso multi-usuário não está habilitado e controlado;
  • Bookmark inválido;
  • Acidentes de acesso (página inválida / GPF) ao abrir o banco de dados;
  • Perda aleatória de registros;
  • Microsoft Jet Database Engine mal configurado. Não poderia encontrar objetos Msys * / bancos de dados. Certificar-se de que o objeto existe com o nome correto, além do caminho;
  • O arquivo físico 'filename.mdb' precisa ser reparado ou não é um arquivo de banco de dados. 


Ações práticas para impulsionar a performance:


  • Remova Subdatasheets desnecessários;
  • Normalize as tabelas;
  • Feche aplicações não utilizadas, que possam interferir no processamento ou estabilidade da rede;
  • Faça um backup e compacte os arquivos físicos;
  • Revise as tabelas do seu sistema, customizando o tamanho dos campos e implemente chaves primárias;
  • Quando possível, deixe uma estação somente para processamento, ao invés de fazê-lo local;
  • Distribua fisicamente os arquivos físicos segundo a usabilidade: Tabelas Primárias, Interfaces, Relatórios e Queries, Tabelas com informações processadas para Relatórios, Dashboards e Scorecards e Tabelas de Parametrização;


Compacte Manualmente:
Antes de aplicar as sugestões abaixo, faça uma cópia de backup de todos os arquivos do sistema.

Método 1: Aplicar o Microsoft Jet Compact Utility 

A fim de lidar com qualquer questão menor no seu banco de dados Access, poderá usar este utilitário embutido. Esta ferramenta é desenvolvida pela Microsoft chamada de JetComp.exe. Através dele poderá corrigir vários problemas nos arquivos ACCDB


Método 2:  Restaurar o banco de dados através de um backup anterior, atualizado

Siga abaixo o método para importar as tabelas:

1: Abra a tabela e remover todas as linhas de backup. Depois copie os dados com a ajuda de ADO (via código VBA) a partir de banco de dados danificado.

2: Aplique o Access Import Wizard para importar toda a tabela de dados.

Método 3:  Use o Inbuilt Compact and Repar 

Este truque é muito eficaz para os arquivos de banco de dados de grande porte, que ajuda a diminuir o tamanho físico do arquivo. Aplique os passos abaixo para reparar:

Passo 1:  Execute o  Microsoft Access, clique na guia Database Tools,  e opte por  Compactar e Reparar o banco.

Passo 2:  Na  caixa de diálogo, procure o arquivo e escolha Compactar.

Passo 3: Depois crie um novo banco na  caixa de diálogo. Digite o nome do arquivo e clique no botão Salvar.


Método 4: Importando o banco de dados corrompido em um novo banco de dados MS Access 

Passo 1:  Execute o Microsoft Access e crie um novo banco, clique em dados externos na aba da parte superior.

Passo 2:  Importe o banco de dados Access e aparecerá. Clique no Browse e escolha o arquivo de banco de dados Access para importar.  

Passo 4:  Escolha o objeto para Importar objetos  caixa de diálogo e, em seguida, clique em  OK. Verá que todos os objetos selecionados serão importados com sucesso.

Ferramenta automática para Fix Corrupt MS Access Database


Depois de aplicar todos os truques acima e ainda não conseguir resolver o problema do seu banco de dados com corrupção, então deve procurar um profissional.

É importante que um profissional possa aplicar MS Database Access Repair Tool, mesmo que esta ferramenta de recuperação não necessite de nenhum backup para voltar os dados. Este software foi desenvolvido especialmente para lidar com bancos de dados MS Access corrompidos ou inacessíveis.


#A&A  #Access #ACCDB #MDB #MSAccess #PIECEOFCAKE #Reparo #POC #VBA


Defina a Latitude e a Longitude - Find Latitude and Longitude of any address using Google Map API and VBA


VBA Excel - Traduzindo Planilhas - MS Excel VBA Script to Translate worksheets using the Google Translate API
VBA Excel - Traduzindo Planilhas - MS Excel VBA Script to Translate worksheets using the Google Translate API

Excel - Manipule o Google Maps em sua Planilha - Put a Google Map in your Spreadsheet
Excel - Manipule o Google Maps em sua Planilha - Put a Google Map in your Spreadsheet

Convertendo Texto em Imagem - Convert Text to an Image using the VBA Windows API
Convertendo Texto em Imagem - Convert Text to an Image using the VBA Windows API

Correção de Métricas - For Subscripts, Superscripts and Common Typos
Correção de Métricas - For Subscripts, Superscripts and Common Typos

MS Access - Cinco Formas Manuais de Reparo
MS Access - Cinco Formas Manuais de Reparo

MS Access e MS Word - Técnica de Automação
MS Access e MS Word - Técnica de Automação

Microsoft Access - Removendo Prefixo das Tabelas
Microsoft Access - Removendo Prefixo das Tabelas

Sempre Use Stored Procedures - Always Use Stored Procedures
Sempre Use Stored Procedures - Always Use Stored Procedures

A&A - Dados ou Informações?
A&A - Dados ou Informações?

Consulte-nos

⬛◼◾▪ Social Media ▪◾◼⬛
• FACEBOOK • TWITTER • INSTAGRAM • TUMBLR • GOOGLE+ • LINKEDIN • PINTEREST

⬛◼◾▪ Blogs ▪◾◼⬛ 


⬛◼◾▪ CONTATO ▪
diHITT - Notícias