Modelos Prontos

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.

Modelo Cadastro Excel VBA
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.

Modelo Cadastro Excel VBA
Figura 2 – Visual da tela de pesquisa

Modelo Cadastro Excel VBA
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

Versão 3.5

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

Mudanças da Versão 3.5 – Tela de Pesquisa com ListView

Fruto da proeza do colega colaborador do fórum, Mauro Coutinho, esta versão do Modelo de Cadastro conta com a tela de pesquisa utilizando ao invés de um ListBox para mostrar os dados, o componente ListView, mais completo e amigável para visualização de navegação.

Modelo Cadastro Excel VBA
Figura 4 – Visual da tela de pesquisa com ListView – Versão 3.5

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

Bom proveito!

Abraços

Tomás Vásquez
http://www.tomasvasquez.com.br

Ficou com alguma dúvida técnica sobre nossos artigos?


Visite o nosso Fórum e compartilhe!


Tecnologia, Educação, Web e Baboseiras em geral

css.php
%d blogueiros gostam disto: