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 LOG. Mostrar todas as postagens
Mostrando postagens com marcador LOG. Mostrar todas as postagens

MS Access | Código para Registro de Logs

MS Access | Código para Registro de Logs


Este código VBA oferece uma solução prática e eficaz para o registro de logs em bancos de dados Access, proporcionando uma maneira automatizada de acompanhar e auditar ações realizadas no sistema. O código é capaz de criar uma tabela de log caso ela ainda não exista, registrando ações com descrição e a data/hora em que ocorreram. Esta funcionalidade é essencial em ambientes corporativos que exigem controle rigoroso e auditoria de processos.


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


    Dim rs As DAO.Recordset  ' Declaração de uma variável para armazenar o conjunto de registros (Recordset)


    ' Abre ou cria a tabela de log

    On Error Resume Next  ' Ignora erros temporariamente

    Set rs = db.OpenRecordset("tblBackupLog", dbOpenTable)  ' Tenta abrir a tabela de log existente

    If Err.Number <> 0 Then  ' Se ocorrer um erro (tabela não encontrada), cria uma nova tabela de log

        db.Execute "CREATE TABLE tblBackupLog (ID COUNTER PRIMARY KEY, Acao TEXT(255), Descricao TEXT(255), DataHora DATETIME)"

        Set rs = db.OpenRecordset("tblBackupLog", dbOpenTable)  ' Abre a tabela de log após criá-la

    End If

    On Error GoTo 0  ' Retorna o tratamento de erro ao modo padrão


    ' Adiciona um novo registro de log

    rs.AddNew  ' Inicia a adição de um novo registro

    rs!acao = acao  ' Atribui o valor da ação ao campo "Acao"

    rs!descricao = descricao  ' Atribui a descrição da ação ao campo "Descricao"

    rs!dataHora = Now  ' Atribui a data e hora atual ao campo "DataHora"

    rs.Update  ' Salva o novo registro na tabela


    rs.Close  ' Fecha o conjunto de registros

    Set rs = Nothing  ' Limpa a variável de Recordset


End Sub

 


A principal aplicabilidade deste código está na criação de um histórico confiável de eventos, especialmente em operações críticas como backups, importação de dados e atualizações de registros. O log gerado oferece uma maneira fácil de identificar quando e o que foi feito no sistema, ajudando administradores de banco de dados a rastrear mudanças e solucionar problemas rapidamente.


Além disso, a flexibilidade do código em lidar com a inexistência da tabela de log é uma de suas características mais importantes. Em sistemas onde múltiplas operações são realizadas por diferentes usuários, o código pode ser facilmente integrado para garantir que ações sejam registradas e possam ser auditadas posteriormente, assegurando transparência e responsabilidade.


 Que tal aprender estes códigos também: 

MS Access | Aplicando Função Concatenação de Valores nos Campos das Consultas
MS Access | Utilizando SendKeys de Forma Eficiente
MS Access | Automatizando a Compactação do Bancos de Dados
MS Access | Como Gerenciar Links das Tabelas
MS Access | Quebra de Texto em Linhas com Comprimento Máximo
MS Access | Monitoramento de Conexões de Usuários
MS Access | Mapeando 3.500 Erros com a Criação de Tabelas de Erros
MS Access | Código para Registro de Logs
MS Access | 17 Passos Essenciais para Melhorar seu Código VBA
MS Access | Código VBA para Backup de Todas as Tabelas Comentado


Outro ponto forte da aplicação deste código é a sua simplicidade de implementação em qualquer ambiente Access. Como ele se ajusta automaticamente à criação de uma tabela de log, a adaptação do código a novos sistemas ou bancos de dados é rápida e direta. Este tipo de funcionalidade é muito útil em processos automatizados, como backups ou atualizações periódicas de dados, onde o monitoramento contínuo é necessário.


