[A BÍBLIA DO VBA NO ACCESS]: MACROS E PROGRAMAÇÃO VBA NO ACCESS - CURSO COMPLETO

Páginas: 1164 | Autor: Júlio Battisti | 50% de Desconto e 21 Super Bônus

Você está em: PrincipalArtigosAccess 2007 Avançado › Capítulo 1 : 04
Quer receber novidades e e-books gratuitos?
›››
« Anterior Δ Página principal ¤ Índice Próxima »

Curso Grátis - Access 2007 Avançado, Macros e Programação VBA
Autor: Júlio Battisti
Lição 04 - Capítulo 01 - Técnicas Avançadas em Consultas - Parte 1

Neste item veremos diversas técnicas avançadas na Utilização de Consultas. Aprenderemos a adicionar colunas calculadas ao resultados das consultas, utilização de funções de Domínio para critérios em consultas, utilização de critérios avançados, dentre outras técnicas.

Veremos os seguintes tópicos:

  • Adição de Colunas com Valores Calculados;
  • Utilização de Critérios avançados, operadores e funções de domínio;
  • Consultas Parametrizadas e com Critérios;
  • Consultas do Tipo Tabela de Referência Cruzada;
  • Outros Tipos de Consultas e suas utilizações;
  • Noções da linguagem SQL para consultas.

5.1 - Adição de Colunas com Valores Calculados:

Vamos, inicialmente, relembrar alguns conceitos básicos sobre Consultas no Microsoft Access 2007.

Para Criar uma consulta basta clicar na Guia Criar ->  " Assistente de Consultas" ou “Design da Consulta” . Clique na segunda opção “Design da Consulta”  será apresentado a tela indicada na figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 21 - Caixa de diálogo Mostrar Tabela.

Nesta caixa de diálogo é mostrado todas as tabelas do banco. E você terá que escolher qual ( ou quais ) tabela a Consulta será baseada. Para isso faça:

Selecione a tabela que fará parte da consulta e clique no botão Curso completo de Access 2007 Avancado - Julio Battisti.Lembre que você pode marcar mais do que uma tabela ao mesmo tempo, utilizando o Mouse em conjunto com as teclas CTRL ou SHIFT, conforme descrito no item: "Para Definir Relacionamentos no Microsoft Access 2007"

No nosso exemplo, adicionaremos a tabela “Detalhes do Pedido”. Após a adição da tabela, dê um clique no botão Curso completo de Access 2007 Avancado - Julio Battisti.

Será exibida a Janela indicada na figura a seguir, com uma consulta em Branco e a grade para a construção da consulta. O Microsoft Office Access 2007chama essa grade de QBE ( Query By Example ). Observe que a tabela "Detalhes Do Pedido" já aparece adicionada na parte superior. Caso você tenha esquecido de adicionar alguma tabela que seja necessária para a Consulta, não precisa iniciar o processo desde o início. Você pode adicionar uma consulta a qualquer momento, para isto, basta dar um clique no botão Curso completo de Access 2007 Avancado - Julio Battisti , será aberta a janela para adicionar tabelas, conforme  indicado na figura anterior.

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 22 - Grade para construção de Consultas.

Em cada coluna da parte inferior você adiciona os campos que irão aparecer na Consulta. Para adicionar um campo, basta dar um clique duplo sobre o nome do campo ou arrastá-lo até a coluna onde o mesmo será colocado. Os campos aparecerão na listagem na mesma ordem em que forem adicionadas na grade. Caso você , por engano, adicione um mesmo campo duas vezes, o mesmo irá aparecer duas vezes na listagem.

Observe  que na parte de baixo nos temos diversas linhas para cada campo. Na tabela abaixo segue a descrição de cada uma destas linhas.

Linha

Descrição

Campo

O Nome do Campo sendo adicionado. No caso de um campo calculado, mostra o nome que aparecerá na listagem. além da fórmula de cálculo

Classificação

Faz a Ordenação dos Resultados da Consulta. Pode ser Crescente ou Decrescente. A Ordem de Classificação é da Esquerda para a Direita, isto é, se a primeira coluna for o campo Cidade e a segunda coluna for o Nome Do Cliente e ambas estiverem classificadas de forma Crescente, a listagem será classificada com base no campo Cidade e dentro de uma mesma Cidade, com base no Nome do Cliente.

Mostrar

Se esta opção estiver marcada o campo será exibido na listagem, caso contrário o campo não será exibido. Isso pode ser utilizado para ocultar campos que estão servindo apenas como Critérios para filtrar a listagem.

Critério - Ou

Estas duas linhas são utilizadas para a especificação de critérios que servirão para filtrar a listagem obtida pela consulta. Iremos ver o uso de critérios, detalhadamente, neste ítem.

Seguindo o nosso exemplo, adicionaremos a tabela Pedidos e depois passaremos a adicionar campos a nossa consulta.

Adicione a tabela pedidos. Para isto dê um clique no botão Curso completo de Access 2007 Avancado - Julio Battisti, na caixa de diálogo mostrar consulta dê um clique na tabela Pedidos e depois dê um clique no botão Adicionar. Dê um clique no botão Fechar. Feito isso a tabela Pedidos será adicionada a sua grade. Observe que existe um relacionamento do tipo "Um para Vários" entre Pedidos ( lado) um e "Detalhes do Pedido" ( lado vários). Isso indica que um determinado pedido pode conter vários ítens .Adicione os seguintes campos:

  • NúmeroDoPedido  da tabela Pedidos
  • CódigoDoCliente   da tabela Pedidos
  • DataDaEntrega      da tabela Pedidos

Classifique a listagem em ordem Crescente do campo Número do Pedido. A sua grade deve ficar como indicado na próxima figura:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 23 - Consulta com alguns campos já adicionados.

NOTA: Até agora trabalhamos com a opção  "Design da consulta”. Toda e qualquer alteração ( Inclusão de Campo, Critérios, Campos Calculados, etc) na consulta somente pode ser feita no Modo Design, ou diretamente através do código SQL conforme veremos mais tarde.

Para ver o resultado da consulta que foi construída até o momento, basta dar um clique no botão Curso completo de Access 2007 Avancado - Julio Battisti . Este botão permite que você alterne entre o Modo Design da consulta e o modo "Folha de Dados". No modo folha de dados é que você visualiza o resultado da consulta.

Para o nosso exemplo, os resultados deverão ser semelhantes aos exibidos na próxima figura.

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 24 - Resultado da Consulta exibido no modo "Folha de Dados".

Através do botão Modo de exibição Curso completo de Access 2007 Avancado - Julio Battisti, retorne para o modo o Modo Design. De volta ao Modo Design, vamos adicionar uma Coluna Calculada ( Até que enfim, afinal este é o objetivo deste tópico). Adicionaremos uma coluna que calcula o total de cada ítem. Este total é calculado utilizando a fórmula abaixo indicada:

Total_Item = ([PreçoUnitário]*[Quantidade])*(1-[Desconto])

Ao efetuarmos  cálculos, colocamos o nome dos campos que farão parte dos cálculos entre colchetes. Embora este procedimento somente seja obrigatório quando o nome dos campos possuir espaços em branco, é recomendável, por questão de clareza e padronização, que sempre utilizemos os colchetes. As quatro operações básicas são representadas pelos seguintes símbolos:

Operação

Símbolo

Adição

+

Subtração

-

Multiplicação

*

Divisão

/

A Utilização dos parênteses embora não obrigatória, cumpre a função de deixar mais clara a ordem em que as operações serão aplicadas. Os parênteses também podem ser utilizados para definir a seqüência correta das operações. No nosso exemplo, primeiro multiplicamos [PreçoUnitário] pela quantidade, e o resultado é multiplicado com o resultado da operação ( 1 - [Desconto]).

Para adicionar esta campo calculado, vá para a primeira coluna em branco, ao lado do campo [DataEntrega] e na linha Campo, digite:

Total_Ìtem: ([PreçoUnitário]*[Quantidade])*(1-[Desconto])

O Texto que aparece antes dos dois pontos ( :) é simplesmente uma legenda para o campo, é o título que aparecerá para a coluna no modo Folha de Dados. O que vem depois dos dois pontos é o cálculo propriamente dito.

Antes de vermos os resultados vamos formatar esta nova coluna calculada, para que ele exiba os dados no formato de moeda. Para isto faça o seguinte:

  • Dê um clique com o botão direito sobre a coluna calculada.
  • No menu que surge escolha a opção "Propriedades.

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 25 - Formatar as Propriedades da Coluna Calculada.

  • Ao clicar em propriedades surgirá a janela Folha de Propriedades indicada na figura a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 26 - Folha de Propriedades.

  • No propriedade Formato escolha “Unidade Monetária”. Sua Janela deve ficar conforme a figura indicada abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 27 - Propriedades da Coluna que Calcula o Total por Ítem.

  • Dê um clique no "x" para fechar a Janela de propriedades.
  • Dê um clique no botão Curso completo de Access 2007 Avancado - Julio Battisti para ir para o Modo "Folha de Dados". Veja que foi adicionada uma coluna com o título Total_Ítem, do tipo Moeda, conforme o esperado. Observe que continua aparecendo uma linha para cada ítem de cada pedido. Dê um clique no botão com o Diskete para salvar a consulta. Ao ser solicitado o nome da consulta digite: Totais por Pedido e dê um clique em OK.
  • Dê um clique no botão Curso completo de Access 2007 Avancado - Julio Battisti  e volte para o Modo Design.

De volta ao Modo Design, vamos fazer mais uma alteração na nossa consulta. Vamos fazer com que o Microsoft Office Access 2007agrupo os registros de cada pedido e faça a soma de todos os ítens de cada pedido. Na listagem final teremos o número do pedido, código do cliente e data de entrega aparecendo uma única vez para cada pedido e no campo Calculada ( Total_Ítem ) teremos a soma de todos os ítens do pedido.

