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



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


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 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



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.



MS Excel - Mudando o ícone da Planilha.

É importante para algumas aplicações que o ícone da planilha, especialmente quando se abrem muitas simultâneamente, seja específico, identificando prontamente quais dados estão sendo utilizados. O código abaixo não é nenhuma novidade, apenas o disponibilizo como modo clássico de fazê-lo. Sugiro apenas que uma pequena alteração seja efetuada, propiciando que o Path e o nome do arquivo .ICO, estejam posteriormente parametrizáveis em uma pasta. É importantíssimo dar o crédito a: Jim Rech, no link: http://www.j-walk.com/ss/excel/eee/eee020.txt O código abaixo deve ser postado no Workbook: Private Sub Workbook_Open() Let Application.Caption = ".: A&A - Minha planilha personalizada" ChangeApplicationIcon End Sub Agora crie um módulo e coloque o conteúdo abaixo nele: Option Explicit Declare Function GetActiveWindow32 Lib "USER32" Alias _ "GetActiveWindow" () As Integer Declare Function SendMessage32 Lib "USER32" Alias _ "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function ExtractIcon32 Lib "SHELL32.DLL" Alias _ "ExtractIconA" (ByVal hInst As Long, _ ByVal lpszExeFileName As String, _ ByVal nIconIndex As Long) As Long Crie, no mesmo módulo, a SUB que efetuará a chamada às definições acima: Sub ChangeApplicationIcon() Dim Icon& ' Pegue o ícone de outro aplicativo como abaixo: Const NewIcon$ = "Notepad.exe" ' Ou escolha um arquivo .ICO em um diretório: ' Const NewIcon$ = "F:\A&A\A&A - LogoIcon - 002.ico" Icon = ExtractIcon32(0, NewIcon, 0) SendMessage32 GetActiveWindow32(), &H80, 1, Icon '< 1 =" big" 0 =" small">

End Sub

VBA: 8 Dicas para reduzir erros durante o desenvolvimento

8 Dicas para reduzir erros Certamente não podemos eliminar completamente todos os Bugs do nosso código VBA, mas podemos evitar muitos deslizes comuns durante o processo de criação e desenvolvimento. Geralmente tais cuidados vão requerer um mínimo de ajustes ao modo como desevolvemos nossas aplicações.
) - Utilize a expressão "Option Explicit" no início dos seus módulos. Isso o forçará a inicializar quaisquer variáveis que por ventura crie no seu código. Definirá o tipo e assim saberá o seu conteúdo. É verdade que isso lhe acrescentará um pouco de trabalho, mas o retorno será excelente, pois lhe poupará de problemas como utilizar tipos diferentes de variáveis, escrever erroneamente o nome delas e o melhor de tudo, suas rotinas serão executadas muito mais rapidamente.
) - Adapte-se a idéia de "identar" o seu código. A identação ajuda a compreender o fluxo de idéias que o seu código quer transmitir. Serve de ajuda quanto a identificar certo procedimento no código. Se você utiliza: (FOR...NEXT, WHILE, IF, CASE), por exemplo, considere a indentação como um modo de facilitar em muito a identificação de partes do seu código.
) - Cuidado com a expressão "On Error Resume Next". Esta instância faz com que o MS Excel ignore qualquer erro e continue o processamento. Em algumas situações fará o Excel ignorar erros que não devem ser ignorados. Talvez existam erros no seu código que você sequer tenha percebido, por causa deste comando. ) - Use comentários, não economize com eles. Nada pode ser mais frustrante do que ao revisitar um código desenvolvido a uns meses, perceber que não deixou ali nenhuma "cola" para ajudar no seu trabalho. Adicione alguns comentários para descrever sua lógica, isso poderá lhe poupar muito tempo em eventuais manutenções no código. ) - Quando possível, mantenha suas Funções e Rotinas com uma codificação simples e clara. Escreva seu código em módulos pequenos, cada um deles descritos de forma simples e bem definida. Isso tornará qualquer debugagem posterior mais fácil. ) - Quando disponível utilize o gravador de macro (ou um gerador automático de código) para ajudá-lo a identificar (definir) as propriedades e métodos. Caso não consiga se lembrar de um nome ou sintaxe de uma propriedade ou método, utilize o gravador de macro (ou um gerador automático de código) para resolver rapidamente o seu problema. E lembre-se, sempre poderá recorrer ao help e à Internet. ) - Sempre considere soluções diferentes para o mesmo problema. Não é raro demorarmos para implementar uma solução que não se adequa muito bem a aplicação como um todo. Nesses casos considere a possibilidade de olhar para outro lado e desenvolver algo (por vezes) totalmente diferente para "encaixar" essa solução pontual ao conjunto da aplicação. ) - Compreenda como utilizar o debugador. O debugador é uma excelente ferramenta quando usada plenamente. Habitue-se a consultar o help e aprender tudo o que pode retirar do debugador. Conseguirá poupar muito tempo!
diHITT - Notícias