Em resumo, o uso deste código é uma prática recomendada para aumentar a segurança e a rastreabilidade em bancos de dados Access. Ele pode ser utilizado em conjunto com outras automações, como rotinas de backup, para garantir que todos os eventos críticos sejam devidamente registrados e estejam disponíveis para consulta em casos de auditoria, facilitando a manutenção e a gestão do banco de dados ao longo do tempo.


  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

MS Access | Código VBA para Backup de Todas as Tabelas Comentado

MS Access | Código VBA para Backup de Todas as Tabelas Comentado

O código VBA abaixo é uma solução robusta para automatizar a tarefa de criar backups de tabelas em um banco de dados Access, garantindo a segurança e a integridade dos dados. Em cenários onde bases de dados são frequentemente atualizadas, o backup periódico torna-se essencial para evitar perda de informações críticas. Vamos explorar as funcionalidades e a aplicabilidade deste código.


Sub BackupTabelasAccessAvancado()


    ' Declaração de variáveis

    Dim db As DAO.Database

    Dim tdf As DAO.TableDef

    Dim nomeTabela As String

    Dim caminhoBackup As String

    Dim dbBackup As DAO.Database

    Dim backupNomeArquivo As String

    Dim dataHora As String

    Dim fso As Object


    On Error GoTo TrataErro  ' Ativa o tratamento de erro


    ' Define o caminho para salvar o arquivo de backup

    Let caminhoBackup = "C:\Users\andre.bernardes\Access_BKPs\"

    

    ' Verifica se o diretório de backup existe, se não, cria-o

    Set fso = CreateObject("Scripting.FileSystemObject")

    If Not fso.FolderExists(caminhoBackup) Then

        fso.CreateFolder (caminhoBackup)  ' Cria o diretório caso ele não exista

    End If


    ' Formata a data e hora atual para usar no nome do arquivo de backup

    Let dataHora = Format(Now, "ddmmyyyyhhmmss") & "AndréLuizBernardes"


    ' Define o nome do arquivo de backup com base na data e hora atuais

    Let backupNomeArquivo = caminhoBackup & "BKP_Access_" & dataHora & ".accdb"

    Debug.Print backupNomeArquivo  ' Exibe o caminho do backup no console


    ' Abre o banco de dados atual

    Set db = CurrentDb


    ' Cria um novo banco de dados para o backup

    Set dbBackup = DBEngine.CreateDatabase(backupNomeArquivo, dbLangGeneral)


    ' Registra o início do backup em uma tabela de log

    Call RegistraLog(db, "Início do backup", backupNomeArquivo)


    ' Percorre todas as tabelas no banco de dados atual

    For Each tdf In db.TableDefs

        Let nomeTabela = tdf.Name

        

        ' Ignora as tabelas de sistema (começam com "MSys")

        If Left(nomeTabela, 4) <> "MSys" Then

            ' Copia a tabela para o banco de dados de backup

            dbBackup.Execute "SELECT * INTO [" & nomeTabela & "] FROM [" & nomeTabela & "]"

        End If

    Next tdf


    ' Fecha o banco de dados de backup

    dbBackup.Close


    ' Registra a conclusão do backup em uma tabela de log

    Call RegistraLogS(db, "Backup concluído", backupNomeArquivo)


    ' Limpeza de variáveis

    Set tdf = Nothing

    Set dbBackup = Nothing

    Set db = Nothing

    Set fso = Nothing


    MsgBox "Backup completo. Arquivo salvo em: " & backupNomeArquivo  ' Exibe uma mensagem confirmando o backup


    Exit Sub


TrataErro:

    ' Registra o erro em uma tabela de log

    Call RegistraLogS(db, "Erro durante o backup", Err.Description)

    MsgBox "Ocorreu um erro: " & Err.Description, vbCritical  ' Exibe uma mensagem de erro


End Sub

 


Primeiramente, a automação de backups reduz significativamente a dependência de ações manuais, que são propensas a erros e podem ser negligenciadas. Neste código, as tabelas de dados são copiadas automaticamente para um novo banco de dados criado no momento da execução, com um nome gerado a partir da data e hora. Isso permite um controle eficiente sobre o histórico de backups, facilitando a restauração de versões anteriores quando necessário.