Para realização deste processo faça o seguinte:

  • No Modo Design, dê um clique no botão Curso completo de Access 2007 Avancado - Julio Battisti  , este botão exibirá uma linha adicional no Modo Design: A Linha de Totais. Esta linha que irá nos permitir fazer a soma de todos os ítens de cada pedido.
  • Na linha Total mantenha "Agrupado Por" para os campos "NúmeroDoPedido", "CódigoDoCLiente” e "DataEntrega". No campo Total_Item altera a linha Total para "Soma".
  • Clique no botão executar para ir para o modo Folha de Dados. Conforme pode ser visto na figura a seguir, agora cada NúmeroDoPedido aparece uma única vez e o campo Total_Item fornece a soma dos ítens para cada Pedido. Isso foi possível pela utilização da linha de totais, escolhendo Agrupar Por para os campos NúmeroDoPedido, CódigoDoCliente e DataEntrega e soma para o campo Total_Item. 

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 28 -Folha de Dados exibindo o total para cada pedido no campo Total_Item.

E se ao invés do total por pedido nos quiséssemos, simplesmente, contar o número de ítens por Pedido?

Muito simples. Dê um clique no executar para voltar ao Modo Design, na linha Total, no Campo Total_Item, ao invés de Soma, selecione Contar. Clique com o direito sobre a coluna Total_Item, no menu que surge clique em propriedades. Altere a Propriedade formato para "Número Geral", dê um clique no "x" para fechar a janela de propriedades e pronto.

Volte para o modo Folha de Dados e observe os resultados. Conforme indicado pela próxima figura, ao invés de somar os ítens de cada nota, o Microsoft Office Access 2007está contando o Número de Ítens em cada nota.

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 29 -Modo Folha de Dados exibindo a quantidade de ítens por Nota.

Estudamos neste tópico, como adicionar campos calculados a uma consulta. Para isto basta colocar em uma coluna em branco o seguinte:

Curso completo de Access 2007 Avancado - Julio Battisti

Onde Nome_Coluna é simplesmente o nome que irá aparecer no cabeçalho da coluna e depois do dois pontos ( : ) a fórmula de cálculo. Podemos usar qualquer função do Microsoft Office Access 2007para a realização de Cálculos. O Microsoft Office Access 2007apresenta algumas centenas de funções para a realização de Cálculos. Durante este curso iremos ver uma série de funções. A referência completa de todas as funções pode ser encontrada no Ajuda que acompanha o Microsoft Access 2007.

Clique no menu Ajuda (ícone localizado no lado direito superior Curso completo de Access 2007 Avancado - Julio Battisti ). Abrirá uma janela “Ajuda do Access” clique em sumário Curso completo de Access 2007 Avancado - Julio Battisti, aparecerá todas as opções do sumário. Dê um clique em Automação e Programação -> Funções. Observe que aparecerá várias funções para que você possa aprender e praticar um pouco mais. Você encontrará uma referência completa a todas as funções disponíveis, classificadas em ordem alfabética, conforme indicado pela próxima figura.

Agora iremos fazer alguns exercícios sobre "Campos Calculados em Consultas". Vamos aprender a utilizar funções que manipulam valores de Data e de String.

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 30 - Referência Completa às funções do Microsoft Access 2007.

Exercício:  Neste exercício iremos fazer algumas alterações na Consulta "Totais por Pedido e Observar os Resultados obtidos." Estigante

Para fazer algumas alterações na consulta "Totais por Pedido:" faça:

  • Abra a consulta "Totais por Pedido" no Modo Design. Para isto basta dar um clique duplo sobre a consulta.
  • Adicione o campo "DataEntrega" da tabela Pedidos.
  • Crie uma coluna calculada com o nome Dias que nos forneça o Número de Dias entre a DataDaEntrega e a DataPedido. Para isto basta colocar, na coluna em Branco ao lado do campo DataDaEntrega, a seguinte fórmula:

Dias: [DataEntrega]-[DataPedido]

  • Clique no botão executar  para ver os resultados. Você verá uma nova coluna chamada Dias que exibe o número de dias entre a DataEntrega e a DataPedido.
  • Volte para o Modo Design e altere a consulta de tal maneira que somente sejam exibidos os registros cuja diferença entre a DataPedido e a DataEntrega seja maior do que 20 dias. Visualize os resultados.
  • Volte para o Modo Design, retire o critério colocado no ítem anterior e adicione uma coluna que exiba apenas o Ano da DataPedido. Para isto vá para a primeira coluna em branco ao lado de Dias e coloque a seguinte fórmula:

Ano_Pedido: Ano([DataPedido])

  • Utilizamos a Função Ano para extrair somente o ano do campo DataPedido. Toda Função no Microsoft Office Access 2007possuí parâmetros. O Formato é Nome_Função (Parâmetros). No nosso exemplo Utilizamos a função Ano e passamos como parâmetro o campo DataPedido. A função Ano, para cada um dos registros, extrai apenas o Ano do campo DataPedido. Existem funções que trabalham com dois ou mais parâmetros.
  • Vá para o modo   "Folha de Dados" e visualize os resultados.
  • Volte para o Modo Design e adicione os seguintes critérios: Pedidos com mais do que 25 Dias entre DataPedido e DataDaEntrega e somente para o ano de 2009. Para isto na coluna Dias, na linha critério coloque >25 e no campo Ano_Pedido, na linha critério coloque 2009. Com isso o Microsoft Office Access 2007somente exibirá os registros cuja diferença de dias for maior do que 25 e o Ano_Pedido for igual a 2009. Para filtrar os registros, utilizamos o operador > ( Maior do que). Na tabela abaixo, temos uma lista dos demais operadores disponíveis:

Operador

Descrição

Maior do Que

> =

Maior ou Igual

Menor do Que

<=

Menor ou Igual

<> 

Diferente

  • Vá para o modo "Folha de Dados" e visualize os resultados.
  • Volte para o Modo Design, retire o critério colocado no ítem anterior e adicione uma coluna que exiba apenas o Mês da DataPedido. Para isto vá para a primeira coluna em branco ao lado de Ano_Pedido e coloque a seguinte fórmula:

Mês_Pedido: Mês([DataPedido])

  • Utilizamos a Função Mês para extrair somente o mês do campo DataPedido. A função Mês, para cada um dos registros, extrai apenas o mês do campo DataPedido.
  • Coloque um critério para que sejam listados apenas os Pedidos para os Meses de Janeiro, Março, Agosto ou Setembro. Para isto vá para a linha critério no campo Mês_Pedido, e digite o seguinte Critério:

1 ou 3 ou 8 ou 9

  • Utilizamos o Número do Mês como Critério. O "ou" é utilizado para informar ao Microsoft Office Access 2007que ele deve listar os registros, cujo valor da coluna Mês_Pedido apresente um dos valores ligados pelo conectivo lógico "ou". O Microsoft Office Access 2007analisa cada registro, verifica o valor da coluna Mês_Pedido, se o valor for um dos ligados pelo ou, o registro é selecionado.
  • Vá para o modo "Folha de Dados" e visualize os resultados. Dê um clique no botão com o diskete para salvar a consulta e feche a consulta.

Neste tópico foi mostrado para você passo - a - passo com o objetivo de revisarmos alguns aspectos básicos das consultas. Nos próximos tópicos não iremos repetir todo o procedimento para criar uma consulta, adicionar campos e colocar critérios, vamos focar mais nos aspectos específicos de cada tópico, salientando a utilização e aplicabilidade de cada uma das técnicas que estiverem sendo apresentadas.

5.2 - Utilização de Critérios avançados, operadores e funções de domínio

Neste tópico iremos apresentar diversas técnicas avançadas em Pesquisas com o Microsoft Access 2007. Aprenderemos a utilizar Operadores, tais como Like ( Como), In ( Em) , Between ( Entre); aprenderemos a utilizar os caracteres curinga "*" e "?". Também veremos a utilização das chamadas funções de agregação e domínio ( Mín, Máx, Dcount, etc).

Vamos seguir a metodologia utilizada no tópico anterior, ou seja, vamos criando consultas de exemplo e explicando os critérios e técnicas utilizados. Usaremos como base para este tópico o Banco de Dados "curso_av.mdb".

Para início de conversa vamos criar uma consulta que exiba somente os pedidos para os meses de Janeiro e Fevereiro de 2009 (DataPedido).

Para criar a consulta proposta faça o seguinte:

  • Crie uma nova consulta baseada na tabela "Pedidos"
  • Adicione os campos: NúmeroDoPedido, CódigoDoCliente, DataPedido, CidadeDestino.
  • Classifique a consulta em ordem Crescente do campo NúmeroDoPedido.
  • Para filtrar os pedidos cuja DataPedido esteja entre os meses de Janeiro e Fevereiro de 2009 coloque o seguinte critério, na linha critério na coluna DataPedido:

(Mês([DataPedido])=1 Ou Mês([DataPedido])=2) E Ano([DataPedido])=2009

  • Sua grade deve estar semelhante a indicada na próxima figura:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 31 - Consulta para exibir somente os pedidos de Janeiro e Fevereiro de 2009.

  • Dê um clique no botão executar e observe os resultados. Você deve estar recebendo uma listagem com apenas dos pedidos para os meses de Janeiro e Fevereiro de 2009. Vamos analisar com um pouco mais de calma o critério utilizado nesta consulta.
  • Primeiro: Utilizamos a função Mês para extrair apenas a informação referente ao mês do campo DataPedido. A função Mês recebe como parâmetro a DataPedido ( Data Completa - dia, mês e ano) e retorna apenas o Mês, de uma forma numérica, isto é: Janeiro=1, Fevereiro=2, e assim por diante.
  • A Primeira parte de critério: (Mês([DataPedido])=1 Ou Mês([DataPedido])=2), utiliza duas vezes a função Mês, ligando os resultados através do "Conectivo Lógico Ou". O Conectivo Ou está dizendo para o Microsoft Office Access 2007o seguinte: Para que você selecione um registro, o valor do mês da DataPedido deve ser um destes dois valores: 1 = Janeiro ou 2 = Fevereiro, isto é somente selecione aqueles pedidos , cujo mês da DataPedido for Janeiro Ou Fevereiro.
  • A segunda parte do critério: E Ano([DataPedido])=2009, impõe mais uma condição, isto é, além do Mês ter que ser Janeiro OU Fevereiro, o ano, obrigatoriamente tem que ser 2009. Com isso o Microsoft Office Access 2007somente retornará os Pedidos para os meses de Janeiro e Fevereiro do ano de 2009. Um erro bastante comum é utilizar, na primeira parte do critério um conectivo "E" ao invés do "Ou". Vamos pensar um pouco, o que significa um pedido ter que atender a condição  (Mês([DataPedido])=1 E Mês([DataPedido])=2)? Significa que o mês da DataPedido, deve ser, ao mesmo tempo, Janeiro e Fevereiro, ora, uma data somente pode se referir a um determinado mês. Caso colocássemos um "E" ao invés de um "OU" ligando a condição do Mês, obteríamos como resultado nenhum registro retornado.
  • Volte para o Modo Design ( dê um clique no botão bem da esquerda ) e troque o "OU" por um "E". Volte para o modo Folha de Dados e observe. Você deverá receber uma listagem em branco, conforme descrito anteriormente e indicado pela figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 32 -  A Colocação de um "E" incorretamente, gerou uma listagem em branco.

  • Dê um clique no botão com o Diskete para salvar a consulta. O Microsoft Office Access 2007solicita que você digite um nome para a consulta. Digite: Consulta Pedidos e dê um clique em OK.

