Sei sulla pagina 1di 19

By Microsoft Expresses no Access 2007 Neste artigo Noes sobre expresses Exemplos de expresses utilizadas em formulrios e relatrios Exemplos

de expresses utilizadas em consultas e filtros Exemplos de expresses de valor predefinido Exemplos de expresses de regra de validao de campo Exemplos de expresses de condio de macro

Exemplos de expresses utilizadas em formulrios e relatrios As tabelas nesta seco fornecem exemplos de expresses que calculam um valor num controlo localizado num formulrio ou relatrio. Para criar um controlo calculado, dever introduzir uma expresso na propriedade OrigemDoControlo do controlo, em vez de o fazer numa consulta ou campo de tabela. Os passos abaixo explicam como introduzir uma expresso num controlo de caixa de texto num formulrio ou relatrio existente. Criar um controlo calculado No Painel de Navegao, clique com o boto direito do rato no formulrio ou relatrio que pretende alterar e clique em Vista de Estrutura no menu de atalho. No formulrio ou relatrio, clique com o boto direito do rato no controlo de caixa de texto que pretende alterar (e no na etiqueta associada caixa de texto) e clique em Propriedades no menu de atalho. Se necessrio, clique no separador Tudo ou no separador Dados. Ambos os separadores fornecem a propriedade Origem do Controlo. Clique na caixa junto propriedade Origem do Controlo e escreva e expresso. Por exemplo, poder copiar e colar uma expresso a partir da coluna Expresso da tabela da seco seguinte. Feche a folha de propriedades. Expresses que combinam ou manipulam texto As expresses na tabela que se segue utilizam os operadores & (E comercial) e + (sinal de adio) para combinar cadeias de texto, funes incorporadas para manipular uma cadeia de texto, ou actuam em texto para criar um controlo calculado. Expresso Resultado ="N/D" Apresenta N/D. =[Nome] & " " & [Apelido] Apresenta os valores que residem em campos de tabela denominados Nome e Apelido. Neste exemplo, o operador & utilizado para combinar o campo Nome, um carcter de espao (entre aspas) e o campo Apelido. =Esquerda([NomeDoProduto], 1) Utiliza a funo Esquerda para apresentar o primeiro carcter do valor de um campo ou controlo denominado NomeDoProduto. =Direita([CdigoDoActivo], 2) Utiliza a funo Direita para apresentar os 2 ltimos caracteres do valor num campo ou

controlo denominado CdigoDoActivo. =SuprEspao([Endereo]) Utiliza a funo SuprEspao para apresentar o valor do controlo Endereo, removendo eventuais espaos direita e esquerda. =Ise(Nulo([Regio]), [Cidade] & " " & Utiliza a funo Ise para apresentar os valores [CdigoPostal], [Cidade] & " " & dos controlos Cidade e CdigoPostal se o valor [Regio] & " " & [CdigoPostal]) no controlo Regio for nulo; caso contrrio, apresenta os valores dos controlos Cidade, Regio e CdigoPostal separados por espaos. =[Cidade] & (" " + [Regio]) & " " & Utiliza o operador + e propagao de valor nulo [CdigoPostal] para apresentar os valores dos controlos Cidade e CdigoPostal se o valor no controlo ou campo Regio for nulo; caso contrrio, apresenta os valores dos controlos ou campos Cidade, Regio e CdigoPostal separados por espaos. Propagao de valor nulo significa que, se o componente de uma expresso for nulo, toda a expresso ser nula. O operador + suporta propagao de valor nulo; o operador & no suporta. Expresses em cabealhos e rodaps As propriedades Pgina e Pginas so utilizadas para apresentar ou imprimir nmeros de pgina em formulrios ou relatrios. As propriedades Pgina e Pginas s esto disponveis durante a impresso ou pr-visualizao, pelo que no aparecem na folha de propriedades do formulrio ou relatrio. Normalmente, estas propriedades so utilizadas colocando-se uma caixa de texto na seco de cabealho ou rodap do formulrio ou relatrio, e utilizando-se depois uma expresso, tais como as apresentadas na seguinte tabela. Para mais informaes sobre como utilizar cabealhos e rodaps em formulrios e relatrios, consulte o artigo Inserir nmeros de pgina num formulrio ou relatrio. Expresso Resultado de exemplo =[Pgina] 1 ="Pgina " & [Pgina] Pgina 1 ="Pgina " & [Pgina] & " de " & [Pginas] Pgina 1 de 3 =[Pgina] & " de " & [Pginas] & " 1 de 3 Pginas Pginas" =[Pgina] & "/" & [Pginas] & " Pginas" 1/3 Pginas =[Pas/regio] & " - " & [Pgina] Reino Unido - 1 =Formatar([Pgina], "000") 001 ="Impresso em: " & Data() Impresso em: 31/12/07 Expresses que efectuam operaes aritmticas possvel utilizar expresses para adicionar, subtrair, multiplicar e dividir os valores em dois ou mais campos ou controlos. Tambm possvel utilizar expresses para efectuar operaes aritmticas em datas. Por exemplo, suponha que tem um campo de tabela de Data/Hora denominado DataRequerida. No campo, ou num controlo vinculado ao campo, a expresso =[Data Requerida] - 2 devolve um valor de data/hora igual a dois dias antes dos valores actuais no campo DataRequerida. Expresso Resultado =[Subtotal]+[Frete] Soma dos valores dos controlos ou campos

