Ok, essa pergunta já passou muito tempo da minha cabeça, depois no fórum. Agora, vamos colocar isso em pratos limpos! Hehe…
O Modelo de Cadastro em Excel VBA (que você pode baixar aqui) meio que criou um quase-estigma de que é possível ter um sistema totalmente baseado em Excel, do aplicativo ao banco de dados. Essa segunda parte é a que mais me preocupa.
Tenho que confessar que quando criei o aplicativo, o objetivo foi demonstrar que era possível fazer tudo no Excel com VBA, sem outras dependências. Isso é muito poderoso se pensarmos em termos de negócios, já que o Excel está presente em quase 100% dos computadores corporativos. Isso dá ao usuário que detém esse conhecimento a liberdade de propor soluções complexas e completas sem precisar apelar para ferramentas adicionais, o que é uma realidade no mesmo mundo corporativo. Qualquer coisa “a mais” enfurece qualquer gestor, pois isso se traduz em mais gastos, mais licenças, mais falação com o departamento de infra-estrutura, etc, etc.
Até aqui, acredito que o aplicativo cumpriu seu objetivo. O problema, como dito umas frases atrás, é que a coisa toma proporções quase delirantes, ao ponto de que temos pensamentos sendo levados ao “dá pra fazer tudo no Excel!!!”. De fato, até que dá, até vírus! Alguém aí lembra dos vírus de macro? Enfim, o ponto é, não é porque você PODE que você DEVE fazer isso.
Não me levem a mal, eu acho bacana ver o povo criar versões do Mario (aqui) no Excel ou mesmo Pac-Man. Vale o mérito da conquista, mas no fim, isso é inútil para o mundo no qual o Excel faz sentido existir. Fazer por diversão, ok, mas não espere mais do que alguns “likes” por isso.
Voltando ao Modelo de Cadastro, o uso mais apropriado para ele, agora falando oficialmente (e eu posso! Fui eu que criei [=) é que ele seja um protótipo do que se pretende criar. Ele vai funcionar bem por um tempo, mas se a coisa ficar séria, é preciso dar o próximo passo. Entendo como sério o fato do mesmo começar a ser intensamente utilizado, ser utilizado por 3 ou mais usuários simultâneamente ou, no pior caso, a quantidade de registros começar a crescer generosamente. Se você chegar nesse ponto, já deve ter começado a sofrer alguns problemas de conflito de gravação ou lentidão excessiva.
Pois bem, agora que expus o objetivo máximo da minha criação, pontuei abaixo algumas vantagens e desvantagens da utilizando do modelo de cadastro, ou mesmo outros que a internet oferece, para o uso do Excel como banco de dados em comparação ao Access.
Em Excel
Vantagens
- É mais fácil manipular os dados e sua estrutura, uma vez que está tudo no Excel
Desvantagens
- O Excel não manipula bem acesso por múltiplos usuários ao mesmo arquivo, gerando facilmente erros quando de múltiplos acessos
- É mais fácil corromper a estrutura, seja dos dados como tabela de dados em si, invalidando o aplicativo
- Como o Excel não é feito para ser um banco de dados, o arquivo cresce rapidamente, prejudicando a performance ou até mesmo corrompendo os dados.
- Validação, consistência a integridade dos dados é fraca
Em Access
Vantagens
- Validação, consistência a integridade dos dados é nativa
- É feito para manipular múltiplos acessos
- Suporta melhor o crescimento dos dados e do arquivo
- Conceitos como integridade referencial, chave primária, relacionamentos só estão presentes aqui
- Para acesso ao banco de dados pelo VBA, não requer o Access instalado
Desvantagens
- Manipular a estrutura é mais complexo e exige o Access
- A manutenção do banco de dados exige um mínimo de conhecimento no Access
A lista acima não é absoluta. Ela é baseada em boa parte na experiência que tive com esse modelo. Gostaria inclusive que compartilhassem qualquer experiência que tiveram. Os comentários estão aí embaixo para isso.
Para você que já usa o modelo e quer migrar, nossa linda comunidade no fórum fez uma versão do mesmo, mas funcionando com o banco de dados em Access (aqui).
Existem outras variantes, com foto, com listview (que eu não gosto, mas isso eu explico em outro artigo), e outros que nem sei mais.
Opções não faltam. Opções de como usar, menos ainda. Vai do que sua necessidade demandar ou a do seu negócio.