lição 3 - utilização de critérios avançados e operadores

10
 Lição 3 - Utilização de Critérios Avançados e Operadores  Neste tópico apresentarei uma série de exemplos de consultas, nas quais utilizarei os . Operadores Like (Como), In (Em) , Between (Entre), Negado, etc. Também apresentarei exemplos de consultas nas quais são utilizadas funções internas do Access, para a criação de critérios avançados.. Veremos o uso das seguintes funções:  Direita  Esquerda  Meio  IfImed Nota: Para uma introdução aos operadores Like, In, Between, OR e AND, consulta a L ição 14 do Módulo 3 do Curso de Access Básico: Utilizando Operadores para Definir Critérios de Pesquisa. Vamos seguir a metodologia utilizada nas lições anteriores, 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, o qual você deve ter copiado, conforme orientações da Introdução desse tutorial. Na maioria dos exemplos dessa lição, iremos alterar a estrutura da Consulta 02, criada na Lição 2. Inicialmente vamos construir mais algumas consultas para fixar bem a utilização do Operador Como. Exemplo 01: Crie uma consulta que selecione apenas os Pedidos para as empresas cujo campo NomeDaEmpresa inicie com a letra C e termine com a letra E. Para criar a consulta proposta faça o seguinte:   Abra o banco de dados curso_av.mdb.  Acesse o modo estrutura da Consulta 02.  Exclua todos os critérios definidos anteriormente.  Coloque o seguinte cri tério na linha Critério do ca mpo NomeDaEmpre sa: Como "C*E"  Vá para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo: 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 Access que você quer t odas as empresas, menos aquelas

Upload: romulo-santos

Post on 21-Jul-2015

90 views

Category:

Documents


0 download

TRANSCRIPT

Lio 3 - Utilizao de Critrios Avanados e OperadoresNeste tpico apresentarei uma srie de exemplos de consultas, nas quais utilizarei os . Operadores Like (Como), In (Em) , Between (Entre), Negado, etc. Tambm apresentarei exemplos de consultas nas quais so utilizadas funes internas do Access, para a criao de critrios avanados.. Veremos o uso das seguintes funes: Direita Esquerda Meio IfImed Nota: Para uma introduo aos operadores Like, In, Between, OR e AND, consulta a Lio 14 do Mdulo 3 do Curso de Access Bsico: Utilizando Operadores para Definir Critrios de Pesquisa. Vamos seguir a metodologia utilizada nas lies anteriores, ou seja, vamos criando consultas de exemplo e explicando os critrios e tcnicas utilizados. Usaremos como base para este tpico o Banco de Dados curso_av.mdb, o qual voc deve ter copiado, conforme orientaes da Introduo desse tutorial. Na maioria dos exemplos dessa lio, iremos alterar a estrutura da Consulta 02, criada na Lio 2. Inicialmente vamos construir mais algumas consultas para fixar bem a utilizao do Operador Como. Exemplo 01: Crie uma consulta que selecione apenas os Pedidos para as empresas cujo campo NomeDaEmpresa inicie com a letra C e termine com a letra E. Para criar a consulta proposta faa o seguinte: Abra o banco de dados curso_av.mdb. Acesse o modo estrutura da Consulta 02. Exclua todos os critrios definidos anteriormente. Coloque o seguinte critrio na linha Critrio do campo NomeDaEmpresa: Como "C*E" V para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Muitas vezes, na utilizao 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 critrio tradicional: Como "[A-F]*". Outra maneira informar ao Microsoft Access que voc quer todas as empresas, menos aquelas

cuja primeira letra esteja na faixa de G at Z. Neste caso voc usaria o seguinte critrio: Como "[!G-Z]*" , o qual informa ao Microsoft Access para listar todas as empresas que No 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 exclamao que informa o "No". Voc pode combinar operadores Como, utilizando o Operador E e o operador Ou. Vamos explorar um pouco mais a utilizao do Operador Como, devido a sua grande utilizao e importncia. Exemplo 02: 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 faa o seguinte: Se voc no estiver no Modo Estrutura, volte para o modo estrutura da Consulta 02. Elimine os critrios adicionados anteriormente. Coloque o seguinte critrio na linha Critrio do campo NomeDaEmpresa: Como "B?A*" Ou Como "*N" V para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

NomeDaEmpresa iniciando com A, terceira letra B, ou terminando com N. Observe a utilizao do Ou ao invs do E. A Primeira parte - Como "B?A" - diz para o Microsoft Access trazer a listagem dos registros onde o campo Nome da Empresa tem na primeira letra um B, no importa o que tem na segunda (?) e na terceira um A . J a segunda parte do critrio - Como "N*" -, informa ao Microsoft Access para listar aquelas empresas cuja nome termina com a letra N. Como os dois critrios esto ligados por um Ou, isto significa que para estar na listagem. basta que o NomeDaEmpresa atenda a um dos critrios, isto , tenha na primeira letra um B e na terceira um A, ou que termine com N. Voc pode observar isto na listagem que existem empresas que no terminam com n, porm atendem ao primeiro critrio e existem empresas que no iniciam com B e tem na terceira letra um A, porm atendem ao segundo critrio. Isto comprova que quando duas condies estiverem ligadas pelo conectivo Ou, todos os registros que atenderem a uma das condies, estaro na listagem. Se atender as duas condies melhor ainda, tambm estaro na listagem. A nica hiptese de um registro no estar na listagem se no atender a nenhuma das duas condies ligadas pelo operador OU. Vamos comear a utilizar alguns outros operadores e funes do Microsoft Access para especificar critrios avanados em consultas.

Exemplo 03: Criar uma consulta que exiba somente os registros cujo NmeroDoPedido esteja entre 10500 e 10550 e que o PasDeDestino seja Brasil Ou EUA. Para criar a consulta proposta faa o seguinte: Se voc no estiver no Modo Estrutura, volte para o modo estrutura da Consulta 02. Elimine os critrios adicionados anteriormente. Coloque o seguinte critrio na linha Critrio do campo NmeroDoPedido: Entre 10500 E 10550 Coloque o seguinte critrio na linha Critrio do campo PasDeDestino: Brasil Ou EUA V para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Pedidos entre 10500 e 10550 e cujo Pas de Destino seja Brasil ou EUA. Temos dois aspectos importantes a serem observados nesta consulta. Primeiro a utilizao 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 (Aps o E) o limite superior. No campo PasDeDestino colocamos o critrio Brasil Ou EUA, para pesquisar aqueles pedidos somente para o Brasil ou os EUA. Observe que quando dois ou mais critrios so especificados na mesma linha, o Microsoft Access liga os critrios atravs de um operador E. No nosso exemplo para que um registro seja selecionado ele dever ter o Nmero do Pedido entre 10500 e 10550 E tambm ter como PasDeDestino o Brasil ou EUA. Uma vez que os caracteres curinga, como *, so tratados como literais, voc no pode utiliz-los com o operador Between...And. Por exemplo, voc no pode utilizar 980* e 989* para localizar todos os cdigos postais que comeam com 980 e 989. Em vez disso, voc tem duas alternativas: pode adicionar uma expresso para a consulta que pegue os trs caracteres da esquerda do campo de texto e utilizar Between...And nesses caracteres, ou pode preencher os valores superior e inferior com caracteres extras. Exemplo 04: Criar uma consulta que exiba somente os registros cujo NmeroDoPedido esteja entre 10500 e 11000 e que a DataDoPedido esteja no perodo de Junho A Agosto de 1995 Para criar a consulta proposta faa o seguinte: Se voc no estiver no Modo Estrutura, volte para o modo estrutura da Consulta 02. Elimine os critrios adicionados anteriormente. Coloque o seguinte critrio na linha Critrio do campo DataDoPedido: (Ms([DataDoPedido]) Entre 6 E 8) E Ano([DataDoPedido])=1995 Coloque o seguinte critrio na linha Critrio do campo NmeroDoPedido

Entre 10500 E 11000 V para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Pedidos com Nmero entre 10500 E 11000, e Perodo de Junho a Agosto de 1995. Observe o critrio que utilizamos no campo DataDoPedido. Primeiro utilizamos a funo Ms para extrair somente o Ms da DataDoPedido. A funo Ms retorna uma valor Numrico (Jan=1, Fev=2, Mar=3, etc). Utilizamos o Operador Entre para exigir que somente fossem selecionados os registros cuja Ms esteja na faixa de 6 a 8 (Junho a Agosto). Como precisamos tambm fixar que somente desejamos o ano de 1995 utilizamos um operador E ( uma vez que as duas condies precisam ser atendidas - Ms de Junho a Agosto para o Ano de 1995) e o critrio Ano([DataDoPedido])=1995. Fizemos uso da funo Ano para extrair apenas o Ano da Data e compar-lo com 1995. Com a combinao dos dois critrios obtemos o resultado desejado para a DataDoPedido: Somente pedidos de Junho a Agosto e para o Ano de 1995. No campo NmeroDoPedido, utilizamos o operador Entre para limitar os Pedidos com NmeroDoPedido entre 10500 e 11000 para o Perodo especificado anteriormente. Utilizando funes em conjunto com os operadores, iremos construir consultas com critrios de filtragem bastante sofisticados. Vamos explorar um pouco mais as possibilidades de utilizao das funes em conjunto com os operadores. Exemplo 05: Criar uma consulta que exiba somente os registros cujo NomeDaEmpresa tenha BO como as duas primeiras letras. Ao invs de utilizar o operador Como, utilize a funo Esquerda. Nota: Para uma descrio completa das funes Esquerda, Direita e Meio, consulte as lies do Mdulo 3, do Curso de Access Bsico. Para criar a consulta proposta faa o seguinte: Se voc no estiver no Modo Estrutura, volte para o modo estrutura da Consulta 02. Elimine os critrios adicionados anteriormente. Coloque o seguinte critrio na linha Critrio do campo NomeDaEmpresa: Esquerda([NomeDaEmpresa];2)="BO" V para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Somente os Pedidos para os registros com NomeDaEmpresa iniciando com BO. Claro que, facilmente, poderamos obter os mesmos resultados, simplesmente utilizando o operador Como da seguinte maneira: Como "BO*". O Objetivo salientar a utilizao da funo Esquerda. Esta funo recebe dois parmetros: O Nome do Campo sobre o qual a funo vai atuar e o nmero de caracteres que ele deve retornar iniciando esquerda do campo. Os parmetros so separados por ponto e vrgula. Abaixo temos mais alguns exemplos de utilizao da funo esquerda: Vamos supor que o campo Nome tenha o valor "Jos Carlos da Silva" Exemplo de Uso da Funo Esquerda Resultado Esquerda([Nome];2) Esquerda([Nome];5) Esquerda([Nome];3) Esquerda([Nome];10) Esquerda([Nome];6) Jo Jos Jos Jos da Si Jos d