Agora vamos alterar um pouco a nossa Consulta para adicionar mais critérios. Vamos manter o critério adicionado no item anterior ( para filtrar apenas os registros dos meses de Janeiro e Fevereiro do ano de 2009) e adicionar mais um critério para que somente sejam exibidos os pedidos cuja CidadeDestino seja Franca-SP ou Salvador-BA.

Para adicionar este critério faça o seguinte:

  • Se você não estiver no Modo Design, volte para o Modo Design da Consulta Pedidos
  • Adicione o seguinte critério na linha Critério da Coluna CidadeDestino: 

" Franca-SP " Ou " Salvador-BA "

  • Observe que mesmo que você não digite as aspas, ao sair do campo, o Microsoft Office Access 2007coloca as aspas automaticamente. Isto acontece porque o campo CidadeDestino é um campo do tipo texto. Critérios para campos do tipo texto devem, sempre, vir entre aspas.
  • Dê um clique no botão executar para ir para o modo Folha de Dados. Você deverá receber uma listagem com somente os pedidos para os meses de Janeiro e Fevereiro de 2009 e cujo CidadeDestino seja Franca-SP Ou Salvador-BA, conforme indicado pela figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 33 -  Listagem após termos adicionado um Critério para o CidadeDestino.

OBS : Ao colocarmos critérios em mais de um campo - No nosso exemplo colocamos critérios nos campos DataPedido e CidadeDestino - O Microsoft Office Access 2007liga os critérios através de um conectivo "E". Isto significa que para um registro aparecer na listagem ele tem que satisfazer todos os critérios estabelecidos na linha critério, no nosso exemplo, o mês da DataPedido deve ser Janeiro ou Fevereiro, o ano deve ser 2009 e a CidadeDestino deve ser Franca-SP Ou Salvador-BA.

Vamos continuar fazendo alterações na Consulta Pedidos. Agora vamos pedir para que o Microsoft Office Access 2007exiba uma listagem de todos os pedidos cujo mês seja Janeiro ou Fevereiro, o ano 2009 e a Cidade seja Franca-SP e também sejam exibidos, todos os Pedidos cuja Cidade seja Salvador-BA, independentemente da DataPedido.

Para obter esta listagem faça o seguinte:

  • Se você não estiver no Modo Design, volte para o Modo Design da Consulta Pedidos;
  • Altere o  critério na linha Critério da Coluna CidadeDestino para:  Franca-SP;
  • Na linha de baixo - Linha Ou - , na coluna CidadeDestino coloque o seguinte critério: Salvador-BA;
  • Dê um clique no botão executar para ir para o modo Folha de Dados e observe os resultados.

IMPORTANTE: Esta consulta tem como objetivo salientar a utilização da linha "Ou" no Modo Design da consulta. Critérios colocados nesta linha, são unidos com os critérios colocados na linha de cima através de um conectivo Ou. Por isso que deslocamos o critério Salvador-BA para esta linha. Com isso estamos dizendo ao Microsoft Office Access 2007para pesquisar todos os pedidos cuja mês da DataPedido for igual a Janeiro ou Fevereiro e ano igual a 2009, com CidadeDestino igual a Franca-SP ( Linha Critério) "Ou" os Pedidos cuja CidadeDestino for Salvador-BA, independentemente da DataPedido ( Linha Ou).

Se colocarmos mais de um critério dentro da linha Ou ( em diferentes campos ), os mesmos são ligados através de um conectivo lógico E. Como regra geral podemos colocar da seguinte maneira:

Critérios Dentro da mesma linha -> Ligados por um conectivo E
Entre as Linhas Critério e Ou -> Ligados por um conectivo Ou.

Agora vamos adicionar mais alguns campos e começar a utilizar pesquisas mais avançadas. Inicialmente vamos adicionar o campo NomeDaEmpresa, da tabela Clientes ( Para isto precisaremos adicionar a tabela Clientes à nossa consulta). Depois utilizaremos o Operador Like para exibir somente os Pedidos para clientes cujo nome inicie pelas letras A, B, C, D, E, F ou G.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para o Modo Design da Consulta Pedidos;
  • Exclua os Critérios colocados na Linha Critério e na Linha Ou;
  • Adicione a tabela Clientes, para que você possa ter acesso ao campo NomeDaEmpresa. Para isso, dê um clique no botão "Adicionar Tabelas" ( botão mostrar tabela). Na janela que surge dê um clique em Clientes e depois dê um clique no botão adicionar. Dê um clique em OK para voltar para o Modo Design da Tabela.
  • Adicione o campo NomeDaEmpresa da tabela Clientes, retire a classificação do campo NúmeroDoPedido e classifique o campo NomeDaEmpresa em ordem Crescente.
  • Na linha critério, do campo NomeDaEmpresa, coloque o seguinte critério:

Como "[A-G]*"

  • Dê um clique no botão executar e observe o resultado. Conforme você pode notar, o Microsoft Office Access 2007somente exibe os Pedidos para os clientes cuja primeira letra do nome esteja na faixa de A até G, conforme indicado pela figura a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 34 -  Utilização do Operador Like para exibir apenas os Pedidos para os Clientes cuja primeira letra do nome esteja na faixa de A até G.

Existem alguns detalhes importantes a respeito da última consulta que devemos analisar:

  • Observe que para gerar a consulta estamos utilizando dados de duas tabelas: Pedidos e Clientes. Também observe que ao adicionar a tabela Clientes o Microsoft Office Access 2007trouxe o Relacionamento entre as tabelas, conforme havíamos definido no início deste curso: Um relacionamento do tipo Um Para Vários entre a tabela Cliente e a Tabela Pedidos. Com base no campo CódigoDoCliente na tabela Pedidos e do Relacionamento, o Microsoft Office Access 2007localiza o registro correspondente na tabela Clientes.
  • Observe que o campo NomeDaEmpresa, que foi o última a ser adicionado, ficou bem a esquerda. Podemos deslocá-lo , mais para a esquerda, caso julguemos necessário. Para deslocar o campo NomeDaEmpresa, faça o seguinte: No Modo Design dê um clique na coluna NomeDaEmpresa para selecionar a coluna ( Um clique na barrinha cinza, logo acima do nome do campo - NomeDaEmpresa). Observe que aparece um quadradinho abaixo da seta do mouse, basta permanecer com o botão do mouse pressionado e arrastá-lo para o local desejado. Para treinar, desloque a coluna NomeDaEmpresa para que fique entre as colunas NúmeroDoPedido e CódigoDoCliente.
  • Finalmente, a utilização do Operador Like ( Operador Como em Português). O Like é muito utilizado para pesquisas em campos do tipo Texto, como por exemplo Nome, Endereço, Observações, etc. No Nosso exemplo utilizamos o operador Like, juntamente com a seguinte indicação [A-G]*. A Parte [A-G] informa para o Microsoft Office Access 2007que a primeira letra do campo NomeDaEmpresa, deve estar na faixa de A até G ( A, B, C, D, E, F ou G). O "*" indica que não interessa o que vier depois. Isto é justamente o que queremos: A Primeira Letra do Nome na faixa de A-G, independente do restante do nome. Resumindo o nosso critérios, teríamos:

Operador Like -> Pesquisa um determinado padrão em campos de texto;
[A-G] -> Primeira Letra do Nome na faixa de A até G;
* -> Qualquer coisa que vier depois da primeira letra.

Algumas observações importantes sobre o uso do Like:

Quando um intervalo de caracteres é especificado, estes devem aparecer em uma ordem de classificação crescente (do menor para o maior). [A-Z] é um padrão válido, mas [Z-A] não é.

Um ponto de exclamação (!) no início de lista de caracteres significa que uma correspondência é realizada se qualquer caractere, com exceção daqueles em lista de caracteres, for encontrado. Quando utilizado fora de colchetes, o ponto de exclamação corresponde a si mesmo. Por exemplo o seguinte critérios Como "[!A-G]*", pediria para o Microsoft Office Access 2007listar todos os pedidos, menos aqueles cuja primeira letra do campo NomeDaEmpresa esteja na faixa de A até Z. Na prática o Microsoft Office Access 2007listaria apenas os pedidos cuja primeira letra do campo NomeDaEmpresa, fosse de H até Z.

Você pode encontrar mais detalhes sobre o operador Like no Help do Microsoft Access 2007. Iremos ver mais alguns usos do mesmo, através de exemplos nas próximas consultas.

Abaixo temos uma tabela com os caracteres curinga que podem ser utilizados com o operador Like:

Caractere(s) em padrão            Coincide com expressão;
?                                               Qualquer caractere isolado;
*                                               Zero ou mais caracteres;
#                                               Qualquer dígito isolado (0 — 9);
[listadecaract]                           Qualquer caractere isolado em listadecaract;
[!listadecaract]                          Qualquer caractere isolado não-presente em listadecaract.