Subtotal e Frete. =[DataRequerida]-[DataDeEnvio] Intervalo entre os valores de data dos controlos ou campos DataRequerida e DataDeEnvio. =[Preo]*1,06 Produto do valor do controlo ou campo Preo e 1,06 (adiciona 6 por cento ao valor Preo). =[Quantidade]*[Preo] Produto dos valores dos controlos ou campos Quantidade e Preo. =[TotalEmpregado]/ Quociente dos valores dos controlos ou campos [TotalPasRegio] TotalEmpregado e TotalPasRegio. Nota Quando utilizado um operador aritmtico (+, -, * e /) numa expresso e o valor de um dos controlos na expresso nulo, o resultado de toda a expresso ser nulo; tal conhecido como propagao de valor nulo. Se for possvel que algum dos registos num dos controlos utilizados na expresso tenha um valor nulo, possvel evitar a propagao de valor nulo convertendo o valor nulo em zero utilizando a funo Nz; por exemplo, =Nz([Subtotal])+Nz([Frete]). Para mais informaes sobre a funo, consulte o artigo Funo Nz. Expresses que fazem referncia a valores noutros campos ou controlos Por vezes necessrio um valor que existe noutro local, tal como num campo ou controlo de outro formulrio ou relatrio. possvel utilizar uma expresso para devolver os valores a partir de outro campo ou controlo. A tabela abaixo lista exemplos de expresses que possvel utilizar em controlos calculados em formulrios. Expresso Resultado =Formulrios![Encomendas]![CdigoDaEncomenda] Valor do controlo CdigoDaEncomenda no formulrio Encomendas. Formulrios![Encomendas]![Subformulrio Valor do controlo Encomendas].Formulrio![SubtotalDaEncomenda] SubtotalDaEncomenda no subformulrio denominado Subformulrio Encomendas no formulrio Encomendas. =Formulrios![Encomendas]![Subformulrio Valor da terceira coluna em Encomendas]![CdigoDoProduto].Coluna(2) CdigoDoProduto, uma caixa de listagem de mltiplas colunas no subformulrio denominado Subformulrio Encomendas no formulrio Encomendas. (Tenha em ateno que 0 se refere primeira coluna, 1 segunda, e assim sucessivamente.) =Formulrios![Encomendas]![Subformulrio Produto do valor do controlo Encomendas]![Preo] * 1,06 Preo no subformulrio denominado Subformulrio Encomendas no formulrio Encomendas e 1,06 (adiciona 6 por cento ao valor do controlo Preo). =Principal![CdigoDaEncomenda] Valor do controlo CdigoDaEncomenda no formulrio principal do

subformulrio actual. As expresses na seguinte tabela mostram algumas das formas como utilizar controlos calculados em relatrios. As expresses fazem referncia propriedade Relatrio. Para mais informaes sobre essa propriedade, consulte o artigo Propriedade Relatrio. Expresso Resultado =Relatrio![Factura]![CdigoDaEncomenda] Valor de um controlo denominado "CdigoDaEncomenda" num relatrio denominado "Factura". =Relatrio![Sumrio]![Sub-relatrio Sumrio]! Valor do controlo TotalDasVendas no [TotalDasVendas] sub-relatrio denominado Sub-relatrio Sumrio no relatrio Sumrio. =Principal![CdigoDaEncomenda] Valor do controlo CdigoDaEncomenda no relatrio principal do sub-relatrio actual. Expresses que contam, soma e calculam a mdia de valores possvel utilizar um tipo de funo denominado funo de agregao para calcular valores para um ou mais campos ou controlos. Por exemplo, possvel calcular um total de grupo para o rodap de grupo num relatrio, ou um subtotal de encomenda para itens de linha num formulrio. Tambm possvel contar o nmero de itens num ou mais campos, ou calcular um valor mdio. As expresses na seguinte tabela apresentam algumas das formas de utilizao de funes como Mdia, Contar e Soma. Expresso Descrio =Mdia([Frete]) Utiliza a funo Mdia para apresentar a mdia dos valores de um controlo ou campo de tabela denominado "Frete". =Contar([CdigoDaEncomenda]) Utiliza a funo Contar para apresentar o nmero de registos no controlo CdigoDaEncomenda. =Soma([Vendas]) Utiliza a funo Soma para apresentar a soma dos valores do controlo Vendas. =Soma([Quantidade]*[Preo]) Utiliza a funo Soma para apresentar a soma do produto dos valores dos controlos Quantidade e Preo. =[Vendas]/Soma([Vendas])*100 Apresenta a percentagem de vendas, determinada pela diviso do valor do controlo Vendas pela soma de todos os valores do controlo Vendas. Nota Se definir a propriedade Formato do controlo como Percentagem, no inclua *100 na expresso. Para mais informaes sobre como utilizar funes de agregao e totalizar os valores em campos e colunas, consulte os artigosResumir dados utilizando uma consulta, Contar dados utilizando uma consulta, Contar as linhas numa folha de dados e Apresentar totais de colunas numa folha de dados. Expresses que contam, somam e pesquisam valores selectivamente utilizando funes de agregao de domnio Dever utilizar um tipo de funo denominado funo de agregao de domnio quando necessitar de somar ou contar valores selectivamente. Um "domnio" consiste em um ou mais campos de uma ou mais tabelas, ou um ou mais controlos de um ou mais formulrios ou relatrios. Por exemplo, possvel fazer corresponder os valores num campo de tabela como os valores num controlo de um formulrio. Expresso Descrio

=DPesquisar("[NomeDoContacto]", "[Fornecedores]", Utiliza a funo DPesquisar "[CdigoDoFornecedor] = " & Formulrios("Fornecedores") para devolver o valor do ("[CdigoDoFornecedor]")) campo NomeDoContacto na tabela Fornecedores, em que o valor do campo CdigoDoFornecedor na tabela corresponde ao valor do controlo CdigoDoFornecedor no formulrio Fornecedores. =DPesquisar("[NomeDoContacto]", "[Fornecedores]", Utiliza a funo DPesquisar "[CdigoDoFornecedor] = " & Formulrios![Novos para devolver o valor do Fornecedores]![CdigoDoFornecedor]) campo NomeDoContacto na tabela Fornecedores, em que o valor do campo CdigoDoFornecedor na tabela corresponde ao valor do controlo CdigoDoFornecedor no formulrio Novos Fornecedores. =DSoma("[ValorDaEncomenda]", "[Encomendas]", Utiliza a funo DSoma "[CdigoDoCliente] = 'RATTC'") para devolver o total de soma dos valores no campo ValorDaEncomenda na tabela Encomendas, em que o CdigoDoCliente RATTC. =DContar("[Reformado]","[Activos]","[Reformado]=Sim") Utiliza a funo DContar para devolver o nmero de valores Sim no campo Reformado (um campo Sim/No) na tabela Activos. Expresses que manipulam e calculam datas Controlar datas e horas uma actividade de base de dados fundamental. Por exemplo, possvel calcular quantos dias passaram desde a data da factura para avaliar as contas a receber. possvel formatar datas e horas de diversas formas, conforme ilustrado na tabela seguinte. Expresso Descrio =Data() Utiliza a funo Data para apresentar a data actual no formato dd-mm-aa, sendo que dd o dia (1 a 31), mm o ms (1 a 12) e aa so os dois ltimos dgitos do ano (1980 a 2099). =Formatar(Agora(), "ss") Utiliza a funo Formatar para apresentar o nmero de semana do ano da data actual, sendo que ss representa as semanas 1 a 53. =PartData("aaaa", Utiliza a funo PartData para apresentar o ano de quatro [DataDaEncomenda]) dgitos do valor do controlo DataDaEncomenda. =SomData("a", -10, Utiliza a funo SomData para apresentar uma data 10 dias

[DataPromessa]) =DifData("d", [DataDaEncomenda], [DataDeEnvio]) =[DataDaFactura] + 30

anterior ao valor do controlo DataPromessa. Utiliza a funo DifData para apresentar a diferena em dias entre os valores dos controlos DataDaEncomenda e DataDeEnvio. Utiliza operaes aritmticas em datas para calcular a data 30 dias aps a data no controlo ou campo DataDaFactura. Expresses condicionais que devolvem um de dois valores possveis A expresses de exemplo na tabela abaixo utilizam a funo Ise para devolver um de dois valores possveis. So transmitidos trs argumentos funo Ise: o primeiro argumento uma expresso que tem de devolver um valor Verdadeiro ou Falso; o segundo argumento o valor a devolver caso a expresso seja verdadeira; e o terceiro argumento o valor a devolver caso a expresso seja falsa. Expresso Descrio =Ise([Confirmado] = "Sim", "Encomenda Utiliza a funo Ise para apresentar a Confirmada", "Encomenda No mensagem "Encomenda Confirmada" se o valor Confirmada") do controlo Confirmado for Sim; caso contrrio, apresenta a mensagem "Encomenda No Confirmada". =Ise(Nulo([Pas/Regio]), " ", [Pas]) Utiliza as funes Ise e Nulo para apresentar uma cadeia vazia se o valor do controlo Pas/Regio for nulo; caso contrrio, apresenta o valor do controlo Pas/Regio. =Ise(Nulo([Regio]), [Cidade] & " " & Utiliza as funes Ise e Nulo para apresentar [CdigoPostal], [Cidade] & " " & os valores dos controlos Cidade e CdigoPostal [Regio] & " " & [CdigoPostal]) se o valor no controlo Regio for nulo; caso contrrio, apresenta os valores dos controlos ou campos Cidade, Regio e Cdigo Postal. =Ise(Nulo([DataRequerida]) Ou Utiliza as funes Ise e Nulo para apresentar a Nulo([DataDeEnvio]), "Verificar data mensagem "Verificar data em falta" se o em falta", [DataRequerida] resultado de subtrair DataDeEnvio a [DataDeEnvio]) DataRequerida for nulo; caso contrrio, apresenta o intervalo entre os valores de data dos controlos DataRequerida e DataDeEnvio. Incio da Pgina Exemplos de expresses utilizadas em consultas e filtros Esta seco contm exemplos de expresses que podem ser utilizadas para criar um campo calculado numa consulta ou para fornecer critrios a uma consulta. Um campo calculado consiste uma coluna numa consulta que resulta de uma expresso. Por exemplo, possvel calcular um valor, combinar valores de texto (tais como nome prprio e apelido) ou formatar parte de uma data. Dever utilizar critrios numa consulta para limitar os registos com os quais trabalha. Por exemplo, possvel utilizar o operador Entre para fornecer uma data de incio e de fim e para limitar os resultados da consulta a encomendas enviadas entre essas datas. As seguintes seces explicam como adicionar um campo calculado a uma consulta e fornecem exemplos de expresses para utilizao em consultas. Adicionar um campo calculado na vista de estrutura de consulta No Painel de Navegao, clique com o boto direito do rato na consulta que pretende alterar e clique em Vista de Estrutura no menu de atalho. Clique na clula Campo na coluna em que pretende criar o campo calculado. Poder introduzir um nome para o campo seguido de dois pontos, ou escrever a expresso. Se

no introduzir um nome, o Access ir adicionar Exprn:, em que n um nmero sequencial. Escreva a expresso. - ou No separador Estrutura, no grupo Ferramentas, clique em Construtor para iniciar o Construtor de Expresses. Para mais informaes sobre como utilizar o Construtor de Expresses, consulte o artigo Criar uma expresso. Expresses que manipulam texto numa consulta ou filtro As expresses na seguinte tabela utilizam os operadores & e + para combinar cadeias de texto, utilizam funes incorporadas para operar numa cadeia de texto ou operam em texto para criar um campo calculado. Expresso Descrio NomeCompleto: [Nome] & " " & [Apelido] Cria um campo denominado NomeCompleto que apresenta os valores nos campos Nome e Apelido separados por um espao. Endereo2: [Cidade] & " " & [Regio] & " " & Cria um campo denominado Endereo2 [CdigoPostal] que apresenta os valores nos campos Cidade, Regio e CdigoPostal separados por espaos. InicialDoProduto:Esquerda([NomeDoProduto], Cria um campo denominado 1) InicialDoProduto e utiliza a funo Esquerda para apresentar, no campo InicialDoProduto, o primeiro carcter do valor no campo NomeDoProduto. CdigoDeTipo: Direita([CdigoDoActivo], 2) Cria um campo denominado CdigoDeTipo e utiliza a funo Direita para apresentar os ltimos dois caracteres dos valores no campo CdigoDoActivo. Indicativo: Meio([Telefone],2,3) Cria um campo denominado Indicativo e utiliza a funo Meio para apresentar os trs caracteres com incio no segundo carcter do valor no campo Telefone. Expresses que efectuam operaes aritmticas em campos calculados possvel utilizar expresses para adicionar, subtrair, multiplicar e dividir os valores em dois ou mais campos ou controlos. Tambm possvel efectuar operaes aritmticas em datas. Por exemplo, suponha que tem um campo de Data/Hora denominado DataRequerida. A expresso =[Data Requerida] - 2 devolve um valor de Data/Hora igual a dois dias antes do valor no campo DataRequerida. Expresso Descrio FretePrimrio: [Frete] * 1,1 Cria um campo denominado FretePrimrio e apresenta as taxas de frete acrescidas de 10 por cento no campo. ValorDaEncomenda: [Quantidade] * Cria um campo denominado [PreoUnitrio] ValorDaEncomenda e apresenta o produto dos valores nos campos Quantidade e PreoUnitrio. HoraDeCaducidade: [DataRequerida] - Cria um campo denominado

[DataDeEnvio]

HoraDeCaducidade e apresenta a diferena entre os valores nos campos DataRequerida e DataDeEnvio. StockTotal: [Existncias]+ Cria um campo denominado StockTotal e [UnidadesEncomendadas] apresenta a soma dos valores nos campos Existncias e UnidadesEncomendadas. PercentagemDeFrete: Cria um campo denominado Soma([Frete])/Soma([Subtotal]) *100 PercentagemDeFrete e apresenta a percentagem de taxas de frete em cada subtotal. Esta expresso utiliza a funo Soma para totalizar os valores no campo Frete e divide depois esses totais pela soma dos valores no campo Subtotal. Para utilizar esta expresso, ter de converter a consulta de seleco numa consulta de Totais porque necessrio utilizar a linha Total na grelha de estrutura, e ter de definir a clula Total deste campo como Expresso. Para mais informaes sobre como criar uma consulta de Totais, consulte o artigo Resumir dados utilizando uma consulta. Se definir a propriedade Formato do campo como Percentagem, no inclua *100. Para mais informaes sobre como utilizar funes de agregao e totalizar os valores em campos e colunas, consulte os artigosResumir dados utilizando uma consulta, Contar dados utilizando uma consulta, Contar as linhas numa folha de dados e Apresentar totais de colunas numa folha de dados. Expresses que manipulam e calculam com datas em campos calculadas Quase todas as bases de dados armazenam e controlam datas e horas. No Access, o utilizador trabalha com datas e horas definindo os campos de data e hora nas tabelas com o tipo de dados de Data/Hora. O Access consegue efectuar clculos aritmticos em datas; por exemplo, possvel calcular quantos dias passaram desde a data da factura para avaliar as contas a receber. Expresso Descrio TempoDeDesfasamento: DifData("d", Cria um campo denominado [DataDaEncomenda], [DataDeEnvio]) TempoDeDesfasamento e utiliza a funo DifData para apresentar o nmero de dias entre a data da encomenda e a data de envio. AnoDeContratao: PartData("aaaa", Cria um campo denominado [DataDeContratao]) AnoDeContratao e utiliza a funo PartData para apresentar o ano em que o empregado foi contratado. MenosTrinta: Data( )- 30 Cria um campo denominado MenosTrinta e utiliza a funo Data para apresentar a data 30 dias antes da data actual. Expresses que contam, somam e resumem valores utilizando funes de agregao de domnio ou agregao de SQL As expresses na seguinte tabela utilizam funes SQL (Structured Query Language) que agregam ou resumem dados. Estas funes (por exemplo, Soma, Contar e Mdia) so muitas vezes apelidadas de funes de agregao.

Para alm de funes de agregao, o Access tambm fornece funes de agregao de "domnio" que podem ser utilizadas para somar ou contar valores selectivamente. Por exemplo, possvel contar apenas os valores num determinado intervalo ou pesquisar um valor de outra tabela. O conjunto de funes de agregao de domnio inclui a Funo DSoma, a Funo DContar e a Funo DMdia. Para calcular totais, ser frequentemente necessrio criar uma consulta de totais. Por exemplo, para resumir por grupo, ter de utilizar uma consulta de Totais. Para activar uma consulta de Totais a partir da grelha de estrutura de consulta, clique em Totais no menu Ver. Expresso Descrio ContagemDeLinhas:Contar(*) Cria um campo denominado ContagemDeLinhas e utiliza a funo Contar para contar o nmero de registos na consulta, incluindo registos com campos nulos (em branco). PercentagemDeFrete: Cria um campo denominado PercentagemDeFrete e Soma([Frete])/Soma([Subtotal]) calcula a percentagem de taxas de frete em cada *100 subtotal dividindo a soma dos valores no campo Frete pela soma dos valores no campo Subtotal. (Este exemplo utiliza a funo Soma.) Nota Ter de utilizar esta expresso com uma consulta de Totais. Se definir a propriedade Formato do campo como Percentagem, no inclua *100. . Para mais informaes sobre como criar uma consulta de Totais, consulte o artigo Resumir dados utilizando uma consulta. FreteMdio: DMdia("[Frete]", Cria um campo denominado FreteMdio e utiliza a "[Encomendas]") funo DMdia para calcular o frete mdio em todas as encomendas combinadas numa consulta de Totais. Expresses para trabalhar com campos com informaes em falta (campos com valores nulos) As expresses apresentadas aqui trabalham com campos com informaes potencialmente em falta, tais como aqueles que contm valores nulos (desconhecidos ou no definidos). frequente encontrar-se valores nulos como, por exemplo, um preo desconhecido para um novo produto ou um valor que um colega se esqueceu de adicionar a uma encomenda. A capacidade de localizar e processar valores nulos pode ser uma parte crtica de operaes de base de dados, sendo que as expresses na tabela abaixo demonstram algumas das formas comuns de lidar com valores nulos. Expresso Descrio PasRegioActual:Ise(Nulo([PasRegio]), " ", Cria um campo denominado [PasRegio]) PasRegioActual e utiliza as funes Ise e Nulo para apresentar uma cadeia vazia nesse campo quando o campo PasRegio contiver um valor nulo; caso contrrio, apresenta o contedo do campo PasRegio. HoraDeCaducidade: Ise(Nulo([DataRequerida] - Cria um campo denominado [DataDeEnvio]), "Verificar data em falta", HoraDeCaducidade e utiliza as funes [DataRequerida] - [DataDeEnvio]) Ise e Nulo para apresentar a mensagem "Verificar data em falta" se