Observe que o espao em branco tambm conta como um caractere: Exemplos 4 e 5. Alm da funo esquerda, temos as funes Direita e Meio.A funo direita, inicia a direita de um campo e retorna um nmero determinado de valores. A sua sintaxe conforme indicado abaixo: Direita([NomeDoCampo];NmeroDeCaracteres) A funo Meio permite que seja retornado um determinado nmero de caracteres a partir de uma posio especfica dentro de um campo. Por exemplo posso retornar 4 caracteres, a partir do 5 caractere. A Sua sintaxe conforme indicado abaixo: Meio([NomeDoCampo];PosioOndeIniciar;NmeroDeCaracteres) Na tabela abaixo temos diversos exemplos de utilizao das funes Direita, Esquerda e Meio: Exemplo de Uso das Funes Direita, Esquerda e Meio Resultado Esquerda("ABCDEF123456";3") Direita("ABCDEF123456";3) Direita("ABCDEF123456";6) Meio("ABCDEF123456";2;3) Meio("ABCDEF123456";5;4) ABC 456 123456 BCD EF12

Estas funes so bastante teis e podem ser utilizadas em um sem nmero de situaes prticas do dia-a-dia.

Vamos supor que voc queira criar uma nova coluna que vamos chamar de CdigoClientePas. Este cdigo ser formado pelas 3 primeiras letras do campo NomeDaEmpresa e palas trs ltimas letras do campo PasDeDestino. Para criarmos esta nova coluna, teremos que utilizar as funes Esquerda (para extrair as 3 primeiras letras do campo NomeDaEmpresa) e a funo direita (para extrair as trs ltimas letras do campo PasDeDestino). Alm disto teremos que usar o Operador & para concatenar as duas partes. O Operador & utilizado no Microsoft Access para concatenar duas ou mais strings. Apenas lembrando do tpico inicial sobre consultas, podemos, sempre que necessrio, possvel criar novos campos nas consultas, os quais so derivados de dados de outros campos. Tanto podemos criar campos que efetuem clculos (por exemplo {PreoUnitrio]*[Quantidade} ) quanto campos que realizam operaes com Strings, conforme est sendo proposto no nosso exemplo de juntar as trs primeiras letras do campo NomeDaEmpresa, com as trs ltimas letras do campo PasDeDestino, para formarmos um novo campo que vamos chamar de CdigoApuraoEspecial. Ento, Mos a Obra !!!!!!!! Exemplo 06: Criar uma consulta que adicione um campo chamado CdigoApuraoEspecial, o qual ser formado pelas trs primeiras letras do campo NomeDaEmpresa e pelas trs ltimas letras do campo PasDeDestino Para criar a consulta proposta faa o seguinte: Se voc no estiver no Modo Estrutura, volte para o modo estrutura da Consulta 02. Elimine os critrios adicionados anteriormente. V para a primeira coluna em branco, ao lado do campo PasDeDestino e digite o seguinte: CdigoApuraoEspecial: Esquerda([NomeDaEmpresa];3) & Direita([Pedidos].[PasDeDestino];3) V para o modo Folha de Dados e observe os resultados, conforme indicado na figura abaixo:

Campo CdigoApuraoEspecial criado a partir dos campos NomeDaEmpresa e PasDeDestino. Nota: Utilizamos [Pedidos].[PasDeDestino] e no apenas [PasDeDestino], pois o campo PasDeDestino existe nas tabelas Clientes e Pedidos, e ambas fazem parte da consulta. Se colocssemos apenas [PasDeDestino], sem o nome da tabela, o Access no conseguiria executar a consulta, pois no seria possvel identificar de qual tabela a frmula deveria pegar o campo [PasDeDestino]. Relembrando o que j havamos visto no incio do captulo 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 conferido na figura anterior. O que vem depois dos dois pontos a expresso que ira gerar os valores para o campo CdigoApuraoEspecial. A primeira parte da expresso: Esquerda([NomeDaEmpresa];3), retorna as trs primeiras letras do campo NomeDaEmpresa, as quais so concatenadas pelo operador & com as trs ltimas letras do campo PasDeDestino, as quais so retornadas atravs da utilizao da funo Direita([PasDeDestino];3). Outro fato importante a lembrar que esta coluna no far parte de nenhuma tabela e os dados nela contidos, no ficam armazenados no banco de dados. Toda vez que a consulta for executada, o Microsoft Access ir calcular os valores desta coluna, utilizando a expresso indicada anteriormente. Lembre que um dos princpios bsicos de projeto de banco de dados no armazenar campos calculados, conforme descrito no Curso de Access Bsico. Vamos sofisticar um pouco mais a nossa consulta. Exemplo 07: Criar uma consulta que adicione um campo chamado CdigoApuraoEspecial, o qual seja formado pelas trs primeiras letras do campo NomeDaEmpresa e pelas trs ltimas letras do campo PasDeDestino, mais um hfen ( - ), 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 faa o seguinte: Se voc no estiver no Modo Estrutura, volte para o modo estrutura da Consulta 02. Adicione o campo Frete da tabela Pedidos. V para a coluna criada na Consulta anterior : CdigoApuraoEspecial e altera para que fique da seguinte maneira: CdigoApuraoEspecial: Esquerda([NomeDaEmpresa];3) & Direita([Pedidos].[PasDeDestino];3) & "-" & SeImed([Frete]