Vamos ver mais alguns exemplos de utilização do Operador Like.

Utilize o Operador Like para obter uma listagem de todos os Pedidos para empresas que tenham as letras as letras "Sa" no início do campo NomeDaEmpresa.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para ele na Consulta Pedidos.
  • Coloque o seguinte critério na linha Critério do campo NomeDaEmpresa: Como "BE*"
  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 35 -  Lista de Pedidos para Clientes cujo NomeDaEmpresa inicia com "BE".

Observe que se o NomeDaEmpresa possuir "BE" em qualquer outra parte, que não seja o início do nome, este critério não irá pegar. Além disso experimente colocar o "BE" todo em letra minúsculas. Você verá que para o Microsoft Office Access 2007não fará diferença. Observe, também, que mesmo que você digitar Like no critério, após sair da linha critério, o Microsoft Office Access 2007troca o Like por um Como ( Tradução de Like para o Português).

Vamos aprimorar um pouco mais a utilização e o nosso conhecimento sobre o operador Like (Como).

Crie uma consulta que selecione apenas os Pedidos para as empresas cujo campo NomeDaEmpresa possua a palavra "Th"  em qualquer parte do nome.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para ele na Consulta Pedidos.
  • Coloque o seguinte critério na linha Critério do campo NomeDaEmpresa:

Como "*Th*"

  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 36 -  Listagem com Pedidos para empresa com Th em qualquer parte do Nome.

Observe a maneira como utilizamos o operador Como: Como "*Th*" . Com a utilização deste critério, estamos informando ao Microsoft Office Access 2007que desejamos uma listagem somente dos pedidos para as empresas que possuam a palavra Th em qualquer parte do nome, não importando o que vem antes ( * ) ou o que vem depois ( * ).

Esta é uma das utilizações mais comuns para o operador Como. Por exemplo, se você tiver um campo NomeDoContribuinte e quiser pesquisar todos os contribuintes que tenham a palavra José no nome ( José Da Silva, Maria José, Aparecido José, etc), bastaria colocar o seguinte critério no campo NomeDoContribuinte:  Como "*José*". Caso você desejasse apenas aqueles que possuem Da Silva no final do nome ( José da Silva, Maria Aparecida da Silva, Antônio Carlos da Silva , etc), bastaria colocar o seguinte critério: Como "*Da Silva". Observe que não vai o * depois do Da Silva, pois queremos somente aqueles em que o Da Silva aparece no final do nome e não em qualquer parte do nome.

Vamos continuar explorando a utilização do Operador Como, agora em conjunto com outros operadores ( Ou e E)

Crie uma consulta que selecione apenas os Pedidos para as empresas cujo campo NomeDaEmpresa possua a palavra "Th"  em qualquer parte do nome e que o NomeDaEmpresa começa com as letras M ou N.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para ele na Consulta Pedidos
  • Coloque o seguinte critério na linha Critério do campo NomeDaEmpresa:

Como "*Th*" E Como "[M-N]*"

  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 37 -  Somente os Pedidos para empresas cujo nome começa com M-N e que contenham a palavra Th.

A primeira parte de critério é igual a utilizada na consulta anterior ( Como "*Th*" ), a qual pesquisa todas as empresas que contenham a palavra Th em qualquer parte do nome. A Segunda parte de critério ( Como "[M-N]*"), ligada a primeira parte pelo operador E, indica que a primeira letra do nome deve estar na faixa de M até N ([M-N]), não importando o que vem depois (*). Como as duas partes estão ligadas pelo operador E, ambas as condições devem ser satisfeitas para que o registro seja selecionado, isto é, o NomeDaEmpresa deve ter a palavra Th em qualquer parte do nome e também deve iniciar com a letra M ou com a Letra N, para que seja selecionado.

A seguir um resumo sobre a utilização dos caracteres curingas:

Sobre utilizar caracteres curinga para procurar valores parciais ou coincidentes. Você utiliza caracteres curinga como marcadores de outros caracteres quando você está especificando um valor que deseja localizar e conhece apenas parte do valor.

Deseja localizar valores que comecem com uma letra específica ou coincidam com um determinado padrão.

Você pode utilizar os caracteres a seguir nas caixas de diálogo Localizar e Substituir, ou em consultas, comandos e expressões, para localizar coisas tais como valores de campo, registros ou nomes de arquivo.

Caractere

Utilização

Exemplo

*

Coincide com qualquer número de caracteres. Pode ser utilizado como o primeiro ou o último caractere da seqüência de caracteres.

qu* encontra que, quando e quanto

?

Coincide com qualquer caractere alfabético isolado.

B?la localiza bala, bola e bula

[ ]

Coincide com qualquer caractere que esteja entre os colchetes.

B[ao]la localiza bala e bola, mas não bula

!

Coincide qualquer caractere que não esteja entre os colchetes.

b[!ae]la localiza bola e bula, mas não bela

-

Coincide com qualquer caractere de um intervalo de caracteres. Você deve especificar o intervalo em ordem crescente (de A a Z, e não de Z a A).

b[a-c]la localiza bala, bbla e bcla

#

Coincide com um único algarismo qualquer.

1#3 localiza 103, 113, 123

Observações:  
Os caracteres curinga devem ser utilizados com tipos de dados de texto, embora você possa, às vezes, utilizá-los com sucesso com outros tipos de dados, tais como datas, se você não alterar as propriedades das Configurações Regionais destes tipos de dados.

Ao utilizar caracteres curinga para procurar um asterisco (*), um ponto de interrogação (?), um sinal numérico (#), um colchete de abertura ([) ou um hífen (-), você deve colocar o item que você está procurando entre colchetes. Por exemplo, para procurar um ponto de interrogação, digite [?] na caixa de diálogo Localizar. Quando você estiver procurando um hífen e outros caracteres simultaneamente, coloque o hífen antes ou depois de todos os outros caracteres dentro dos colchetes. (Entretanto, se houver um ponto de exclamação (!) depois do colchete de abertura, coloque o hífen depois do ponto de exclamação). Quando você estiver procurando um ponto de exclamação ou um colchete de fechamento, não é necessário colocá-los entre colchetes.

Você não pode procurar os colchetes de abertura e fechamento ([ ]) juntos porque o Microsoft Office Access 2007interpreta esta combinação como uma seqüência de comprimento zero.

Se você estiver procurando valores em uma tabela que não seja do Microsoft Access 2007, como, por exemplo, uma tabela do Microsoft SQL Server, pode ser necessário utilizar caracteres curinga diferentes. Verifique a documentação da fonte de dados para obter maiores informações.

Vamos construir mais algumas consultas para fixar bem a utilização do Operador Como.

Crie uma consulta que selecione apenas os Pedidos para as empresas cujo campo NomeDaEmpresa inicie com a letra C e termina com a letra E.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para ele e na Consulta Pedidos;
  • Coloque o seguinte critério na linha Critério do campo NomeDaEmpresa:

Como "C*O"

  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 38 – Exemplo. 

Muitas vezes, na utilização do operador Como existem duas ou mais maneiras de obter o mesmo resultado. Por exemplo, se você quiser uma listagem de todas as empresas cujo nome inicie na faixa de A até F. Você pode usar o critério tradicional:

Como "[A-F]*". Outra maneira é informar ao Microsoft Office Access 2007que você quer todas as empresas, menos aquelas cuja primeira letra esteja na faixa de G até Z. Neste caso você usaria o seguinte critério: Como "[!G-Z]*" , o qual informa ao Microsoft Office Access 2007para listar todas as empresas que Não Iniciem com a primeira letra na faixa de G até Z, que é o mesmo que dizer para trazer as que iniciem na faixa da A até F.

O Ponto de exclamação é que informa o "Não".

Você pode combinar operadores Como, utilizando o Operador E e o operador Ou.

Vamos explorar um pouco mais a utilização do Operador Como, devido a sua grande utilização e importância.

Crie uma consulta que selecione apenas os Pedidos para as empresas cujo campo NomeDaEmpresa inicie com a letra B, a terceira letra seja um A ou todos os Pedidos para as Companhias cuja última letra do nome seja N, independente da letra inicial e da terceira letra.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para ele na Consulta Pedidos;
  • Elimine os critérios adicionados anteriormente;
  • Coloque o seguinte critério na linha Critério do campo NomeDaEmpresa:

Como "C?A*" Ou Como "*O"

  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 39 - NomeDaEmpresa iniciando com A, terceira letra C, ou terminando com O.

Observe a utilização do Ou ao invés do E. A Primeira parte ( Como "C?A" )diz para o Microsoft Office Access 2007trazer a listagem dos que tem na primeira letra um C, não importa o que tem na segunda ( ? ) e na terceira um A . Já a segunda parte do critério ( Como "O*" ), informa ao Microsoft Office Access 2007para listar aquelas empresas cuja nome termina com a letra O. Como os dois critérios estão ligados por um Ou, isto significa que para estar na listagem, basta que o NomeDaEmpresa atenda a um dos critérios, isto é, tenha na primeira letra um C e na terceira um A, ou que termine com O.

Você pode observar isto na listagem que existem empresas que não terminam com O, porém atendem ao primeiro critério e existem empresas que não iniciam com C e tem na terceira letra um A, porém atendem ao segundo critério. Isto comprova que quando duas condições estiverem ligadas pelo conectivo Ou, todos os registros que atenderem a uma das condições, estará na listagem. Se atender as duas condições melhor ainda, também estará na listagem. A única hipótese de um registro não estar na listagem é se não atender a nenhuma das duas condições.

Vamos começar a utilizar alguns outros operadores e funções do Microsoft Office Access 2007para especificar critérios em consultas.

Criar uma consulta que exiba somente os registros cujo NúmeroDoPedido esteja entre 4001 e 4013 e que a CidadeDestino seja Uberlândia-MG ou Salvador-BA.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para ele na Consulta Pedidos;
  • Elimine os critérios adicionados anteriormente;
  • Coloque o seguinte critério na linha Critério do campo NúmeroDoPedido:

Entre 4001 E 4013

  • Coloque o seguinte critério na linha Critério do campo CidadeDestino:

Uberlândia-MG Ou Salvador-BA

  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 40 - Pedidos entre 4001 e 4013 e cuja CidadeDestino seja Uberlândia-MG ou Salvador-BA.

Temos dois aspectos importantes a serem observados nesta consulta. Primeiro a utilização do Operador "ENTRE". Este Operador, normalmente, é utilizado para pesquisar valores dentro de uma determinada faixa, sendo que o valor inicial é o limite inferior e o valor final ( Após o E ) é o limite superior. No campo CidadeDestino colocamos o critério Uberlândia-MG Ou Salvador-BA, para pesquisar aqueles pedidos somente para Uberlândia-MG ou Salvador-BA. Observe que quando dois ou mais critérios são especificados na linha critério, o Microsoft Office Access 2007 liga os mesmos através de um operador E. No nosso exemplo para que um registro seja selecionado ele deverá ter o Número do Pedido entre 4001 e 4013 E também ter como CidadeDestino Uberlândia-MG ou Salvador-BA.

Uma vez que os caracteres curinga, como *, são tratados como literais, você não pode utilizá-los com o operador Between...And. Por exemplo, você não pode utilizar 980* e 989* para localizar todos os códigos postais que começam com 980 e 989. Em vez disso, você tem duas alternativas: pode adicionar uma expressão para a consulta que pegue os três caracteres da esquerda do campo de texto e utilizar Between...And nesses caracteres, ou pode preencher os valores superior e inferior com caracteres extras — neste caso, 98000 a 98999, ou 98000 a 98999 – 9999 se estiver utilizando códigos postais estendidos. (Você deve omitir o – 0000 dos valores inferiores pois, caso contrário, 98000 será excluído se alguns códigos postais tiverem seções e outros não).

Criar uma consulta que exiba somente os registros cujo NúmeroDoPedido esteja entre 4001 e 4013 e que a DataPedido esteja no período de Janeiro à Fevereiro de 2010.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para ele na Consulta Pedidos;
  • Elimine os critérios adicionados anteriormente;
  • Coloque o seguinte critério na linha Critério do campo DataPedido:

(Mês([DataPedido]) Entre 1 E 2) E Ano([DataPedido])=2010

  • Coloque o seguinte critério na linha Critério do campo NúmeroDoPedido

Entre 4001 E 4013

  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 41 - Pedidos com Número entre 4001 E 4013, e Período de Janeiro a Fevereiro de 2010.

Agora começou a ficar mais divertido este treinamento. Observe o critério que utilizamos no campo DataPedido. Primeiro utilizamos a função Mês para extrair somente o Mês da DataPedido. A função Mês retorna uma valor Numérico ( Jan=1, Fev=2, Mar=3, etc). Utilizamos o Operador Entre para exigir que somente fossem selecionados os registros cujo Mês esteja na faixa de 1 a * ( Janeiro a Fevereiro). Também precisamos fixar que queremos apenas o ano de 2010 utilizamos um operador E ( uma vez que as duas condições precisam ser atendidas - Mês de Janeiro a Fevereiro para o Ano de 2010) e o critério Ano ([DataPedido]) = 2010. Fizemos uso da função Ano para extrair apenas o Ano da Data e compará-lo com 2010. Com a combinação dos dois critérios obtemos o resultado desejado para a DataPedido: Somente pedidos de Janeiro a Fevereiro para o Ano de 2010. No campo NúmeroDoPedido, utilizamos o operador Entre para limitar os Pedidos com NúmeroDoPedido entre 4001 e 4013 para o Período especificado anteriormente.

Podemos notar que a utilizando funções em conjunto com os operadores, iremos construir consultas com critérios de filtragem bastante sofisticados. Vamos explorar um pouco mais as possibilidades de utilização das funções em conjunto com os operadores.

Criar uma consulta que exiba somente os registros cujo NomeDaEmpresa tenha CO como as duas primeiras letras. Ao invés de utilizar o operador Como, utilize a função Esquerda.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para o Modo Design da Consulta Pedidos;
  • Elimine os critérios adicionados anteriormente;
  • Coloque o seguinte critério na linha Critério do campo NomeDaEmpresa:

Esquerda([NomeDaEmpresa];2)="CO"

  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 42 - Registros com Nome Da Empresa iniciando com CO.

Claro que, facilmente, poderíamos obter os mesmos resultados, simplesmente utilizando o operador Como da seguinte maneira:  Como "CO*". O Objetivo é salientar a utilização da função Esquerda. Esta função recebe dois parâmetros: O Nome do Campo sobre o qual a mesma vai atuar e o número de caracteres que ele deve retornar iniciando a esquerda do campo. Os parâmetros são separados por ponto e vírgula. Abaixo temos mais alguns exemplos de utilização da função esquerda:

Curso completo de Access 2007 Avancado - Julio Battisti
Observe que o espaço em branco também conta como um caractere: Exemplos 4 e 5.

Além da função esquerda, temos as funções Direita e Meio. A função direita, inicia a direita de um campo e retorna um número determinado de valores.

A sua sintaxe é conforme indicado abaixo:

Direita([NomeDoCampo];NúmeroDeCaracteres)

A função Meio permite que seja retornado um determinado número de caracteres a partir de uma posição específica dentro de um campo. Por exemplo posso retornar 4 caracteres, a partir do 5 caracter. A Sua sintaxe é conforme indicado abaixo:

Meio([NomeDoCampo];PosiçãoOndeIniciar;NúmeroDeCaracteres)

Na tabela a seguir você verá diversos exemplos de utilização das funções Direita, Esquerda e Meio:

Curso completo de Access 2007 Avancado - Julio Battisti  

Estas funções são bastante úteis e podem ser utilizadas em diversas situações práticas do dia-a-dia. Veremos, na parte final do curso, quando for visto Visual Basic for Applications, uma rotina para verificação do DV do CPF. Nesta rotina faremos um uso intensivo das funções Direita, Esquerda e Meio.

Vamos supor que você queira criar uma nova coluna, que vamos chamar de CódigoClientePaís. Este código será formado pelas 3 primeiras letras do campo NomeDaEmpresa e pelas três últimas letras do campo CidadeDestino. Para criarmos esta nova coluna, teremos que utilizar as funções Esquerda ( para extrair as 3 primeiras letras do campo NomeDaEmpresa) e a função direita ( para extrair as três últimas letras do campo CidadeDestino). Além disto teremos que usar o Operador & para concatenar as duas partes. O Operador & é utilizado no Microsoft Office Access 2007para concatenar duas ou mais strings.

Apenas lembrando do tópico inicial sobre consultas, podemos, sempre que necessário, criar novos campos nas consultas, os quais são derivados de dados de outros campos. Tanto podemos criar campos que efetuem cálculos ( por exemplo {PreçoUnitário]*[Quantidade} ) quanto campos que realizam operações com Strings, conforme está sendo proposto no nosso exemplo de juntar as três primeiras letras do campo NomeDaEmpresa, com as três últimas letras do campo CidadeDestino, para formarmos um novo campo que vamos chamar de CódigoApuraçãoEspecial.

Então, Mãos à Obra!

Criar uma consulta que adicione um campo chamado CódigoApuraçãoEspecial, o qual seja formado pelas três primeiras letras do campo NomeDaEmpresa e pelas três últimas letras do campo CidadeDestino.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para o Modo Design da Consulta Pedidos;
  • Elimine os critérios adicionados anteriormente;
  • Vá para a primeira coluna em branco, ao lado do campo CidadeDestino e digite o seguinte:

CódigoApuraçãoEspecial: Esquerda([NomeDaEmpresa];3) & Direita([CidadeDestino];2)

  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 43 - Campo Código Apuração Especial criado a partir dos campos NomeDaEmpresa e CidadeDestino.

Relembrando o que já havíamos visto no início do capítulo sobre consultas: Quando Estivermos adicionando campos calculados ou derivados de outros campos, o que vier antes dos dois pontos é simplesmente o nome que irá aparecer no modo Folha De Dados, conforme pode ser visualizado na figura anterior. O que vem depois dos dois pontos é a expressão que ira gerar os valores para o campo CódigoApuraçãoEspecial. A primeira parte da expressão:

Esquerda([NomeDaEmpresa];3), retorna as três primeiras letras do campo NomeDaEmpresa, as quais são concatenadas pelo operador & com as duas últimas letras do campo CidadeDestino, as quais são retornadas através da utilização da função Direita([CidadeDestino];2).

Outro fato importante a lembrar é que esta coluna não fará parte de nenhuma tabela e os dados nela contidos, não ficam armazenados no banco de dados. Toda vez que a consulta for executada, o Microsoft Office Access 2007irá calcular os valores desta coluna, utilizando a expressão indicada anteriormente. Lembre que um dos princípios básicos de projeto de banco de dados é não armazenar campos calculados.

Vamos sofisticar um pouco mais a nossa consulta.

Crie uma consulta que adicione um campo chamado CódigoApuraçãoEspecial, o qual seja formado pelas três primeiras letras do campo NomeDaEmpresa e pelas duas últimas letras do campo CidadeDestino, mais um hífen ( - ), mais a palavra Barato se o frete for menor ou igual à R$15,00 ou a palavra Caro se o frete for maior do que R$ 15,00.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para o Modo Design da Consulta Pedidos;
  • Adicione o campo Frete da tabela Pedidos;
  • Vá para a coluna criada na Consulta anterior : CódigoApuraçãoEspecial e altera para que fique da seguinte maneira:

CódigoApuraçãoEspecial: Esquerda([NomeDaEmpresa];3) & Direita([CidadeDestino];2) & "-" & SeImed([Frete]<=15;"Barato";"Caro")

  • Vá para o modo Folha de Dados e observe os resultados, veja a figura a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 44 - Refinamentos no Campo CódigoApuraçãoEspecial.

A novidade nesta consulta é a utilização da função SeImed, conforme indicado abaixo:

SeImed([Frete]<=15;"Barato";"Caro")

Esta função possue três parâmetros. O Primeiro faz um teste ( [Frete]<=15). Caso o teste retorne um valor verdadeiro, ou seja, o campo Frete tenha uma valor menor ou igual 15, o segundo parâmetro ("Barato") é retornado. Caso o teste ([Frete]<=15) seja falso, o terceiro parâmetro ("Caro") é retornado. Novamente utilizamos o operador & para concatenar as diversas partes que formam o campo. Observe, também, que para adicionar o hífen ( "-" ), colocamos o mesmo entre aspas. Sempre que quisermos concatenar uma string, precisamos colocá-la entre aspas.

Vamos exercitar um pouco mais a função SeImed ( IF em Português).

Crie uma consulta que adicione um campo chamado ImpostoFrete, o qual seja calculado da seguinte maneira: Se o frete for menor ou igual a R$15,00, o Imposto será de 2 Reais, caso contrário, o imposto será de 5 Reais.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para o Modo Design da Consulta Pedidos;
  • Vá para a primeira coluna em Branco, bem a direita e digite o seguinte:

ImpostoFrete: SeImed([Frete] Entre 0 E 15;0,15;0,2)

Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 45 -Campo Calculado para o valor do Imposto, com base no valor do Frete.

Além do uso da função Selmed, temos mais dois pontos importantes a observar nesta consulta. Lembrando do primeiro item sobre consultas, você deve formatar a coluna ImpostoFrete, para que a mesma exiba os valores no formato de moeda.

Para  fazer isto, volte ao modo design, clique com o botão direito sobre a coluna, no menu que surge clique em propriedades. Na janela que surge em formato escolha Unidade Monetária e em casas decimais escolha 2, dê um clique em OK para fechar a janela das propriedades. Observe que dentro da função Selmed, ao invés de utilizarmos um teste de comparação, utilizamos o operador Entre dentro da função Selmed para testar se o Frete está entre 0 e 15.

Você pode ver que existem enormes possibilidades de utilização de operadores em conjunto com as funções. Você pode encontrar mais informação sobre Operadores e Funções no ajuda do Microsoft Access 2007.

Vamos aprender a utilizar mais um operador, o Operador IN ( Em).

Crie uma consulta que liste apenas os Pedidos para as Cidade(Uberlândia-MG,Castanhal-PA ou Salvador-BA). Utilizar o Operador IN.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para o Modo Design da Consulta Pedidos;
  • No campo CidadeDestino, na linha critério, coloque o seguinte critério:

IN ("Uberlândia-MG";"Castanhal-PA";"Salvador-BA")

  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 46 -Consulta exibindo os pedidos para Uberlândia-MG, Castanhal-PA ou Salvador-BA.

Poderíamos ter construído esta consulta utilizando o Operador OU. Em termos de funcionalidade utilizar – Uberlândia-MG Ou Castanhal-PA Ou Salvador-BA, ou utilizar IN (“Uberlândia-MG”;”Castanhal-PA”;”Salvador-BA”), não faz diferença nenhuma. Na prática quando temos uma lista grande de valores a serem comparados, a utilização do Operador IN(EM) torna-se mais prática e de mais fácil entendimento.

E se nos quiséssemos uma consulta que listasse os pedidos para todos as Cidades, menos para o Uberlândia-MG, Castanhal-PA ou Salvador-BA. Bastaria colocar o seguinte critério, no campo CidadeDestino.

Negado IN("Uberlândia-MG";"Castanhal-PA";"Salvador-BA")

Neste caso utilizamos o operador negado, para informar ao Microsoft Office Access 2007que queremos todos aqueles pedidos, exceto aquelas ( Negado aqueles) cujo campo CidadeDestino seja Uberlândia-MG,Castanhal-PA ou Salvador-BA.
Nunca é demais ressaltar que a combinação de operadores e funções nos oferece diversas possibilidades.

Vamos explorar um pouco mais a linha de totais em consultas, juntamente com o uso das chamadas funções de domínio ou funções agregadas.

Volte para o Modo Design e dê um clique no botão Curso completo de Access 2007 Avancado - Julio Battisti, este botão exibirá uma linha adicional no Modo Design: A Linha de Totais. Esta linha nos permite a utilizar diversas funções para a realização de cálculos e totalizações nas tabelas. Abaixo, segue um pequeno resumo de cada uma das opções da linha de totais:

5.3 - Sobre funções agregadas e outras opções na linha Total da grade da estrutura da consulta

Das 12 opções na linha Total da grade de estrutura da consulta, 9 são funções agregadas. Todas as funções, exceto Primeiro e Último, são explicadas na tabela a seguir. Para considerações especiais sobre a utilização das funções Primeiro e Último, vá no ajuda ->funções. As outras três opções da lista são explicadas na segunda tabela.

Observação: As funções agregadas não incluirão em seus cálculos registros que contenham valores em branco (Nulos). Por exemplo, a função Contar retorna uma contagem de todos os registros sem valores Nulos. Existe uma forma de contar valores Nulos e você pode converter valores Nulos em zeros para que sejam incluídos em um cálculo.

Selecione

Para Localizar

Utilize com esses tipos de dados de campo

Soma

Total dos valores em um campo.

Número, Data/Hora, Moeda e AutoNumeração

Média

Média dos valores em um campo

Número, Data/Hora, Moeda e AutoNumeração

Mínimo

Menor valor  do campo

Texto, Número, Data/Hora, Moeda e AutoNumeração

Máximo

Maior valor em um campo.

Texto, Número, Data/Hora, Moeda e AutoNumeração

Contar

Número de valores em um campo, não contando valores Nulos (em branco).

Texto, Memorando, Número, Data/Hora, Moeda, AutoNumeração, Sim/Não e Objeto OLE

Desv

Desvio padrão dos valores em um campo.

Número, Data/Hora, Moeda e AutoNumeração

Var

Variância dos valores em um campo.

Número, Data/Hora, Moeda e AutoNumeração

As Outras Opções disponíveis estão indicadas na tabela abaixo:

Selecione

Para

Agrupar Por

Definir os grupos para os quais você deseja efetuar os cálculos. Por exemplo, para exibir totais de vendas por categoria, selecione Grupar Por para o campo NomeDaCategoria

Expressão

Criar um campo calculado que inclua uma função agregada em sua expressão. Geralmente, você cria um campo calculado quando deseja utilizar várias funções em uma expressão.

Onde

Especificar critérios para um campo que você não esteja utilizando para definir agrupamentos. Se você selecionar essa opção para um campo, o Microsoft Access ocultará o campo nos resultados da consulta limpando a caixa de seleção Mostrar.

Vamos criar algumas consultas que utilizam diversas opções da linha Total, de tal forma que possamos fixar a utilização destas funções.

Crie uma consulta que calcule o total de Frete por CidadeDestino.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para o Modo Design da Consulta Pedidos;
  • Para facilitar o nosso trabalho, elimine todos os campos no Modo Design, para isso basta marcar a coluna onde está o campo e pressionar a tecla DEL.
  • Adicione o Campo CidadeDestino da tabela Clientes
  • Adicione o Campo Frete
  • Clique no botão Curso completo de Access 2007 Avancado - Julio Battisti, para exibir a linha de totais;
  • No campo CidadeDestino, na linha Total, escolha "Agrupar Por"
  • No campo Frete, na linha Total, escolha "Soma"
  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 47 - Consulta que calcula o Total de Frete por CidadeDestino.

O Agrupar Por pede ao Microsoft Office Access 2007agrupem todos os pedidos para uma Mesma CidadeDestino, e a Soma pede para que o Microsoft Office Access 2007Some o valor do Frete para todos os Pedidos de uma Mesma Cidade.

É importante salientar que para termos acesso a estas opções de Agrupar Por e Soma é necessário que a linha Total esteja sendo exibida.

Poderíamos, ao invés de calcular a Soma, calcular a média dos Pedidos. Para isto basta voltar ao Modo Design e trocar Soma por Média, na linha Total do campo Frete.

Crie uma consulta que conte o número de Pedidos por Cidade de Destino.

Para criar a consulta proposta faça o seguinte:

  • Se você não estiver no Modo Design, volte para o Modo Design da Consulta Pedidos;
  • No campo CidadeDestino, na linha Total, escolha "Agrupar Por", se já estiver Agrupar Por, não altere;
  • No campo Frete, na linha Total, escolha "Contar";
  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 48 - Consulta que conta o Número de Pedidos por País de Destino

Observe que para Contar o Número de Pedidos, bastou alterarmos no campo Frete, na linha Total de Somar para Contar. Poderíamos da Mesma maneira utilizar qualquer uma das outras funções.

Você também poderia adicionar um critério para que somente fossem retornados os registros para Cidades com mais de 50 Pedidos. Para isto basta colocar o seguinte critério no campo Frete:  > 50.

Agora vamos criar algumas consultas que envolvem tanto as totalizações quanto cálculos na mesma consulta. Criaremos uma consulta que irá calcular o total de vendas por Cidade de Destino. Para isto iremos criar uma consulta que calcula o subtotal para cada item de cada pedido ( [Quantidade]*[PreçoUnitário]*(1-[Desconto]) e depois totalizar por Pedido. Depois construiremos uma segunda consulta que ira totalizar estes subtotais por Cidade de Destino.

Com isso estaremos aprendendo um novo conceito relativo a consultas: O Microsoft Office Access 2007permite que seja criada uma consulta, baseada em outra consulta.

Crie uma consulta baseada na tabela  Detalhes Do Pedido, a qual calcule o subtotal para cada item, e some todos os subtotais para obter o total por pedido, utilizando a seguinte fórmula, a qual leva em consideração o desconto:

SubTotal: ([PreçoUnitário]*[Quantidade])*(1-[Desconto])

Para criar a consulta proposta faça o seguinte:

  • Se você ainda estiver com a Consulta Pedidos aberta, feche a mesma;
  • Crie uma nova consulta baseada na tabela Detalhes Do Pedido;
  • Adicione o campo NúmeroDoPedido ;
  • Na segunda coluna em branco, na linha campo coloque a seguinte fórmula:

SubTotal: ([PreçoUnitário]*[Quantidade])*(1-[Desconto])

  • Clique no botão Curso completo de Access 2007 Avancado - Julio Battisti, para exibir a linha de totais;
  • Na linha Total, no campo NúmeroDoPedido, escolha Agrupar Por;
  • Na linha Total, no campo calculado para o subtotal, escolha Soma. Com isso estamos pedindo para o Microsoft Office Access 2007Agrupar Todos os ítens do mesmo pedido e efetuar a soma dos mesmos.
  • Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 49 - Consulta calculando o total para cada Pedido.

Utilizamos, na criação desta consulta, duas técnicas já conhecidas. Criamos um campo calculado, utilizando a fórmula indicada anteriormente. Apenas para lembrar, o que vem antes dos dois pontos é apenas o Nome da Coluna calculada, depois dos dois pontos é que vem a fórmula de Cálculo. Também utilizamos a linha de Total para Agrupar todos os itens do mesmo pedido e pedir para que o Microsoft Office Access 2007fizesse a soma destes itens.

Salve a consulta com o Nome de "Calcula Subtotais" e feche-a.

Crie uma nova consulta, baseada na Consulta "Calcula Subtotais" e na tabela Pedidos. Esta consulta ira fazer o somatório de todos os pedidos, agrupados por Cidade De Destino.
  
Para criar a consulta proposta faça o seguinte:

  • Crie uma nova consulta baseada na Consulta Calcula Subtotais e na Tabela Pedidos.Uma vez no Modo Design, você precisará criar um relacionamento entre a consulta Calcula Totais e a tabela Pedidos. Este relacionamento se dará através do campo NúmeroDoPedido, comum a ambos. Para criar este relacionamento, basta arrastar o campo NúmeroDoPedido da tabela Pedidos sobre o campo NúmeroDoPedido da consulta "Calcula Subtotais". Aqui estamos aprendendo um novo conceito, ou seja, podemos criar um relacionamento diretamente dentro de uma consulta. Este relacionamento somente existe e tem efeito dentro da consulta.
  • Observe que para totalizar por CidadeDestino, precisamos buscar este campo na tabela Clientes. Por isso adicione a tabela Clientes, clicando no botão com o sinal de + em amarelo, clique na tabela Clientes e depois em OK.
  • Adicione o campo CidadeDestino da Tabela Clientes e o campo Subtotal da Consulta "Calcula Subtotais". Exiba a linha Total. No campo CidadeDestino, na linha Total, escolha Agrupar Por e no campo Subtotal, na linha Total escolha Soma;
  • Lembre de formatar a coluna Subtotal para Moeda com duas casas decimais;
  • Vá para o modo Folha de Dados e observe os resultados.

NOTA: Observe que como rótulo da coluna o Microsoft Office Access 2007coloca SomaDeSubtotal, isto é , ao nome do campo (SubTotal), é adicionada a palavra SomaDe. Para alterar este rótulo, basta acessar as propriedades da coluna ( no Modo Design ) e no campo Legenda, digitar o texto desejado. Por exemplo, volte para o Modo Design, clique com o direito sobre a coluna dos subtotais, clique em Propriedades. Na janela que surge , digite Total por Cidade, no campo Legenda, dê um clique no x para fechar. Volte para o modo folha de dados e observe que o título da coluna já deve ter se alterado para Total por Cidade.

Agora que já conhecemos melhor a criação e utilização de Critérios avançados, operadores e funções, vamos fazer alguns exercícios para fixar os conceitos apresentados.

CRIAR AS SEGUINTES CONSULTAS:

  • Criar uma consulta que lista o total de compras por categoria e por produto dentro de cada categoria, conforme indicado na figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 50 - Exercício 01.

  • Criar uma consulta que lista o Número de Pedidos por trimestre, para o ano de 2010, conforme indicado pela figura abaixo:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 51 - Exercício 02.

03) Alterar a consulta do item anterior, para que ao invés do número de pedidos por trimestre, seja exibido o número de pedidos por mês para o ano de 2010.

04) Criar uma consulta que exiba o total de vendas por Vendedor, para o ano de 2010.

05) Criar uma consulta que exiba todas os Pedidos ( NúmeroDoPedido, DataPedido, DataEntrega, Frete e CidadeDestino) para o ano de 2010 e que o número de dias entre a DataPedido e a DataEntrega seja maior do que 7.

06) Alterar a consulta do item anterior de tal forma que somente sejam exibidos os pedidos para Clientes cujo NomeDaEmpresa tenha a primeira letra no intervalo de A até P e cujo Cidade Destino não seja Uberlândia-MG ou Uberaba-MG.

5.4 - Consultas Parametrizadas como Critérios:

Até este momento, estivemos trabalhando com consultas nas quais colocávamos, diretamente, no Modo Design, os critérios desejados.

Podemos criar consultas mais genéricas, as quais ao serem executadas nos solicitam que seja digitado um determinado valor para um determinado critério. Por exemplo, ao invés de colocarmos Salvador-BA como critério para o campo CidadeDestino, podemos fazer com que o Microsoft Office Access 2007solicite um valor para o critério, cada vez que a consulta for executada. Isso torna a consulta bem mais ágil, pois cada vez que executarmos a mesma, podemos digitar um critério diferente, de tal maneira que não precisamos entrar no Modo Design para digitar um critério diferente.

Este tipo de consulta é chamada de "Consulta Parametrizada". Para criarmos uma consulta parametrizada, ao invés de digitarmos diretamente um valor para o critério, digitamos uma expressão do seguinte tipo:

[Digite o Valor para o Cidade Destino :]

Por exemplo, na linha critério, do campo CidadeDestino, podemos digitar a expressão indicada anteriormente. O texto dentro dos colchetes é simplesmente um texto explicativo, que será exibido quando a consulta for executada e o valor do Parâmetro for solicitado. Este texto serve como orientação para os usuários que forem utilizar a consulta.

Podemos utilizar expressões deste tipo em mais de um campo em uma mesma consulta. Por exemplo se você quiser que o Microsoft Office Access 2007solicite o nome do CidadeDestino, uma data inicial e uma data final, de tal forma que somente sejam retornados os Pedidos para a Cidade digitada e dentro do período especificado, você pode fazer isso sem maiores problemas.

Existem algumas limitações com a utilização de parâmetros. Por exemplo, se você utilizar uma expressão para solicitar que o usuário digite um CPF. Ao digitar o CPF, o usuário terá que digitar os pontos e o traço da formatação do CPF, uma vez que não podemos colocar uma máscara de entrada para o parâmetro, de tal forma que o usuário somente precise digitar os números.

De uma forma geral a utilização de consultas parametrizadas aumenta em muito a flexibilidade das consultas no Microsoft Access 2007, pois não precisamos criar uma consulta diferente para cada critério que vamos utilizar. Ao invés disso podemos criar uma única consulta parametrizada, cada vez que executarmos a mesma o Microsoft Office Access 2007nos solicita o valor para o parâmetro.

Vamos usar a mesma abordagem do tópico anterior, isto é, vamos criar uma série de consultas que salientam os diversos aspectos da utilização de consultas parametrizadas. No final deste tópico serão propostos alguns exercícios para fixação dos conceitos apresentados.

Nunca é demais salientar que maiores informações sempre podem ser obtidas na Ajuda do Microsoft Access 2007, o qual apresenta uma referência completa de todas as funções e operadores, bem como diversos exemplos sobre consultas.

Crie uma consulta que liste o NúmeroDoPedido, DataPedido, Frete e CidadeDestino. Fazer com que ao ser executada a consulte solicite que seja digitado um nome de Cidade e que sejam retornados somente os Pedidos para a Cidade digitada.

Para criar a consulta proposta faça o seguinte:

  • Feche todas as consultas que você tiver abertas no Microsoft Access 2007;
  • Crie uma nova consulta baseada nas tabelas Pedidos e Clientes ( Precisamos a tabela Clientes para acessarmos o campo CidadeDestino);
  • Adicione os campos NúmeroDoPedido, DataPedido e Frete da tabela Pedidos e o campo CidadeDestino da tabela Clientes;
  • Na linha Critério, do campo CidadeDestino, digite o seguinte:

[Digite a Cidade Desejada:]

  • Salve a consulta com o nome de Consulta Parametrizada 01;
  • Vá para o modo Folha de Dados, o Microsoft Office Access 2007abrirá uma janela solicitando que você digite o nome da Cidade desejada, conforme indicado a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 52 - Consulta Parametrizada, solicitando que seja digitado o valor do Parâmetro.

  • Digite Uberlândia-MG e dê um clique em OK, você verá os resultados, conforme indicado na figura a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 53 - Consulta exibindo somente os pedidos para Uberlândia-MG.

  Cada vez que você executar esta consulta, o Microsoft Office Access 2007irá solicitar que você digite um valor para o campo CidadeDestino, valor este que será utilizado como critério de seleção.

Altere a consulta criada anteriormente, para que além de pedir que seja digitado a Cidade, a mesma peça para que seja digitada uma Data Inicial e uma Data Final e exiba somente os Pedidos para a Cidade digitada e dentro do período especificado.

Para criar a consulta proposta faça o seguinte:

  • Volte para o Modo Design da Consulta Parametrizada 01;
  • Na linha Critério do campo DataPedido, digite o seguinte:

Entre [Data Inicial:] E [Data Final:]

  • Com a expressão acima, ao executarmos a consulta, o Microsoft Office Access 2007solicitará que sejam digitadas duas datas. Ao digitar a data o usuário deve digitar inclusive as Barras Separadoras, por exemplo: 01/01/2010. O Microsoft Office Access 2007também solicitará que seja digitado o nome da Cidade;
  • No final será exibida uma listagem com todos os Pedidos para a Cidade digitada e dentro do período digitado;
  • Vá para o Modo Folha de Dados. O Microsoft Office Access 2007começa a solicitar que os parâmetros sejam digitados;
  • Na janela abaixo vemos o Microsoft Office Access 2007solicitando que seja digitada a data inicial. Digite 01/01/1995 e dê um clique em OK

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 54 -Digitando a Data Inicial.

  • Na janela abaixo vemos o Microsoft Office Access 2007solicitando que seja digitada a data Final. Digite 31/01/2010 e dê um clique em OK.

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 55 -Digitando a Data Final.

  • Na janela abaixo, vemos o Microsoft Office Access 2007solicitando que seja digitado o nome da Cidade. Digite Uberlândia-MG e dê um clique em OK.

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 56 - Digitando a Cidade de Destino.

  • Após Clicar em OK, o Microsoft Office Access 2007irá para o Modo Folha de Dados, exibindo os registros que foram selecionados de acordo com os critérios digitados ( CidadeDestino = Uberlândia-MG e Período de 01/01/2010 até 31/01/2010). Na janela abaixo podemos ver os resultados exibidos pelo Microsoft Access 2007.

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 57 - Pedidos para a Cidade de Uberlândia-MG durante o ano de 2010.

Observe a utilização do Operador Entre em conjunto com os parâmetros, na seguinte expressão: Entre [Data Inicial:] E  [Data Final:]

Quando executamos a consulta e digitamos os valores para a Data Inicial (01/01/2010) e para a Data Final (31/01/2010), o Microsoft Office Access 2007coloca estes valores na expressão e o critério se transforma em Entre #01/01/2010/# E #31/01/2010#.

O Microsoft Office Access 2007substitui os parâmetros pelos valores digitados. O sinal de # é adicionado pelo Microsoft Access 2007, pois se tratam de campos do tipo Data e valor do tipo data deve vir delimitado, para efeitos de critérios de pesquisa em consultas, pelos caracteres #, no início e no final da data.
  
Altere a consulta criada no item anterior, de tal forma que o usuário possa digitar * quando for solicitado o nome da Cidade, para que sejam exibidos os pedidos para todos as Cidades, dentro do período especificado.

Para criar a consulta proposta faça o seguinte:

  • Volte para o Modo Design da Consulta Parametrizada 01;
  • Altere a linha Critério, no campo CidadeDestino, e coloque o seguinte critério:

Como '*'+[Digite a Cidade Desejada (* para todos):]+'*'

  • Vá para o modo Folha de Dados, ao ser solicitada a Data Inicial, digite 01/01/2010. Ao ser solicitada a Data Final, digite 31/01/2010. Ao ser solicitado o nome da Cidade de destino, digite *, conforme indicado a seguir:

Curso completo de Access 2007 Avancado - Julio Battisti
Figura 58 - Digite * no nome da Cidade, para que sejam exibidos pedidos para todos as Cidades.

  • Ao clicar em OK, será exibida uma listagem com todos os Pedidos, dentro do período especificado e para todos as Cidades.

Observe que alteramos o parâmetro na Cidade Destina em dois pequenos detalhes. Adicionamos um asterisco antes e um depois do parâmetro que vem dentro dos colchetes. Isso para que o Microsoft Office Access 2007aceite o * ( Um caracter coringa) como sendo todos as Cidade destino.

Também alteramos o texto dentro dos colchetes ( Digite a Cidade Desejada (* para todos):), apenas para orientar o usuário sobre como proceder, quando da execução da consulta.

O Principal benefício da utilização de parâmetros, é que os mesmos tornam nossas consultas mais flexíveis. Não precisamos, cada vez que a consulta for executada, entrar no Modo Design e alterar o parâmetro, uma vez que o Microsoft Office Access 2007solicita um valor para o Parâmetro ( Ou parâmetros), cada  vez que a consulta for executada.

Além disso, o usuário final não deve ter acesso a estrutura das consultas, tabelas, formulários, etc. Para que possamos impedir que o usuário acesse a estrutura de uma consulta, temos que possibilitar executa as consultas com diferentes parâmetros, conforme for necessário. Isso é possibilitado pela utilização das consultas parametrizadas.

Veremos mais sobre impedir o acesso a estrutura, no ítem sobre segurança.

EXERCÍCIOS:

  • Criar uma consulta que solicita que seja digitado um valor para o frete e exiba somente os pedidos cujo valor do frete seja menor ou igual ao valor digitado. A consulta deve exibir os campos: NúmeroDoPedido, NomeDaEmpresa, CidadeDestino e Frete. Classificar a consulta, em ordem ascendente, pelo valor do frete.
  • Alterar a consulta do item anterior, para que além do Frete, a mesma solicite o nome do Cidade Destino. Salvar a consulta com o nome de Parametrizada 02.
  • Criar uma consulta que calcule o total por pedido. Colocar um parâmetro que solicite que seja digitado um valor para o Total do Pedido e somente exiba os pedidos cujo total seja maior ou igual ao valor digitado. Salvar com o nome do Totais por Pedido com Parâmetro.
  • Criar uma consulta com os campos NúmeroDoPedido, NomeDaEmpresa, Data do Pedido, CidadeDestino e Frete. Fazer com que, ao ser executada, a consulta solicite uma Data Inicial, uma Data Final e um valor de Frete. A consulta deverá exibir somente os pedidos para o Período especificado e para valores de Frete maiores do que o digitado. Salve a consulta com o nome de Parametrizada 03.
« Anterior Δ Página principal ¤ Índice Próxima »

ESTA LIÇÃO FAZ PARTE DO SEGUINTE LIVRO DO JÚLIO BATTISTI:

 

Se você não quiser aguardar até que todas as lições sejam publicadas aqui no site (previsão de conclusão para o final de 2017), você pode ter acesso a todas as lições comprando o livro a seguir e ainda receber, de bônus, mais de 37 horas de Vídeo Aulas de Access.

 

Aprenda com Júlio Battisti: Access 2007 Avançado,

Macros e Introdução à Programação VBA

  • Crie campos calculados, critérios avançados e Consultas Parametrizadas.

  • Aprenda os comandos SQL em detalhes.

  • Criação e Utilização de Macros.

  • Configurações de Segurança do Banco de dados.

  • Exemplos práticos explicados passo a passo.

  • Introdução à programação VBA com exemplos.

  • BôNUS: 37,5 horas de Vídeo Aulas de Excel e Acc.ess +  DVD com 3167 E-books + 2400 Planilhas Profissionais Editáveis do Excel de bônus.

Aprenda com Júlio Battisti: Access 2007 Avançado, Macros e Introdução à Programação VBA

Aprenda com Júlio Battisti: Access 2007 Avançado, Macros e Introdução à Programação VBA

Na compra deste livro você recebe, via Download, todos os Bônus a Seguir:

  • Bônus 01: Vídeo Aula: Access 2007 - Básico e Prático - 5:30 horas

  • Bônus 02: Vídeo Aula: Access 2007 - Consultas - 4:30 horas

  • Bônus 03: Vídeo Aula: Access 2007 - Intermediário - 5:00 horas

  • Bônus 04: Vídeo Aula: Access 2007 - Formulários e Macros - 6:00 horas

  • Bônus 05: Vídeo Aula: Access 2007 - Avançado e VBA - 11:30 horas

  • Bônus 06: Pacote com 3167 E-books com Cursos de Informática.


Livros e Vídeo Aulas sobre Banco de Dados:

A Bíblia de Banco de Dados SQL e o Modelo Relacional de Dados

Apre.nda com Júlio Battisti: Acc.ess 2010 Avançado, Macros e Programação VBA - Passo a Passo

Apre.nda com Júlio Battisti: Banco de Dados e Acc.ess 2010 - Através de Exemplos Práticos - Passo a Passo

[186 Vídeo Aulas em 3 DVDs - Frete Grátis]: Linguagem SQL + Banco de Dados + Análise e Modelagem de Banco de Dados - Curso Completo - 186 Vídeo Aulas - 3 DVDs

  [Vídeo Aula - Frete Grátis:] Oracle PL SQL Procedures Functions Triggers Forms Reports - Curso Completo - 182 Vídeo Aulas - 3 DVDs

Best Sellers de Access do Julio Battisti

Todos com Vídeo Aulas, E-books ou Exemplos de Brinde!

Programação VBA no Access 2010 - Passo a Passo

 Aprenda com Júlio Battisti: Access 2010 Básico em 140 Lições - Através de Exemplos Práticos

 

Autor: Júlio Battisti | Páginas: 1164 | Editora: Instituto Alpha

 

[Livro]: Aprenda com Júlio Battisti: Access 2010 Básico em 140 Lições - Através de Exemplos Práticos

Access 2010 - Curso Completo - Passo a Passo

Livro: Aprenda com Júlio Battisti: Access 2010 Completo, Análise de Dados, Tabelas Dinâmicas, Funções Avançadas, Macros e Programação VBA - Passo a Passo

 

Autor: Júlio Battisti | Páginas: 1602 | Editora: Instituto Alpha

 

Livro: Aprenda com Júlio Battisti: Access 2010 Avançado, Análise de Dados, Tabelas Dinâmicas, Funções Avançadas, Macros e Programação VBA - Passo a Passo

Todos os livros com dezenas de horas de vídeo aulas de bônus, preço especial (alguns com 50% de desconto). Aproveite. São poucas unidades de cada livro e por tempo limitado.

Dúvidas?

Utilize a área de comentários a seguir.

Me ajude a divulgar este conteúdo gratuito!

Use a área de comentários a seguir, diga o que achou desta lição, o que está achando do curso.
Compartilhe no Facebook, no Google+, Twitter e Pinterest.

Indique para seus amigos. Quanto mais comentários forem feitos, mais lições serão publicadas.

Quer receber novidades e e-books gratuitos?
›››

Novidades e E-books grátis

Fique por dentro das novidades, lançamento de livros, cursos, e-books e vídeo-aulas, e receba ofertas de e-books e vídeo-aulas gratuitas para download.



Institucional

  • Quem somos
  • Garantia de Entrega
  • Formas de Pagamento
  • Contato
  • O Autor
  • Endereço

  • Júlio Battisti Livros e Cursos Ltda
  • CNPJ: 08.916.484/0001-25
  • Rua Vereador Ivo Cláudio Weigel, 537 Universitário
  • Santa Cruz do Sul/RS
  • CEP 96816-208
  • Todos os direitos reservados, Júlio Battisti 2001-2017 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI