Página pessoal
Programação » Access » Pesquisas
As pesquisas permitem achar os dados que se pretendem ordenados da forma que se quiser. Através das pesquisas podem-se achar as respostas a várias perguntas acerca dos dados existentes na nossa base de dados.
As pesquisas podem ser efectuadas sobre uma ou várias tabelas e podem servir de base a formulários e relatórios. Antes já se tinham visto os filtros mas as pesquisas permitem criar filtros permanentes.
Carregar no botão de pesquisas
Escolher a pesquisa que se quer ver.
Visualizar os dados que obedecem às especificações da pesquisa.
Carregar no botão de DESIGN para se ver os parâmetros da pesquisa e para, eventualmente os alterar.
No caso de surgirem 2 tabelas não ligadas numa pesquisa esta irá ter tantas linhas como o produto do número de linhas de cada tabela.
As pesquisas também podem ser feitas baseadas em outras pesquisas. No entanto existe um limite para o grau de complexidade permitido a partir do qual será necessário criar tabelas intermédias.
Carregar no ícone de pesquisas.
Carregar no botão NEW.
Escolher a opção Design View
Seleccionar a ou pesquisa tabela na qual se pretende efectuar a pesquisa.
Carregar no botão ADD.
Carregar em CLOSE.
Arrastar os campos que se pretendem da zona de cima para a zona em baixo para a linha FIELD. arrastando o campo com o nome da tabela seguido de um asterisco arrastam-se todos os campos.
Debaixo dos campos colocar se serão utilizados na ordenação, o critério de pesquisa nesses campos e a indicação se esse campo deve ser visualizado.
Carregar no botão do modo de visualização DATASHEET ou no botão com um ponto de exclamação.
Carregar no ícone de pesquisas.
Carregar no botão NEW.
Seleccionar a tabela a acrescentar à pesquisa.
Carregar no botão ADD ou executar o comando QUERY ADD TABLE.
Repetir os dois passos anteriores até ter colocado todas as tabelas pretendidas.
Carregar em CLOSE.
Seleccionar numa das tabelas um dos campos..
Arrastar esse campo até outra tabela para o campo com o mesmo nome. Como regra geral o campo na primeira tabela é uma chave estrangeira e na segunda tabela é a chave primária.
Fazendo um duplo clic na ligação estabelecida pode-se indicar que se pretende ver todas os campos existentes numa tabela mesmo que não existam campos associados a essa chave na outra tabela.
Nas pesquisas, e em campos de formulários ou relatórios podem ser efectuados cálculos diversos.
Para esses cálculos podem ser usadas funções matemáticas ou outras e serem usados os diversos campos existentes nas tabelas que estão a ser usadas pela pesquisa.
Exemplo:
PVP: valor * iva
Neste caso iremos ter um campo calculado cujo valor será igual ao valor do campo valor vezes o valor do campo IVA
A forma mais simples de aceder às funções existentes é carregar no botão do lado direito do rato e a seguir escolher a opção Build. Com isto irá surgir o ecrã abaixo no qual poderá escolher as funções que pretende.
Existem dezenas de funções que permitem fazer desde cálculos com datas a cálculos financeiros passando por cálculos sobre base de dados, ficheiros exteriores, funções de formatação de texto, etc.
1. No modo de visualização DESIGN carrega-se no botão do somatório
. Isto faz que surga uma linha com os totais na grelha de saída. Por defeito coloca a opção GROUP BY em cada campo.
2. Em cada campo escolhe-se o tipo de estatística pretendido:
- A opção GROUP BY indica que é para agrupar os dados por cada valor desta opção.
- A opção SUM indica que se deve efectuar a soma dos valores existentes neste campo para cada grupo indicado nos outros campos.
- As opções MIN e MAX mostram o valor máximo e mínimo desses valores
- A opção COUNT faz a contagem de fichas existentes.
- A opção AVERAGE efectua a média.
Pode ainda escolher que o resultado da pesquisa sejam só as 5 primeiras fichas para isso, use o comando VIEW PROPERTIES e indique 5 em Top Values. Isto terá em conta os critérios de ordenação que utilizou.
É possível criar pesquisas baseadas em formulários através da indicação dos campos dos formulários nas próprias pesquisas. Para isso a forma mais fácil é carregar no botão do lado direito do rato escolher a opção Build. Na caixa que surge pode-se depois escolher o formulário e o campo que se quer considerar.
Para a criação deste tipo de pesquisas é igualmente útil a utilização das funções IsNull que permite verificar se um campo está vazio e da função Iif que permite que um critério possa assumir 2 valores diferentes baseado numa qualquer condição.
As pesquisas de acção poderão ser seleccionadas através dos menus.
Este tipo de pesquisa efectua-se em dois passos.
O tipo Make-Table permite criar uma tabela com o resultado da pesquisa. Já o tipo Append acrescenta só novas linhas a umatabela existente sem se ter que apagar a mesma tabela.
O tipo Update permite actualizar o valor de um campo ou mais de acordo com a fórmula que seja indicada. É usado quando se pretende actualizar dezenas ou centenas de linhas de uma tabela. Por exemplo, se houver uma mudança do prefixo telefónico.
Por fim o tipo Delete permite apagar todas as linhas que obedeçam a um determinado critério.
Para todos estas pesquisas depois de serem definidas é necessário fazer a execução das mesmas através do comando Query - Run ou do botão com o ponto de exclamação. Quando se pede para visualizar as linhas da pesquisa só vai mostrar as linhas sobre as quais a pesquisa é passível de ser executada.
A nível de programação a forma de executar estas pesquisas é usando o comando Docmd.runsql podendo-se usar o comando docmd.setwarnings para evitar mostrar diversas mensagens.
Existem pesquisas que só poem ser definidas a partir de SQL e que não podem ser visualizadas na forma de design.
A forma mais utilizada é a UNION que permite juntar o resultado de duas ou mais, pesquisas ou tabelas. Utiliza-se em especial quando se pretende visualisar na mesma tabela linhas actuais e linhas do ficheiro histórico.
Numa pesquisa do tipo CrossTab o resultado da pesquisa é apresentado em forma de tabela. Assim podem-se definir um ou mais campos para agrupar as linhas e um campo para agrupar as colunas. Indica-se ainda o campo que deverá ser usado como valor.
Para quem conhece as Pivot table do Excel esta funcionalidade é similar.