Além disso, o uso de tabelas de log para registrar eventos como o início e o término do backup é uma prática recomendada para auditoria e acompanhamento de processos críticos. O Código VBA possibilita a criação de um histórico detalhado de operações, essencial para análise de performance e identificação de problemas, garantindo maior transparência no processo.


 Que tal aprender estes códigos também: 

MS Access | Aplicando Função Concatenação de Valores nos Campos das Consultas
MS Access | Utilizando SendKeys de Forma Eficiente
MS Access | Automatizando a Compactação do Bancos de Dados
MS Access | Como Gerenciar Links das Tabelas
MS Access | Quebra de Texto em Linhas com Comprimento Máximo
MS Access | Monitoramento de Conexões de Usuários
MS Access | Mapeando 3.500 Erros com a Criação de Tabelas de Erros
MS Access | Código para Registro de Logs
MS Access | 17 Passos Essenciais para Melhorar seu Código VBA
MS Access | Código VBA para Backup de Todas as Tabelas Comentado


Código VBA é também adaptável a diferentes estruturas de banco de dados. Ele ignora tabelas de sistema, garantindo que apenas as tabelas relevantes sejam copiadas para o backup, o que torna o processo mais eficiente e otimizado. A flexibilidade para customizar o caminho de salvamento dos arquivos é outra característica útil, permitindo a definição de diretórios específicos para armazenamento dos backups.


Por fim, o Código VBA incorpora mecanismos de tratamento de erros, assegurando que qualquer falha seja registrada e comunicada ao usuário de forma clara. Isso é essencial em ambientes corporativos, onde a integridade dos dados não pode ser comprometida e ações corretivas precisam ser rápidas. A geração de mensagens de erro e o registro detalhado permitem a identificação rápida da causa de problemas durante o processo de backup.


A implementação deste código em processos de rotina de bancos de dados Access contribui para a eficiência, segurança e confiabilidade das operações, tornando-o uma ferramenta valiosa em ambientes onde a continuidade de dados é essencial, como em análises de planejamento de visitas e gestão de informações estratégicas.


  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

Série VBA Tips - Registro do LOG de acesso às aplicações

Série VBA Tips - Registro do LOG de acesso às aplicações


É muito comum que o desenvolvedor queira registrar o número de acessos, bem como acompanhar quem está acessando o seus arquivo através de um .LOG.

Isso pode ser facilmente implementado por adicionarmos uma pequena função dentro do FORM Splash (O primeiro FORM a ser aberto) da sua aplicação. Você pode alterar o código para que grave esses arquivos .LOG em um diretório (ou servidor de arquivos) escondido e acompanhar até mesmo remotamente os acessos à sua aplicação.


NO VBE DENTRO DO FORM SPLASH

Sub Form_Open (Cancel As Integer)

' Author: Date: Contact:
' André Bernardes 18/06/2008 08:21 brazilsalesforceeffectiveness@gmail.com
' Sub de abertura do formulário.
' Rastreador inserido em 25.09.2008 - 10:52
.LOG
.

Dim ThisFormName As String

Let ThisFormName = Me.Name

Call Rastrear ' Registra acesso no Log.
Call ImagesPath
Call SetMoldura("Logando à aplicação", " . . . ")


HideAccessCloseButton ' Elimina o botão fechar na janela da aplicação do Windows.


Me.LblTime.Caption = Now()

Call AssenteAcesso("OF", ThisFormName, "Sys: Splash de abertura.")
Call SetMoldura("", ".: A&A - In Any Place")


End Sub


A FUNÇÃO QUE DEVE COLAR DENTRO DO SEU MÓDULO PARA QUE O REGISTRO SEJA EFETUADO É:


Function Rastrear()


' Author: Date: Contact:
' André Bernardes 25/09/2008 10:01 brazilsalesforceeffectiveness@gmail.com
' Cria arquivo .LOG

Open Application.CurrentProject.Path & "\" & Left(Application.CurrentProject.Name, Len(Application.CurrentProject.Name) - 4) & ".log" For Append As #1
Print #1, " "
Print #1, "User: " & atCNames(1) & "- " & Trim(atCNames(2)), Now()
Print #1, " In: " & CodeProject.FullName
Print #1, " "
Close #1


End Function

Se você tiver um pouco de criatividade poderá registrar todos os acessos de todos as aplicações (MS Access, MS Excel, MS Word, MS PowerPoint, etc...) no mesmo arquivo .LOG analisando-o quando desejar.

A infinidade de possibilidades de utilização dessa solução são infinitas, então divirta-se.



Envie seus comentários e sugestões e compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com

✔ Brazil SFE®✔ Brazil SFE®´s Facebook´s Profile  Google+   Author´s Professional Profile  ✔ Brazil SFE®´s Pinterest       ✔ Brazil SFE®´s Tweets

eBook - Série VBA Tips - Criando Logs de acesso - Livro 1

eBook - Série VBA Tips - Criando Logs de acesso - Livro 1



CLIQUE AQUI PARA BAIXAR O LIVRO

O intuito desta série é o de disponibilizar, por assunto, respostas rápidas às necessidades mais prementes de soluções, através de códigos simples. 




Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.

Tips - Rastrei os seus Dashboards, Scorecards, Reports, Relatórios, Planilhas e Aplicações




Você deseja acompanhar quantas pessoas estão acessando as suas Planilhas, Dashboards, Scorecards, e os Relatórios disponibilizados na rede da sua empresa?

Sim, é natural que após termos tanto tempo para prepararmos um belo produto de análise, desejemos acompanhar quem o está consultando. Bem, você pode acompanhar  através de um arquivo de .LOG. 

Isso pode ser facilmente implementado por adicionarmos uma pequena função dentro da sua aplicação. Altere o código para gravar os LOGs em um diretório (ou servidor de arquivos) escondido para acompanhar mesmo que remotamente os acessos à sua aplicação. 

Private Sub Form_Open (Cancel As Integer)
' Author: Date: Contact:
' André Bernardes 18/06/2008 08:21 bernardess@gmail.com
' Sub de abertura do formulário.
' Rastreador inserido em 25.09.2008 - 10:52 
.LOG
.

Dim ThisFormName As String

Let ThisFormName = Me.Name

Call Rastrear ' Registra acesso no Log.
Call ImagesPath
Call SetMoldura("Logando à aplicação", " . . . ")

HideAccessCloseButton ' Elimina o botão fechar na janela da aplicação do Windows.

Me.LblTime.Caption = Now()

Call AssenteAcesso("OF", ThisFormName, "Sys: Splash de abertura.")
Call SetMoldura("", ".: A&A - In Any Place")
End Sub


Cole a função abaixo no seu módulo:

Function Rastrear()
' Author: Date: Contact:
' André Bernardes 25/09/2008 10:01 bernardess@gmail.com
' Cria arquivo .LOG
Open Application.CurrentProject.Path & "\" & Left(Application.CurrentProject.Name, Len(Application.CurrentProject.Name) - 4) & ".log" For Append As #1

Print #1, " "
Print #1, "User: " & atCNames(1) & "- " & Trim(atCNames(2)), Now()
Print #1, " In: " & CodeProject.FullName
Print #1, " "

Close #1
End Function

Como sei que você tem bastante imaginação, use este código para registrar todos os acessos de todas as suas aplicações MS Access, MS Excel, MS Word, MS PowerPoint, MS Outlook, etc... no mesmo arquivo .LOG, analisando-o quando desejar. Há uma infinidade de possibilidades de utilização dessa solução.Divirta-se. 


Deixe os seus comentários! Envie este artigo, divulgue este link na sua rede social...


Tags: VBA, LOG, 



diHITT - Notícias