Arquivo da tag: Banco de Dados

Modelo de Cadastro – Dados no Excel vs Access

excelvsaccessOk, 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.

Update – Modelo de Cadastro em VBA no Excel

Olá pessoal,

Atendo a anseios de muitos que entraram em contato solicitando alterações desde seu lançamento, atualizei o Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel para prever o que foi “mais pedido”.

Uma explicação completa e a nova versão podem ser acessadas nos links abaixo:

https://www.tomasvasquez.com.br/blog/modelo-de-aplicativo-de-cadastro-em-vba-no-microsoft-excel

Discussões sobre a planilha podem ser acompanhadas por aqui:

http://www.tomasvasquez.com.br/forum/viewforum.php?f=5

Bom proveito a todos

Modelos – Planilha de Banco de Dados no Excel

Para que reinventar a roda?

Se alguém já gastou tempo e suor bolando alguma coisa para resolver algum problema, nada melhor (e até justo) reaproveitar o modelo a melhorá-lo a partir de então.

Bom, neste caso em específico, o colega Ricardo Horta, a quem creio ser particularmente um grande autor de artigos de Excel, disponibilizou um tutorial completíssimo sobre como construir uma planilha que simula um aplicativo de Cadastro baseado em Banco de Dados, seguindo a mesma idéia da planilha que disponibilizo neste site (Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel).

Todas as operações são previstas, com o adicional de permitir o cadastro de imagens associadas ao cadastro. O tutorial é meio longo (divido em mais de 40 partes!), mas explica com detalhes do funcionamento da planilha.

Vale muito a pena dar uma conferida!

Download da planilha

http://www.tomasvasquez.com.br/forum/download/file.php?id=2129

Link do Tutorial

http://www.ricardohorta.net/dicas_diarias/2004_04/excel+banco+de+dados-v01-000.html

Imagens da planilha

Modelos - Planilha de Banco de Dados no Excel

Modelos - Planilha de Banco de Dados no Excel

Como interagir seu site com um banco de dados Access

Como interagir seu site com um banco de dados Access

Para programadores acostumados com plataformas cliente/servidor, ainda parece ser um desafio executar uma tarefa aparentemente simples que é publicar seus dados de forma dinâmica na Web.

Programadores VBA que trabalham frequêntemente com Access e Excel sofrem dessem “mau”. Por isso, proponho aqui uma alternativa para facilmente colocar seus dados de um banco de dados em uma página ASP.

Existem outras tecnologias que permitem a mesma proeza. Tentarei colocar aqui as alternativas mais utilzadas e consolidadas.

Este tutorial foi retirado no site da Locaweb, que apesar de parecer uma simples página de um provedor, possui bastante conteúdo interessante a ser explorado.

Introdução

Este tutorial mostra como manipular uma base de dados Access 2000 através do Asp (Active Server Pages), que é uma linguagem com a sintaxe do Visual Basic interpretada no servidor.

Você precisará de um servidor de Internet capaz de executar scripts Asp. O padrão do Windows é o Internet Information Services. Para ver um tutorial de instalação, veja este link.

Crie seu Banco de Dados

Em seu computador, crie um banco de dados chamado tutorial.mdb. Crie uma tabela chamada Agenda com os campos nome e telefone. Acrescente alguns registros à esta tabela que deverá ficar da seguinte forma:

Crie uma Página para Mostrar os Dados

Com seu editor html favorito, crie uma página que mostra em uma tabela, nome e telefone. Coloque algumas linhas nesta tabela com informações fictícias, totalmente desvinculadas das informações da base de dados. Não se preocupe com isto, que será “corrigido” depois. O resultado deverá ser algo do tipo:

__________________________

João 22-3344
José 5555-0000
__________________________

Na hora de salvar a página, use o nome agenda.asp (note que usamos a extensão “.asp” ao invés de “.htm”).

Corrija o Código para Mostrar os Dados reais

Use um editor de texto, ou o modo de visualização do seu programa favorito para editar o código HTML da página criada. Acrescente o seguinte código no início do arquivo (antes do tag “<HTML>”):

<%
ConnString=”Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\home\xyz\dados\tutorial.mdb;”
Set Conexao = Server.CreateObject(“ADODB.Connection”)
Conexao.Open ConnString
Set Registros = Server.CreateObject(“ADODB.Recordset”)
Registros.Open “Clientes”, Conexao
%>

Note que o banco de dados esta dentro do servidor, sob o diretório e:\home\xyz\dados , onde xyz é seu login de FTP.

Em seguida faça a seguinte modificação no código da tabela (note as modificações feitas):

Antes Depois
<table border=”1″ width=”250″>
<tr>
<td>João</td>
<td>22-3344</td>
</tr>
<tr>
<td>José</td>
<td>5555-0000</td>
</tr>
</table>
<table border=”1″ width=”250″>
<% While Not Registros.EOF %>
<tr>
<td><%= Registros(“nome”) %></td>
<td><%= Registros(“telefone”)%></td>
</tr>
<%
Registros.MoveNext
Wend
%>
</table>

Importante: Ao final do script é necessário fechar e destruir os objetos e liberar as variáveis, atribuindo o valor “Nothing”, na ordem inversa à que foram criadas. No exemplo acima, colocar ao final da página:

<%
Registros.Close
Conexao.Close
Set Registros = Nothing
Set Conexao = Nothing
%>

Atualize os Arquivos no Servidor e Teste

Uilize seu programa de FTP ou se for o caso o FrontPage, para publicar os arquivos agenda.asp para o diretório raiz do seu site (pasta “web”) e tutorial.mdb para o diretório de dados (pasta “dados”).

Para testar, entre na página http://seusite/agenda.asp e verifique os resultados.

Abraços

Tomás Vásquez
www.tomasvasquez.com.br