sábado, 21 de outubro de 2017
assinantes
   Assinatura Ativo Access


Não Assinantes
ConteÚdo
DOWNLOADS
Interação
dicas aleatórias
Artigos

Relatórios baseados em várias consultas aninhadas

Vez por outra nos deparamos com relatórios baseados em várias consultas e sub consultas aninhadas(consultas baseadas em consultas, que são baseadas em consultas, que são baseadas em consultas...etc.), que por sua vez, são baseadas em tabelas vinculadas que estão em um outro mdb na rede(back-end).

Por: Marcus Venicius de Melo Barbosa* (The Cabra) (marcusv@sejus.ce.gov.br)
Publicado: 12/11/2009  Visitas: 6292
Dificuldade: Intermediário

Indicação de Artigo  Imprimir

Vez por outra nos deparamos com relatórios baseados em várias consultas e sub consultas aninhadas(consultas baseadas em consultas, que são baseadas em consultas, que são baseadas em consultas...etc.), que por sua vez, são baseadas em tabelas vinculadas que estão em um outro mdb na rede(back-end).

Dependendo da quantidade de dependências entre as várias consultas nas quais é baseado o relatório, executar este relatório na rede pode ser irritante ou mesmo impossível, devido à demora na execução das sucessivas consultas( ...e se a rede estiver congestionada, esqueça....).

Uma solução simples, seria mandar o access importar as tabelas utilizadas pelas consultas que serão a base do(s) relatório(s), na hora de executa-lo(s).

Siga os passos:

Crie um novo banco de dados, que será o Front end dos relatórios pesados(sim, ficarão dois: um que você já utiliza normalmente na sua aplicação e outro só para executar os relatórios encrenqueiros).

a)Importe para o novo banco de dados, as tabelas do back end.
b)Crie todas as consultas necessárias para a execução do(s) relatório(s).
c)Crie o(s) relatório(s) baseado(s) na(s) consulta(s) final(is) (aquela que se baseia em todas outras sub consultas ).
d)Crie um Formulário novo e nele, coloque os botões que abrirão os relatórios.
e)Vá ao Menu Ferramentas >> Inicializar e especifique este Formulário no campo “Exibir formulário/página”.

Precisamos agora dizer para o access que ele deve, ao iniciar este Front end, fazer duas tarefas:

1)Deletar as tabelas locais existentes.
2)Importá-las novamente do back end(garantindo com isso, os dados atualizados)

Para isso, criamos uma nova Macro com o nome Autoexec (como sabemos, qualquer macro cujo nome é Autoexec, será executada automaticamente quando abrimos uma aplicação feita no access.

Esta Macro executará as tarefas que queremos.

Descrição da Macro.

Para deletar, por exemplo as tabelas “Cadastro de Materiais”, “Entradas”, “Itens do pedido” e “Pedidos”, criamos as 4 primeiras linhas da macro como se segue:


Para importar as tabelas do Back end, utilizamos as 4 ações finais:



Saia do Aplicativo e execute-o novamente.

Quando o aplicativo for aberto, a Macro “Autoexec” será executada, deletando as tabelas indicadas e importando, em seguida, as mesmas tabelas do Back end.
Logo após, o access abrirá o formulário onde estão os botões que executarão os relatórios.

O processo todo dura apenas alguns segundos. Quando o formulário abrir, você já pode executar o relatório que quiser.



OBS.:
Ao importar as tabelas, o access não importa os relacionamentos entre elas, o que não é motivo de preocupação, pois os relacionamentos necessários já foram criados nas consultas.

Assim, toda vez que você abrir o aplicativo, o access exclui as tabelas e as importa novamente do back end.

Grande abraço do

Marcus Venicius
(The Cabra)
(*) Marcus Venicius - legendário The Cabra é o fundador do AtivoAccess juntamente com seu compadre Amaral

Links relacionados:
http://

Artigos relacionados:
  Nenhum artigo relacionado

 

Assine AtivoAccess
     CD Ativo Access = R$ 44,70

 

 

   Copyright © Ativo Access 2003 - 2017- Todos os direitos reservados   Política de Privacidade | Fale conosco