o valor no campo DataRequerida ou no campo DataDeEnvio for nulo; caso contrrio, apresenta a diferena de data. VendasDeSeisMeses: Nz([VendasTrim1]) + Cria um campo denominado Nz([VendasTrim2]) VendasDeSeisMeses e apresenta o total dos valores nos campos VendasTrim1 e VendasTrim2 utilizando primeiro a funo Nz para converter todos os valores nulos em zero. Expresso que utiliza uma subconsulta para criar um campo calculado possvel utilizar uma consulta aninhada, conhecida tambm como subconsulta, para criar um campo calculado. A expresso na seguinte tabela um exemplo de um campo calculado que resulta de uma subconsulta. Expresso Descrio Cat: (SELECT [NomeDaCategoria] FROM [Categorias] WHERE Cria um campo [Produtos].[CdigoDaCategoria]=[Categorias].[CdigoDaCategoria]) denominado Cat e apresenta NomeDaCategoria, se CdigoDaCategoria da tabela Categorias for igual a CdigoDaCategoria da tabela Produtos. Expresses que definem critrios e limitam os registos no conjunto de resultados possvel utilizar uma expresso para definir critrios para uma consulta. O Access devolve depois apenas as linhas que correspondem aos critrios. Os passos nesta seco fornecem informaes bsicas sobre como adicionar critrios a uma consulta, e as tabelas na seco fornecem exemplos de critrios para fazer corresponder valores de data e texto. Adicionar critrios a uma consulta No Painel de Navegao, clique com o boto direito do rato na consulta que pretende alterar e clique em Vista de Estrutura no menu de atalho. Na linha Critrios da grelha de estrutura, clique na clula na coluna que pretende utilizar e escreva os critrios. Se pretender uma rea maior onde escrever uma expresso, prima SHIFT+F2 para apresentar a caixa Zoom. - ou No separador Estrutura, no grupo Configurao da Consulta, clique em Construtor para iniciar o Construtor de Expresses e crie a expresso. Nota Quando criar expresses que definem critrios, no coloque o operador = antes das expresses. Para mais informaes sobre como utilizar o Construtor de Expresses, consulte o artigo Criar uma expresso. Expresses que fazem corresponder valores de texto totais ou parciais As expresses de exemplo nesta tabela demonstram critrios que fazem corresponder valores de texto totais ou parciais. Campo Expresso Descrio

CidadeDoDestino

Apresenta encomendas enviadas para Coimbra. CidadeDoDestino "Coimbra" Ou "Leixes" Utiliza o operador Ou para apresentar encomendas enviadas para Coimbra ou Leixes. PasRegioDoDestino Em("Canad", "Reino Utiliza o operador Em para apresentar Unido") encomendas enviadas para o Canad e Reino Unido. PasRegioDoDestinoNegado "E.U.A." Utiliza o operador Negado para apresentar encomendas enviadas para outros pases/regies que no os E.U.A. NomeDoProduto No Como "C*" Utiliza o operador No Como e o carcter universal * para apresentar produtos cujos nomes no comecem por C. NomeDaEmpresa >="N" Apresenta encomendas enviadas para empresas cujos nomes comeam com as letras de N a Z. CdigoProduto Direita([CdigoProduto], Utiliza o operador Direita para 2)="99" apresentar encomendas com valores CdigoProduto que terminam em 99. NomeDoDestinatrio Como "S*" Apresenta encomendas enviadas para clientes cujos nomes comeam com a letra S. Expresses que utilizam datas em critrios correspondentes As expresses na seguinte tabela demonstram como utilizar datas e funes relacionadas em expresses de critrios. Para mais informaes sobre como introduzir e utilizar valores de data, consulte o artigo Introduzir um valor de data ou hora. Para obter informaes sobre como utilizar as funes nestas expresses de exemplo, clique nas hiperligaes para os diversos tpicos de funes. Campo Expresso Descrio DataDeEnvio #2/2/2007# Apresenta encomendas enviadas a 2 de Fevereiro de 2007. DataDeEnvio Data() Apresenta encomendas enviadas hoje. DataRequerida Entre Data( ) E SomData("m", 3, Data( )) Utiliza o operador Entre...E e as funes SomData e Data para apresentar encomendas efectuadas entre a data actual e trs meses a partir da data actual. DataDaEncomenda < Data( ) - 30 Utiliza a funo Data para apresentar encomendas com mais de 30 dias. DataDaEncomenda Ano([DataDaEncomenda])=2007 Utiliza a funo Ano

"Coimbra"

para apresentar encomendas com datas de encomenda em 2007. DataDaEncomenda PartData("t", [DataDaEncomenda])=4 Utiliza a funo PartData para apresentar encomendas do quatro trimestre. DataDaEncomenda SrieData(Ano ([DataDaEncomenda]), Utiliza as funes Ms([DataDaEncomenda])+1, 1)-1 SrieData, Ano e Ms para apresentar encomendas do ltimo dia de cada ms. DataDaEncomenda Ano([DataDaEncomenda])= Ano(Agora()) Utiliza as funes Ano e E Ms([DataDaEncomenda]) = Ms e o operador E para Ms(Agora()) apresentar encomendas do ano e ms actual. DataDeEnvio Entre #05/01/2007# E #10/01/2007# Utiliza o operador Entre...E para apresentar encomendas enviadas no antes de 5 de Janeiro de 2007 e no depois de 10 de Janeiro de 2007. DataRequerida Entre Data( ) E SomData("M", 3, Data( )) Utiliza o operador Entre...E para apresentar encomendas efectuadas entre a data actual e trs meses a partir da data actual. DataDeNascimentoMs([DataDeNascimento])=Ms(Data()) Utiliza as funes Ms e Data para apresentar empregados cuja data de aniversrio seja neste ms. Expresses que fazem corresponder um valor em falta (nulo) ou uma cadeia de comprimento zero As expresses na seguinte tabela trabalham com campos que tm informaes potencialmente em falta: aqueles que possam conter um valor nulo ou uma cadeia de comprimento zero. Um valor nulo representa a ausncia de informaes; no representa um zero nem nenhum valor. O Access suporta esta ideia de informaes em falta porque o conceito vital para a integridade de uma base de dados. No mundo real, h muitas vezes informaes em falta, ainda que apenas temporariamente (por exemplo, o preo ainda por determinar de um novo produto). Por conseguinte, uma base de dados que seja modelo de uma entidade real (tal como uma empresa) ter de conseguir registar informaes como estando em falta. possvel utilizar a funo Nulo para determinar se um campo ou controlo contm um valor nulo, e utilizar a funo Nz para converter um valor nulo em zero. Campo Expresso Descrio RegioDeEnvio Nulo Apresenta encomendas de clientes cujo campo RegioDeEnvio nulo (em falta). RegioDeEnvio No Nulo Apresenta encomendas de clientes cujo campo

RegioDeEnvio contm um valor. Fax "" Apresenta encomendas de clientes que no possuem um fax, indicados por um valor de cadeia de comprimento zero no campo Fax, em vez de um valor nulo (em falta). Expresses que utilizam padres para fazer corresponder registos O operador Como oferece enorme flexibilidade quando se tenta fazer corresponder linhas que seguem um padro, pois possvel utilizar Como com caracteres universais e definir padres aos quais o Access dever corresponder. Por exemplo, o carcter universal * (asterisco) faz corresponder uma sequncia de caracteres de qualquer tipo e facilita a localizao de todos os nomes que comecem por uma determinada letra. Por exemplo, dever utilizar a expresso Como "S*" para localizar todos os nomes que comecem pela letra S. Para mais informaes, consulte o artigo Operador Como. Campo Expresso Descrio NomeDoDestinatrio Como "S*" Localiza todos os registos no campo NomeDoDestinatrio que comeam pela letra S. NomeDoDestinatrioComo Localiza todos os registos no campo "*Importaes" NomeDoDestinatrio que terminam com a palavra "Importaes". NomeDoDestinatrioComo "[A-D]*" Localiza todos os registos no campo NomeDoDestinatrio que comeam pelas letras A, B, C ou D. NomeDoDestinatrioComo "*ar*" Localiza todos os registos no campo NomeDoDestinatrio que incluem a sequncia de letras "ar". NomeDoDestinatrioComo "Solar Localiza todos os registos no campo Celt?" NomeDoDestinatrio que incluem "Solar" na primeira parte do valor e uma cadeia de cinco letras das quais as primeiras quatro sejam "Celt" e a ltima letra seja desconhecida. NomeDoDestinatrio No Como Localiza todos os registos no campo "A*" NomeDoDestinatrio que no comeam pela letra A. Expresses que fazem corresponder linhas com base no resultado de uma funo de domnio de agregao Dever utilizar uma funo de agregao de domnio quando necessitar de somar, contar ou calcular a mdia de valores selectivamente. Por exemplo, poder pretender conta apenas os valores que recaiam num determinado intervalo ou que sejam avaliados como Sim. Noutras alturas, poder ser necessrio pesquisar um valor de outra tabela para o apresentar. As expresses de exemplo na tabela seguinte utilizam funes de agregao de domnio para efectuar um clculo num conjunto de valores e utilizam o resultado como critrios de consulta. Campo Expresso Descrio Frete > (DDesvP("[Frete]", Utiliza as funes DDesvP e DMdia para "Encomendas") + apresentar todas as encomendas para as DMdia("[Frete]", quais o custo do frete subiu acima da mdia "Encomendas")) juntamente com o desvio padro para o custo do frete. Quantidade > DMdia("[Quantidade]", Utiliza a funo DMdia para apresentar

produtos encomendados em quantidades acima da quantidade mdia de encomendas. Expresses que fazem corresponder com base nos resultados de subconsultas Dever utilizar uma subconsulta, tambm conhecida como consulta aninhada, para calcular um valor a utilizar como critrio. As expresses na tabela abaixo fazem corresponder linhas com base nos resultados devolvidos por uma subconsulta. Campo Expresso Apresenta PreoUnitrio (SELECT [PreoUnitrio] FROM Produtos cujo preo igual [Produtos] WHERE ao preo do Licor de Anis [NomeDoProduto] = "Licor de Anis") PreoUnitrio >(SELECT AVG([PreoUnitrio]) Produtos que tm um preo FROM [Produtos]) unitrio acima da mdia. Salrio > ALL (SELECT [Salrio] FROM Salrio de todos os [Empregados] WHERE ([Cargo] representantes de vendas LIKE "*Gestor*") OR ([Cargo] cujo salrio seja superior ao LIKE "*Vice-Presidente*")) de todos os empregados com "Gestor" ou "Vice Presidente" nos cargos. TotalDeEncomendas: > (SELECT AVG([PreoUnitrio] Encomendas com totais [PreoUnitrio] * * [Quantidade]) FROM [Detalhes superiores ao valor mdio de [Quantidade] da encomenda]) encomenda. Expresses para utilizao em consultas de actualizao Dever utilizar uma consulta de actualizao para modificar os dados de um ou mais campos existentes numa base de dados. Por exemplo, poder substituir valores ou elimin-los por completo. Esta tabela demonstra algumas de formas de como utilizar expresses em consultas de actualizao. Dever utilizar estas expresses na linha Actualizar Para na grelha de estrutura de consulta do campo que pretende actualizar. Para mais informaes sobre como criar consultas de actualizao, consulte o artigo Criar uma consulta de actualizao. Campo Expresso Resultado Ttulo "Vendedor" Altera um valor de texto para Vendedor. IncioDoProjecto #10/08/07# Altera um valor de data para 10 de Agosto de 2007. Reformado Sim Altera um valor No num campo Sim/No para Sim. NmeroDePea "NP" & [NmeroDePea] Adiciona NP ao incio de cada nmero de pea especificado. TotalDeItemDeLinha [PreoUnitrio] * [Quantidade] Calcula o produto de PreoUnitrio e Quantidade. Frete [Frete] * 1,5 Aumenta as taxas de frete em 50 por cento. Vendas DSoma("[Quantidade] * Onde os valores [PreoUnitrio]", CdigoDoProduto na tabela "Detalhes da Encomenda", actual corresponderem aos "[CdigoDoProduto]=" & valores CdigoDoProduto na [CdigoDoProduto]) tabela Detalhes da

"[Detalhes da Encomenda]")

