Vinculando tabelas com barra de progresso

Arquitetura básica de banco de dados comercial

Qualquer empresa hoje em dia possui computadores em rede.  E para que todos os usuários tenham acesso à Base de Dados é necessário compartilhá-la em uma pasta , em um dos computadores.  

Para atender a este perfil de estrutura de rede, realizamos a divisão do nosso banco de dados em duas partes básicas: uma que contém a base de dados (tabelas) e que é chamada de back-end e a outra que contém o restante da aplicação ( formulários, relatórios, macros, ...) e que é chamada de front-end

O back-end fica na pasta compartilhada e o front-end é copiado para cada uma dos computadores.  E cada um dos front-end tem que ser ligado ao back-end.   Podemos ligá-los através de programação ou através do que chamamos de vinculação.  

Vantagens de se separar o banco de dados

O front-end, utilizado em cada um dos computadores, reduz o tráfego de rede e melhora o desempenho; especialmente em redes não-hierárquicas.  O grande benefício da divisão é a capacidade de atualizar facilmente o front-end, sem afetar os dados armazenados no back-end.

Qual é o método utilizado para ligar o front-end ao back-end?

A ligação por vinculação é a mais utilizada e é toda gerenciada pelo Access, enquanto que a ligação por programação é gerenciada pelo programador.  Cada um dos métodos tem suas vantagens e desvantagens.  O método por vinculação é o que nos interessa neste tutorial.

O Access tem assistentes para nos auxiliar neste processo de divisão e vinculação?

Sim, o Access tem assistente para executar esta tarefa, mas você pode também aprender como utilizar este processo, assistindo a vídeo-aula sobre segurança máxima utilizando o Open

Os problemas enfrentados na prática

No processo de vinculação, o que temos que fazer é informar ao Access a localização do back-end.  De posse desta localização, o Access cria os vínculos das tabelas entre o front-end e o back-end.  O front-end passa a se comunicar com as tabelas, como se elas estivessem no local.

Se por algum motivo a localização do back-end for modificada (e isso volta e meia acontece na prática), os vínculos ficam quebrados, acarretando em erro.  É necessário, então, abrirmos o gerenciador de vínculos e informar ao Access a nova localização do back-end, para que sejam refeitos os vínculos, com o novo caminho indicado.

Outras situações que costumam provocar erro: 

o computador do usuário não se comunicando com a rede;
o computador que armazena o back-end desligado;
troca do nome do computador que armazena o back-end;
troca do IP do computador que armazena o back-end (sim, você pode vincular pelo IP da máquina);
O Windows do computador do back-end entrando em estado de hibernação (bloqueia a comunicação com a rede).

O que acontece é que você não pode permitir que esta falha seja gerenciada pelo Access, pois vai parecer para o usuário, que a falha é sua.  veja o mensagem do Access para o usuário:

Back-end não encontrado

 

Certamente, com esta mensagem, a primeira providência que o usuário vai tomar é ligar para você.  

E mesmo que a solução seja simples, não será possível de se resolver à distância, pois na maioria das vezes o usuário costuma não ter acesso a estrutura do banco de dados e a senha do back-end (se tiver)  terá que ser passada para ele.

Agora, veja uma mensagem programada por nós:

Back-end não encontrado no caminho indicado

 

Mesmo que o usuário venha a pedir o seu auxílio, certamente que as informações passadas por ele serão mais objetivas e tudo poderá ser resolvido por esta tela.

Suponha que tenha ocorrido uma alteração na localização do back-end.  Basta o usuário clicar no botão procurar, localizar o back-end no novo caminho.  Após informar o novo caminho, o usuário irá clicar no botão "salvar novo caminho" e o processo de revinculação se inicia , exibindo uma barra de progresso personalizada.

Observe a revinculação ocorrendo:

Barra de progresso personalizada

 

Um outro problema enfrentado na prática é quando você deseja distribuir seu aplicativo pela internet, por exemplo.   Ora, quando a pessoa baixar o seu aplicativo e instalar, certamente que a localização do back-end irá ser diferente e portanto os vínculos com o front-end  ficarão quebrados.   Com este aplicativo que estou oferecendo, esta questão fica bem resolvida.  Você mesmo irá comprovar quando baixar o exemplo aqui do tutorial e rodar o front-end.  De imediato irá aparecer a barra de progresso vinculando automaticamente as tabelas.

Vídeo-aula

Para ficar mais claro revolvi montar um vídeo, explicando detalhes relevantes do projeto.

Como EXIBIR a vídeo-aula em tela cheia?

1. clique na seta executar da tela abaixo para iniciar a exibição do vídeo;

2. dê dois cliques rápidos na tela, quando o vídeo começar a ser exibido.

 

 


13 comentários

Brigido   3/4/2010 06:37:40

Parabéns amigo Avelino, sua ferramenta é uma excelente alternativa ao assistente nativo do Access.

MARCIO MELO MARTINS   3/4/2010 10:51:01

Feliz Páscoa! sensacional a simplicidade do projeto, muito bem elaborado, passarei a adotar sua solução que é muito mais profissional do que a minha que utilizava de três formulários, no seu caso o mesmo formulário que avisa sobre o problema também faz a vinculação, só para acrescentar que poderia ser colocado a nível de segurança uma senha master entregue ao administrador de rede para que nenhum usuário tomasse a iniciativa de fazer o vinculo, pois tenho feito na prática compartilhamento oculto \\metrologia$ ou um botão invisível escondido com o caractere de atalho &^ assim a chamada da senha seria algo assim Alt + ^ + ^ algumas dicas simples que deixo aqui para nos assegurar com algumas funções secretas rsrs tenho feito desses artifícios para agilizar algumas soluções sem perda de tempo, como não temos o vinculo não sabemos se o usuário é o administrador, na prática os usuários não sabem lidar com a situação, sendo mais seguro eles terem apenas a visualização das mensagens sem poderem ter acesso as funções de caminho e salvar. Show de bola... Sou mais Brasil!

MARCIO MELO MARTINS   3/4/2010 11:06:18

Ahh! eu uso 3 formulários porque o primeiro vem rastreando se o programa está no prazo de validade e registrado conforme o número do serial do HD, depois passa para o segundo que verifica o Back-End, se o caminho estiver quebrado mostra a mensagem de possíveis soluções, nesse formulário coloco um botão oculto/invisível que quando executado faz com que ao reiniciar o aplicativo venha o formulário de vinculação, ao fazer o novo vinculo e abrir o form principal o aplicativo volta a situação de fazer todo o processo novamente caso perca o vinculo. Antes eu deixava direto mais me deu muita dor de cabeça porque o usuário pouco conhece de caminhos local ainda mais em rede. Voltei a estudar mais sobre access depois que conheci esse site tinha parado em access2004/access2005 vi aqui a oportunidade de fazer uma reciclagem para as novas versões do access e abrir minha pasta de estudos access2010, adquirir novos conceitos, reavaliar os códigos usados, emprementar novas soluções e designer... Sou mais Brasil! muito sucesso para você.

José Mendes   3/4/2010 13:07:09

Avelino,

Um exemplo bastante simples de se implementar o que é óptimo.

No meu caso tenho as seguintes dúvidas:

Como fazer para pedir o vinculo de vários BE?

No meu caso uso 3 pelo menos digamos que como módulos.

Será possível por exemplo definir um BE preferencial?

Por exemplo, se estiver no escritório irei trabalhar com o BE que está no servidor e que é o original, mas se estiver em casa, por exemplo para consulta ou até para desenvolvimento vou ter que vincular as tabelas a uma cópia do BE que tenho no computador pessoal, o que vai aconteçer é que no dia seguinte ao chegar ao escritório o mais certo é esquecer-me que tenho o FE vinculado ao meu BE do meu computador e não ao do servidor.

Luís Augusto   7/4/2010 12:34:28

Essa ferramenta veio em hora certa. Estou em constante processo de melhorias no Front End, com certeza facilitou muito minha vida no processo de vinculação das tabelas.
Estou ancioso para o próximo vídeo explicativo para o Monta Ribbons, sua praticidade tem feito sucesso em meu trabalho.
Muito obrigado Avelino.

STELLA MARIS   1/5/2010 21:22:40

Avelino,
Gostei muito da forma deste vinculo, esse procedimento pode ser usado para a versao do access 2003 no access 2007?
grata

Avelino Sampaio   2/5/2010 05:54:00

Brigido e Marcio,

Muito obrigado pelo apoio e participação de vocês.

José,

Conforme email que te passei esta solução é possível sim mas infelizmente estou sem tempo para te oferecer um exemplo. Anotei aqui para num futuro próximo modificar meu exemplo e atender a algumas reivindicações que me fizeram.

Stella,

Pode sim, sem problema.

Sucesso

Gilberto   14/5/2010 16:03:47

Avelino, seu site é sensacional.

Uma coisa, aqui no Autoexec, esta dando erro no Ao ocorrer erro next, diz que não pode executar a macro, então eu tirei a linha e funciona, mas eu não estou tendo que vincular as tabelas, será que pode dar problema tirar esse tratamento de erro?

Abs

Avelino Sampaio   14/5/2010 17:12:53

Gilberto,

obrigado pelo seu apoio e participação.

De fato ocorre problema se o arquivo rodar no modo runtime. O tratamento de erro não é aceito.

Eu já havia corrigido isso no exemplo Maestro, que disponibilizo aqui no site mas esqueci deste exemplo.

Já está corrigido. Baixe novamente , por gentileza.

Fico grato por me comunicar o ocorrido.

Sucesso

Mario scandolera   11/6/2010 21:56:48

Bom exemplo, não incomodando muito voce não teria uma versão para o access 2003.?

Desde ja agradeço.


Angelo Duque   18/6/2010 02:12:20

Avelino
Parabens pelo site, realmente é muito organizado e didático.
Bom vc não teria esses exemplos na versão access 2000. Eu tive um problema muito sério com a versão 2003. Sempre que estava quanse terminando um formulário, ele fechava e acusava um erro de falta de memória (erro 2004). depois de perder vários formulários e procurar solução descobrir que esse problema só ocorre na versão 2002 e 2003. Então voltei a usar o access 2000. E quanto ao 2007, eu não gostei de usa-lo e ainda não tenho prática com o mesmo.

Desde já agradeço.

Helder Castro   7/7/2010 15:43:58

Avelino,
qual é a senha do bd mesmo?
Abraços

Avelino Sampaio   8/7/2010 06:21:16

Angelo,

Me desculpe eu não tenho exemplos para o 2000.

Helder

A senha do back-end é "xpto"


Envie seu comentário: