Update – Modelo de Cadastro em VBA no Excel. Separando o arquivo de dados

Olá pessoal.

Mais uma atualização no Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel, atendendo a pedidos, angústias e algumas promessas. 😉

A grande novidade é a separação do arquivo de dados do arquivo das telas, ou melhor, aplicação e banco de dados. Isso possibilita uma melhor organização além de possibilitar o trabalho em rede, o que antes era bem complicado, já que tanto os formulários como os dados estavam no mesmo arquivo e neste sentido, o Excel não tem um bom suporte a múltiplos usuários atualizando o mesmo arquivo.

Tentei ao máximo obter um controle de concorrência. Para isso, para todas as operações em que o aplicativo precisar fazer a leitura dos dados, ele manterá o arquivo da planilha de dados aberto no modo somente leitura. Somente quando for requerida alguma atualização nos dados, o aplicativo abrirá o arquivo da planilha de dados para escrita, promoverá as alterações, salvará e voltará a abrir o arquivo como somente leitura. Isso já evita uma série de problemas de concorrência, mas não todos.

Por exemplo, ainda não há controle de concorrência de um registro. Ou seja, se dois usuários tentarem alterar um registro ao mesmo tempo, prevalecerá o que salvar por último. É um problema a ser resolvido.

A intenção é evoluir o Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel juntamente com a comunidade, como tem sido feito desde que abri o Fórum.

Para configurar o local do arquivo, criei uma planilha chamada Configurações onde constam duas linhas, sendo uma para o caminho da pasta onde está o arquivo e outra o nome do próprio arquivo, que ainda pode ser o mesmo.

Os arquivos de exemplo agora são dois:

ModeloCadastro_FrontEnd.xls – Contém os formulários e o código fonte da aplicação

ModeloCadastro_Dados.xls – Contém a planilha com os dados

De resto é experimentar e reportar os possíveis problemas, no fórum por favor!

Faça um bom proveito!

Download do arquivo

http://www.tomasvasquez.com.br/downloads/ModeloCadastro_v3.zip

Dicas – Fazendo uma auto exclusão de um arquivo

Mais uma do fórum, que está cada dia melhor!

A auto exclusão de um arquivo é algo um pouco assustador. Conceitualmente é até difícil pensar nisso. Mas como tudo depende do quanto você precisa, alguém sempre acha a solução. Como vi pouquíssimas menções a soluções deste problema, bom, lá vai.

O camarada M. Gallant publicou o VBScript abaixo que efetua sua auto exclusão. Bom, não resolve tudo, mas como não é tão simples efetuar a operação, a idéia á utilizar o vbs para efetuar a operação de exclusão do arquivo desejado e deixar o script de auto exclua em seguida. A explicação e os créditos estão do próprio código.

'***************************************************************
' selfdel.vbs demonstrates a wsh script which can dynamically 
' remove (delete) itself on completion.
' A batch file is dynamically created which is then executed
' at the end of the wsh script. The batch file deletes this
' script file, after execution stops using a test loop.
' 
' The batch file also deletes itself as a final cleanup step.
' Based on Jeffrey Richter  Jan/1996  MSJ Win32 Q & A:
'  http://www.microsoft.com/msj/defaulttop.asp?page=/msj/archive/SF9C.htm
'
'  http://home.istar.ca/~neutron/wsh
'	
'                                        M. Gallant  10/03/2002
' ***************************************************************
 
Option Explicit
Dim oShell, fso, f, scriptfile, Message
Const Title = "SelfDel"
Const ForReading = 1, ForWriting = 2
Const deltime = 3
Const target = "target.txt"
Const batchfile = "_cleanup.bat"
 
scriptfile = WScript.ScriptFullName
Message = "This script """ & scriptfile & """ will self-destruct in " & _
	deltime & " seconds"
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Popup Message, deltime, Title, vbOKONLY + vbExclamation
 
Set fso = CreateObject("Scripting.FileSystemObject")
set f = fso.OpenTextFile(batchfile, ForWriting, True)
 
 f.WriteLine ":Loop"
 f.WriteLine "del " & """" & scriptfile & """"
 f.WriteLine "if exist """ & scriptfile & """ goto Loop"
 f.WriteLine "del %0"
 f.close
 
set fso = nothing
set f = nothing
 
oShell.Run batchfile,0
set oShell = nothing

Bom proveito!

Web – Testando WebServices com o soapUI

Web Services são uma “jóia” na  integração de sistemas e exposição de serviços na área de SI. Atualmente, sua produção é extremamente facilitada na maior parte das linguagens Web.

Porém, acessá-los sem uma boa quantidade de código ainda é um pouco trabalhoso. Para isso, ou se constrói um utilitário, usando ferramentas como o wsewsdl3.exe do Visual Studio ou alguma IDE parecida, ou, usa-se o soapUI!

O soapUI é um ferramenta dedicada a efetuar chamadas a Web Services, seja para acesso direto ao serviço, seja para efeito de testes. Por ser dedicada, é possível efetuar praticamente todo tipo de customização nas chamadas e acesso aos Web Services, desde manipular o envelope SOAP até alterar parâmetros da requisição HTTP/HTTPS. A ferramenta também suporta Web Services no padrão REST/WADL.

O nível de detalhe das respostas também é generoso. Abaixo uma das telas disponibilizadas pelo soapUI:

Algumas ferramentas de testes e análise de desempenho também estão disponíveis, com gráficos e tudo mais. Porém, farão parte da versão Pro, que é paga. O link oficial do projeto é:

http://www.soapui.org/

Está disponível para várias plataformas, sendo elas Linux, Windows e Mac OS.

Excelente opção para o kit de ferramentas.

Bom proveito!

Baboseiras – Quem não tem Wii, joga com controle remoto

Mais uma de sexta-feira.

O pessoal do EuQueru.net achou essa versão do Mario Kart para quem faz questão de jogar o tempo todo ou é literalmente fã da série desde o “Nintendinho”:

Coisa de Gamer. Para quem tem filhos, é fácil arrumar um pretexto para comprar um desses. Já quem não, vai ter que se entender com a respectiva/o sobre motivos que comprar todo esse aparato e montar um circuito do Mario Kart no meio da sala.

Comprar pode ser um problema, já que o site referenciado para a venda está em japonês. 😉

Bom divertimento!