You are on page 1of 4

Modelo de Aplicativo de Cadastro em

VBA no Microsoft Excel

:: Nova versão da tela de Pesquisa ::


O Modelo de Aplicativo de Cadastro para Microsoft Excel VBA tem como objetivo
fornecer um exemplo base para criação de telas de cadastro seguindo o formato padrão
adotado pelo mercado e ferramentas de criação deste tipo de aplicativo, aplicado ao
ambiente excel com vba.

O Modelo de Aplicativo de Cadastro para Microsoft Excel VBA é constuítuido de 2


formulários (UserForms VBA). O principal deles é o de cadastro, que disponibiliza a
navegação através dos registros e as operações de adição, alteração e exclusão. A
navegação é assistida indicando o número do registro corrente e o total destes.

Figura 1 – Visual da tela de cadastro

O formulário de pesquisa disponibiliza uma formato de busca muito eficiente,


permitindo filtros por diversos campos e ordenação por todos eles. Para o formato de
exemplo, alguns campos foram disponibilizados para o filtro. Outros podem ser
adicionados conforme o critério e a necessidade do desenvolvedor. Para além de
facilitar o desenvolvimento, possilibitar uma formato completo de pesquisa utilizando
clásusulas SQL (Structured Query Language), decidi usar a biblioteca ADO (Active
Data Objects) e seus objetos para efetuar as consultas e filtros na cadastro. Será útil
futuramente quando forem construídos filtros de data por exemplo, tradicionalmente
utilizados no Excel com o recurso Auto-Filtro.
Figura 2 – Visual da tela de pesquisa

Figura 3 – Visual da tela de pesquisa – Versão 2

Alguns recursos práticos como numeração automática de Id está disponivel, neste


exemplo representado pelo campo CódigoDoFornecedor. Isto pode ser visto ao
adicionar um registro. Ao salvá-lo, um novo Id é atribuido automaticamente, da mesma
forma que seria feito em um campo chave primária em um banco de dados como o
Microsoft Access.

Inicialmente o Modelo de Aplicativo de Cadastro para Microsoft Excel VBA não


prevê consistência de dados, como o tipo de dado de um determinado campo e sua
obrigatoriedade de preenchimento, não explorando ainda todo o potencial do Microsoft
Excel e do VBA.

Para o funcionamento correto do aplicativo, deve-se disponibilizar a abertura do


formulário de pesquisa somente quando o formulário de cadastro estiver aberto, já que o
formulário de pesquisa utiliza funções do formulário de cadastro para enviar as
informações do registro selecionado para ele. Também é recomendável manter a
planilhas com os dados oculta, permitindo acesso a seu conteúdo somente através dos
formulários.

Versão 1
http://www.tomasvasquez.com.br/downloads/modelocadastro.zip

Versão 2
http://www.tomasvasquez.com.br/downloads/ModeloCadastro_v2.zip

Mudanças da Versão 2 – Tela de Pesquisa


 Retirado o campo txtCidade do filtro
 No lugar, adicionado um ListBox MultiSelect com as Cidades exclusivas (filtro
exclusivo)
 Alterado o algoritmo de filtro para tratar o ListBox e montar a cláusula WHERE
dele com OR, diferente do que faz a função MontaClausulaWhere
 Adicionada uma rotina de exportação, que faz com que os dados do filtro atual
sejam exportados para uma nova pasta de trabalho via CopyFromRecordset

Versão 3
http://www.tomasvasquez.com.br/downloads/ModeloCadastro_v3.zip

Mudanças da Versão 3 – Separação dos Arquivos


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

Caso encontrem bugs no funcionamento, reportem o mesmo no nosso fórum!

Bom proveito!

Abraços

You might also like