Encomenda, actualiza os totais de vendas com base no produto de Quantidade e PreoUnitrio. CdigoPostalDoDestinoDireita([CdigoPostalDoDestino], Trunca os caracteres mais 5) esquerda, deixando os cinco caracteres mais direita. PreoUnitrio Nz([PreoUnitrio]) Altera um valor nulo (no definido ou desconhecido) para zero (0) no campo PreoUnitrio. Expresses utilizadas em instrues SQL SQL (Structured Query Language) a linguagem de consulta que o Access utiliza. Cada consulta criada na vista de estrutura de consulta tambm pode ser expressada atravs de SQL. Para ver a instruo SQL de qualquer consulta, clique em Vista de SQL no menu Ver. A tabela abaixo mostra instrues SQL de exemplo que utilizam uma expresso. Instruo SQL que utiliza uma expresso Resultado SELECT [Nome],[Apelido] FROM Apresenta os valores nos campos Nome [Empregados] WHERE [Apelido]="Gomes" e Apelido de empregados cujo apelido seja Gomes. SELECT [CdigoDoProduto],[NomeDoProduto] Apresenta os valores nos campos FROM [Produtos] WHERE CdigoDoProduto e NomeDoProduto [CdigoDaCategoria]=Formulrios![Novos na tabela Produtos para registos nos Produtos]![CdigoDaCategoria]; quais o valor CdigoDaCategoria corresponde ao valor CdigoDaCategoria especificado num formulrio Novos Produtos aberto. SELECT Mdia([PreoExpandido]) AS [Preo Calcula o preo mdio expandido de Mdio Expandido] FROM [Detalhes de encomendas cujo valor no campo Encomendas Expandidos] WHERE PreoExpandido superior a 1000 e [PreoExpandido]>1000; apresenta-o num campo denominado Preo Mdio Expandido. SELECT [CdigoDaCategoria], Num campo denominado Contar([CdigoDoProduto]) AS CdigoDaContagemDeProdutos [CdigoDaContagemDeProdutos] FROM apresenta o nmero total de produtos [Produtos] GROUP BY [CdigoDaCategoria] para categorias com mais de 10 HAVING Contar([CdigoDoProduto])>10; produtos. Incio da Pgina Exemplos de expresses de valor predefinido Ao criar uma base de dados, possvel que pretenda atribuir um valor predefinido a um campo ou controlo. Nesse caso, o Access ir depois fornecer o valor predefinido quando for criado um novo registo que contenha o campo ou quando for criado um objecto que contenha o controlo. A expresso na tabela abaixo representa valores predefinidos de exemplo para um campo ou controlo. Adicionar um valor predefinido para um campo numa tabela No Painel de Navegao, clique com o boto direito do rato na tabela que pretende alterar e clique em Vista de Estrutura no menu de atalho. Clique no campo que pretende alterar e, no separador Geral, clique na caixa de propriedade Valor Predefinido.

Escreva a expresso, ou clique no boto Construir direita da caixa de propriedade para criar uma expresso utilizando o Construtor de Expresses. Se um controlo estiver vinculado a um campo numa tabela, e se esse campo tiver um valor predefinido, o valor predefinido do controlo ter precedncia. Campo Expresso Valor de campo predefinido Quantidade 1 1 Regio "MT" MT Regio "Nova Iorque, Nova Iorque, E.U.A. (Tenha em ateno que o valor E.U.A." tem de estar entre aspas se incluir pontuao.) Fax "" Cadeia de comprimento zero para indicar que, por predefinio, este campo dever estar vazio em vez de conter um valor nulo Data da Data() Data actual Encomenda DataDeConcluso Data() + 60 Data 60 dias aps a data actual Incio da Pgina Exemplos de expresses de regra de validao de campo possvel criar uma regra de validao para um campo ou controlo utilizando uma expresso. Nesse caso, o Access ir depois impor a regra quando forem introduzidos dados no campo ou controlo. Para criar uma regra de validao, modifique a propriedade RegraDeValidao do campo ou controlo. Dever tambm considerar definir a propriedade TextoDeValidao, a qual detm o texto apresentado pelo Access quando a regra de validao violada. Se no definir a propriedade TextoDeValidao, o Access ir apresentar uma mensagem de erro predefinida. Adicionar uma regra de validao a um campo No Painel de Navegao, clique com o boto direito do rato na tabela que pretende alterar e clique em Vista de Estrutura no menu de atalho. Clique no campo que pretende alterar. Clique na caixa de propriedade Regra de Validao, situada na parte inferior do estruturador de tabelas. Escreva a expresso, ou clique no boto Construir direita da caixa de propriedade para criar uma expresso utilizando o Construtor de Expresses. Nota Quando criar uma regra de validao, no coloque o operador = antes da expresso. Os exemplos na tabela abaixo demonstram expresses de regra de validao para a propriedade RegraDeValidao e o texto associado para a propriedade TextoDeValidao. Propriedade Propriedade TextoDeValidao RegraDeValidao <> 0 Introduzir um valor no zero. 0 Ou > 100 O valor tem de ser 0 ou superior a 100. Como "K???" O valor tem de ter quatro caracteres e comear pela letra K. < #1/1/2007# Introduzir uma data anterior a 1/1/2007. >= #1/1/2007# E < #1/1/2008# A data tem de ocorrer em 2007. Para mais informaes sobre como validar dados, consulte o artigo Criar uma regra de validao para validar dados num campo. Incio da Pgina Exemplos de expresses de condio de macro

Em alguns casos, poder pretender executar uma aco ou uma srie de aces numa macro apenas se uma determinada condio for verdadeira. Por exemplo, suponha que pretende que uma aco s seja executada quando o valor na caixa de texto Contador for 10. Dever utilizar uma expresso para definir a condio na coluna Condio da macro: [Contador]=10. Adicionar uma condio para uma aco de macro No Painel de Navegao, clique com o boto direito do rato na macro que pretende alterar e clique em Vista de Estrutura no menu de atalho. Se no vir a coluna Condies no estruturador de macros, no separador Estrutura, no grupo Mostrar/Ocultar, clique em Condies. Clique na clula Condio da aco de macro que pretende alterar e escreva a expresso condicional. Guarde as alteraes e feche a macro. semelhana do que sucede com a propriedade RegraDeValidao, a expresso de coluna Condio uma expresso condicional. Ter de resolver para um valor Verdadeiro ou Falso. Esta aco s ocorre quando a condio verdadeira. Utilize esta expresso para executar a aco Se [Cidade]="Faro" Faro o valor de Cidade no campo no formulrio a partir de onde a macro foi executada. DContar("[CdigoDaEncomenda]", "Encomendas") > 35 Existem mais do que 35 entradas no campo CdigoDaEncomenda da tabela Encomendas. DContar("*", "[Detalhes da Encomenda]", Existem mais de trs entradas "[CdigoDaEncomenda]=" & Formulrios![Encomendas]! na tabela Detalhes da [CdigoDaEncomenda]) > 3 Encomenda para a qual o campo CdigoDaEncomenda da tabela corresponde ao campo CdigoDaEncomenda do formulrio Encomendas. [DataDeEnvio] Entre #2-Fev-2007# E #2-Mar-2007# O valor do campo DataDeEnvio no formulrio a partir do qual a macro executada no anterior a 2Fev-2007 nem posterior a 2Mar-2007. Formulrios![Produtos]![Existncias] < 5 O valor do campo Existncias no formulrio Produtos inferior a 5. Nulo([Nome]) O valor Nome no formulrio a partir do qual a macro executada nulo (no possui nenhum valor). Esta expresso equivalente a [Nome] Nulo. [PasRegio]="Reino Unido" E Formulrios! O valor no campo PasRegio [TotaisDasVendas]![TotalDasEncomendas] > 100 no formulrio a partir do qual a macro executada Reino

Unido e o valor do campo TotalDasEncomendas no formulrio TotaisDasVendas maior que 100. [PasRegio] Em ("Frana", "Itlia", "Espanha") E O valor no campo PasRegio Compr([CdigoPostal])<>5 do formulrio a partir do qual a macro executada Frana, Itlia ou Espanha e o cdigo postal no tem 5 caracteres de comprimento. CxMsg("Confirmar alteraes?",1)=1 Clique em OK numa caixa de dilogo apresentada pela funo CxMsg. Se clicar em Cancelar na caixa de dilogo, o Access ir ignorar a aco. Nota Para forar o Access a ignorar temporariamente uma aco, escreva Falso como condio. Forar o Access a ignorar temporariamente uma aco poder ser til quando estiver a tentar localizar problemas numa macro. Exemplos de regras de validao A tabela abaixo oferece exemplos de regras de validao a nvel de campo e de registo, bem como texto de validao explicativo. Poder adaptar estes exemplos para que correspondam ao contedo. REGRA DE VALIDAO TEXTO DE VALIDAO <>0 >=0 Introduza um valor diferente de zero. O valor tem de ser igual a zero ou superior. - ou Tem de introduzir um nmero positivo. O valor tem de ser 0 ou superior a 100. Introduza um valor com um sinal de percentagem. (Para utilizao com um campo que armazene valores numricos como percentagens). Introduza uma data anterior a 2007. A data tem de ocorrer em 2007. A data de nascimento no se pode situar no futuro. Os dados no campo Apelido tm de estar em maisculas. Introduza a data actual. Introduza M para masculino ou F para feminino. Introduza um endereo de correio electrnico .com, .net ou .org vlido.

0 ou >100 ENTRE 0 E 1

<#01/01/2007# >=#01/01/2007# E <#01/01/2008# <Data() CompCad(Maiscula([Apelido]), [Apelido],0) = 0 >=Int(Agora()) M Ou F COMO "[A-Z]*@[A-Z].com" OU "[AZ]*@[A-Z].net" OU "[A-Z]*@[AZ].org"

[DataRequerida]<=[DataDaEncomenda] Introduza uma data requerida que no ocorra

+30 [DataDeFim]>=[DataDeIncio]

mais de 30 dias aps a data da encomenda. Introduza uma data de fim igual ou posterior data de incio.

Potrebbero piacerti anche