Exemplos de expressões

Este artigo fornece vários exemplos de expressões no Access. Uma expressão é uma combinação de operadores matemáticos ou lógicos, constantes, funções, campos de tabela, controlos e propriedades que são avaliados como um único valor. Pode utilizar expressões no Access para calcular valores, validar dados e predefinir um valor.

Neste artigo

Formulários e relatórios

As tabelas que se encontram nesta secção fornecem exemplos de expressões que calculam um valor num controlo localizado num formulário ou relatório. Para criar um controlo calculado, tem de introduzir uma expressão na propriedade do controlo OrigemDoControlo em vez de num campo de tabela ou numa consulta.

Nota    Também pode utilizar expressões num formulário ou relatório quando Realçar dados com formatação condicional.

Operações de texto

As expressões apresentadas na seguinte tabela utilizam os operadores & ("E" comercial) e + (sinal de adição) para combinar cadeias de texto, utilizar funções incorporadas para manipular uma cadeia de texto ou operar no texto para criar um controlo calculado.

Expressão

Resultado

="N/D"

Apresenta N/D.

= [NomePróprio] & " " & [Apelido]

Apresenta os valores que se encontram nos campos de tabela denominados NomePróprio e Apelido. Neste exemplo, o operador & é utilizado para combinar o campo NomePróprio com um caráter de espaço (colocado entre aspas) e o campo Apelido.

=Esquerda([NomeDoProduto], 1)

Utiliza a função Esquerda para apresentar o primeiro caráter do valor de um campo ou controlo denominado NomeDoProduto.

=Direita([CódigoDoAtivo], 2)

Utiliza a função Direita para apresentar os 2 últimos carateres do valor num campo ou controlo denominado CódigoDoAtivo.

=Compactar([Endereço])

Utiliza a função Compactar para apresentar o valor do controlo Endereço e remover os espaços à esquerda ou à direita.

=ISe(ÉNulo([Região]), [Localidade] & " " & [CódigoPostal], [Localidade] & " " & [Região] & " " & [CódigoPostal])

Utiliza a função ISe para apresentar os valores dos controlos Localidade e CódigoPostal se o valor no controlo Região for nulo. Caso contrário, apresenta os valores dos controlos Localidade, Região e CódigoPostal separados por espaços.

=[Localidade] & (" " + [Região]) & " " & [CódigoPostal]

Utiliza o operador + e a propagação de um valor nulo para apresentar os valores dos controlos Localidade e CódigoPostal se o valor no campo ou controlo Região for nulo. Caso contrário, apresenta os valores dos campos ou controlos Localidade, Região e CódigoPostal separados por espaços.

A propagação de valores nulos significa que, se um componente de uma expressão for nulo, toda a expressão é igualmente nula. O operador + suporta a propagação de valores nulos, ao passo que o operador & não a suporta.

Início da Página

Cabeçalhos e rodapés

As propriedades Página e Páginas utilizam-se para apresentar ou imprimir números de página em formulários ou relatórios. As propriedades Página e Páginas apenas estão disponíveis durante a impressão ou a pré-visualização, pelo que não são apresentadas na folha de propriedades do formulário ou relatório. Normalmente, estas propriedades utilizam-se colocando uma caixa de texto na secção de cabeçalho ou rodapé do formulário ou relatório e, em seguida, utilizando uma expressão, tal como as que são apresentadas na seguinte tabela.

Para obter mais informações sobre como utilizar cabeçalhos e rodapés em formulários e relatórios, consulte o artigo Inserir números de página num formulário ou relatório.

Expressão

Resultado

=[Página]

1

="Página" & [Página]

Página 1

="Página" & [Página] & " de " & [Páginas]

Página 1 de 3

=[Página] & " de " & [Páginas] & " Páginas"

1 de 3 Páginas

=[Página] & "/" & [Páginas] & " Páginas"

1/3 Páginas

=[País/região] & " - " & [Página]

Reino Unido – 1

=Formato([Página], "000")

001

="Impresso em: " & Data()

Impresso em: 31/12/2017

Início da Página

Operações aritméticas

Pode utilizar expressões para somar, subtrair, multiplicar e dividir os valores em dois ou mais campos ou controlos. Também pode utilizar expressões para efetuar operações aritméticas em datas. Por exemplo, imagine que tem um campo de tabela Data/Hora denominado DataObrigatória. No campo ou num controlo vinculado ao campo, a expressão =[RequiredDate] - 2 devolve um valor de data/hora igual a dois dias antes dos valores atuais do campo DataObrigatória.

Expressão

Resultado

=[Subtotal]+[Transporte]

A soma dos valores dos campos ou controlos Subtotal e Transporte.

=[DataObrigatória]-[DataDeEnvio]

O intervalo entre os valores de data dos campos ou controlos DataObrigatória e da DataDeEnvio.

=[Preço]*1,06

O produto do valor do campo ou controlo Preço por 1,06 (adiciona 6% ao valor de Preço).

=[Quantidade]*[Preço]

O produto dos valores do campo ou controlo Quantidade pelo valor do campo ou controlo Preço.

=[EmployeeTotal]/[CountryRegionTotal]

O quociente dos valores do campo ou controlo TotalDeColaboradores e do campo ou controlo TotalPaísRegião.

Nota    Quando utiliza um operador aritmético (+, -, * e /) numa expressão e o valor de um dos controlos na expressão é nulo, o resultado de toda a expressão será nulo. Isto é conhecido como propagação de valores nulos. Se existir a probabilidade de algum registo num dos controlos utilizados na expressão ter um valor nulo, poderá evitar a propagação de valores nulos convertendo o valor nulo em zero através da função Nz, por exemplo, =Nz([Subtotal])+Nz([Freight]).

Início da Página

Valores noutros controlos

Por vezes, necessita de um valor que se encontra noutro local, tal como num campo ou controlo noutro formulário ou relatório. Pode utilizar uma expressão para devolver o valor de outro campo ou controlo.

A tabela seguinte apresenta exemplos de expressões que pode utilizar em controlos calculados de formulários.

Expressão

Resultado

=Formulários![Encomendas]![IDDaEncomenda]

O valor do controlo IDDaEncomenda no formulário Encomendas.

=Formulários![Encomendas]! [Subformulário de Encomendas].Formulário![SubtotalDaEncomenda]

O valor do controlo SubtotalDaEncomenda no subformulário denominado Subformulário de Encomendas no formulário Encomendas.

=Formulários![Encomendas]![Subformulário de Encomendas]![IDDoProduto]. Coluna(2)

O valor da terceira coluna em IDDoProduto, uma caixa de listagem com várias colunas no subformulário denominado Subformulário de Encomendas no formulário Encomendas. (Tenha em atenção que 0 refere-se à primeira coluna, 1 refere-se à segunda coluna e assim sucessivamente.)

=Formulários![Encomendas]![Subformulário de Encomendas]![Preço] * 1,06

O produto do valor do controlo Preço no subformulário denominado Subformulário de Encomendas no formulário Encomendas por 1,06 (adiciona 6% ao valor do controlo Preço).

=Principal![IDDaEncomenda]

O valor do controlo IDDaEncomenda no formulário principal do subformulário atual.

As expressões apresentadas na seguinte tabela mostram algumas formas de utilizar controlos calculados em relatórios. As expressões fazem referência às Propriedades de Relatório.

Expressão

Resultado

=Relatório![Fatura]![IDDaEncomenda]

O valor de um controlo denominado "IDDaEncomenda" num relatório denominado "Fatura".

=Relatório![Resumo]![Subrelatório de Resumo]![TotalDeVendas]

O valor do controlo TotalDeVendas no subrelatório denominado Resumo do relatório Resumo.

=Principal![IDDaEncomenda]

O valor do controlo IDDaEncomenda no relatório principal do sub-relatório atual.

Início da Página

Contar, somar e calcular a média de valores

Pode utilizar um tipo de função denominada função de agregação para calcular valores para um ou mais campos ou controlos. Por exemplo, pode calcular um total de grupo para o rodapé do grupo num relatório ou um subtotal de encomenda para itens num formulário. Também pode contar o número de itens em um ou mais campos ou calcular um valor médio.

As expressões apresentadas na seguinte tabela mostram algumas formas de utilizar funções como Média, Contar e Soma.

Expressão

Descrição

=Média([Transporte])

Utiliza a função Média para apresentar a média dos valores de um campo de tabela ou controlo denominado "Transporte".

=Contar([IDDaEncomenda])

Utiliza a função Contar para apresentar o número de registos no controlo IDDaEncomenda.

=Soma([Vendas])

Utiliza a função Soma para apresentar a soma dos valores do controlo Vendas.

=Soma([Quantidade]*[Preço])

Utiliza a função Soma para apresentar a soma do produto dos valores de Quantidade pelos controlos Preço.

=[Vendas]/Soma([Vendas])*100

Apresenta a percentagem das vendas, determinada pela divisão do valor do controlo Vendas pela soma de todos os valores do controlo Vendas.

Se definir a propriedade Formato do controlo para Percentagem, não inclua *100 na expressão.

Para obter mais informações sobre a utilização de funções de agregação e o somatório de valores em campos e colunas, consulte os artigos Somar dados utilizando uma consulta, Contar dados utilizando uma consulta, Apresentar totais de colunas numa folha de dados ao utilizar uma linha de Totais e Apresentar totais de colunas numa folha de dados.

Início da Página

Funções de agregação SQL

Quando é necessário somar ou contar valores seletivamente, utiliza-se uma função denominada função agregada de domínio ou SQL. Um "domínio" consiste em um ou mais campos numa ou mais tabelas, ou em um ou mais controlos num ou mais formulários ou relatórios. Por exemplo, pode fazer com que os valores num campo de tabela correspondam aos valores num controlo de um formulário.

Expressão

Descrição

=DPesquisar("[NomeDoContacto]", "[Fornecedores]", "[IDDoFornecedor] = " & Formulários("Fornecedores")("[IDDoFornecedor]"))

Utiliza a função DPesquisar para devolver o valor do campo NomeDoContacto na tabela Fornecedores, onde o valor do campo IDDoFornecedor na tabela corresponde ao valor do controlo IDDoFornecedor no formulário Fornecedores.

=DPesquisar("[NomeDoContacto]", "[Fornecedores]", "[IDDoFornecedor] = " & Formulários![Novos Fornecedores]![IDDoFornecedor])

Utiliza a função DPesquisar para devolver o valor do campo NomeDoContacto na tabela Fornecedores, onde o valor do campo IDDoFornecedor na tabela corresponde ao valor do controlo IDDoFornecedor no formulário Novos Fornecedores.

=DSoma("[ValorDaEncomenda]", "[Encomendas]", "[IDDoCliente] = 'RATTC'")

Utiliza a função DSoma para devolver o total da soma dos valores no campo ValorDaEncomenda da tabela Encomendas, onde IDDoCliente é RATTC.

=DContar("[Retirados]","[Ativos]","[Retirados]=Sim")

Utiliza a função DContar para devolver o número de valores Sim no campo Descontinuado (um campo Sim/Não) na tabela Ativos.

Início da Página

Operações de data

A monitorização de datas e horas é uma atividade de base de dados fundamental. Por exemplo, pode calcular quantos dias passaram desde a data da fatura para listar os seus pagamentos a receber por data. Pode formatar datas e horas de várias maneiras, conforme apresentado na seguinte tabela.

Expressão

Descrição

=Data()

Utiliza a função Data para apresentar a data atual no formato mm-dd-yy, onde mm é o mês (de 1 a 12), dd é o dia (de 1 a 31) e yy corresponde aos dois últimos dígitos do ano (de 1980 a 2099).

=Formato(Agora(), "ss")

Utiliza a função Formato para apresentar o número da semana do ano para a data atual, onde ww representa as semanas 1 a 53.

=DatePart("aaaa", [DataDaEncomenda])

Utiliza a função DatePart para apresentar o ano de quatro dígitos do valor do controlo DataDeEncomenda.

=SomData("a", -10, [DataPrometida])

Utiliza a função SomData para apresentar uma data que corresponde a 10 dias antes do valor do controlo DataDeCompromisso.

=DifData("d", [DataDaEncomenda], [DataDeEnvio])

Utiliza a função DifData para apresentar o número de diferença de dias entre os valores dos controlos DataDeEncomenda e DataDeEnvio.

=[DataDaFatura] + 30

Utiliza operações aritméticas nas datas para calcular a data 30 dias posterior à data do campo ou controlo DataDaFatura.

Início da Página

Condições de apenas dois valores

Os exemplos de expressões apresentados na seguinte tabela utilizam a função ISe para devolver um de dois valores possíveis. Transmitem-se três argumentos à função ISe: O primeiro argumento é uma expressão que tem de devolver um valor True ou False. O segundo argumento é o valor a devolver se a expressão for verdadeira e o terceiro argumento é o valor a devolver se a expressão for falsa.

Expressão

Descrição

=ISe([Confirmada] = "Sim", "Encomenda Confirmada", "Encomenda Não Confirmada")

Utiliza a função ISe (Se Imediato) para apresentar a mensagem "Encomenda Confirmada" se o valor do controlo Confirmada for Yes. Caso contrário, apresenta a mensagem "Order Not Confirmed."

=ISe(ÉNulo([País/região]), " ", [País])

Utiliza as funções ISe e ÉNulo para apresentar uma cadeia vazia se o valor do controlo de País/região for nulo. Caso contrário, apresenta o valor do controlo País/região.

=ISe(ÉNulo([Região]), [Localidade] & " " & [CódigoPostal], [Localidade] & " " & [Região] & " " & [CódigoPostal])

Utiliza as funções ISe e ÉNulo para apresentar os valores dos controlos Localidade e CódigoPostal se o valor no controlo Região for nulo. Caso contrário, apresenta os valores dos campos ou controlos Localidade, Região e CódigoPostal.

=ISe(ÉNulo([DataObrigatória]) Ou ÉNulo([DataDeEnvio]), "Verificar se existe uma data em falta", [DataObrigatória] - [DataDeEnvio])

Utiliza as funções ISe e ÉNulo para apresentar a mensagem "Verificar se existe uma data em falta" se o resultado da subtração da DataDeEnvio pela DataObrigatória for nulo. Caso contrário, apresenta o intervalo entre os valores dos controlos DataObrigatória e DataDeEnvio.

Início da Página

Consultas e filtros

Esta secção contém exemplos de expressões que pode utilizar para criar um campo calculado numa consulta ou para fornecer critérios a uma consulta. Um campo calculado é uma coluna de uma consulta que resulta de uma expressão. Por exemplo, pode calcular um valor, combinar valores de texto, tais como nomes e apelidos, ou formatar uma parte de uma data.

Utilizam-se critérios numa consulta para limitar os registos com os quais se trabalha. Por exemplo, pode utilizar o operador Between para fornecer uma data de início e de fim e limitar os resultados da sua consulta a encomendas enviadas entre essas datas.

Em seguida, apresentamos exemplos de expressões para serem utilizadas em consultas.

Operações de texto

As expressões apresentadas na seguinte tabela utilizam os operadores & e + para combinar cadeias de texto, utilizar funções incorporadas para operar numa cadeia de texto ou operar no texto para criar um campo calculado.

Expressão

Descrição

NomeCompleto: [NomePróprio] & " " & [Apelido]

Cria um campo denominado NomeCompleto que apresenta os valores nos campos NomePróprio e Apelido separados por um espaço.

Endereço2: [Localidade] & " " & [Região] & " " & [CódigoPostal]

Cria um campo denominado Endereço2 que apresenta os valores nos campos Localidade, Região e CódigoPostal separados por espaços.

InicialDoProduto: Esquerda([NomeDoProduto], 1)

Cria um campo denominado InicialDoProduto e, em seguida, utiliza a função Esquerda para apresentar o primeiro caráter do valor no campo NomeDoProduto no campo InicialDoProduto.

CódigoDeTipo: Direita([CódigoDoAtivo], 2)

Cria um campo denominado CódigoDeTipo e, em seguida, utiliza a função Direita para apresentar os últimos dois carateres dos valores no campo CódigoDoAtivo.

Indicativo: Meio([Telefone],2,3)

Cria um campo denominado Indicativo e, em seguida, utiliza a função Meio para apresentar três carateres, começando pelo segundo caráter do valor, no campo Telefone.

PreçoExpandido: CMoeda([Detalhes da Encomenda].[Preço Unitário]*[Quantidade]*(1-[Desconto])/100)*100

Atribui um nome ao campo calculado PreçoExpandido e utiliza a função CMoeda para calcular a linha do total de itens com desconto aplicado.

Início da Página

Operações aritméticas

Pode utilizar expressões para somar, subtrair, multiplicar e dividir os valores em dois ou mais campos ou controlos. Também pode efetuar operações aritméticas em datas. Por exemplo, imagine que tem um campo Data/Hora denominado DataObrigatória. A expressão =[RequiredDate] - 2 devolve um valor de Data/Hora igual a dois dias antes do valor do campo DataObrigatória.

Expressão

Descrição

TransportePrincipal: [Transporte] * 1,1

Cria um campo denominado TransportePrincipal e, em seguida, apresenta os encargos de transporte acrescidos de 10% no campo.

ValorDaEncomenda: [Quantidade] * [PreçoUnitário]

Cria um campo denominado ValorDaEncomenda e, em seguida, apresenta o produto dos valores nos campos Quantidade e PreçoUnitário.

TempoDeExecução: [DataObrigatória] - [DataDeEnvio]

Cria um campo denominado TempoDeExecução e, em seguida, apresenta a diferença entre os valores nos campos DataObrigatória e DataDeEnvio.

StockTotal: [UnidadesEmStock] + [UnidadesEncomendadas]

Cria um campo denominado StockTotal e, em seguida, apresenta a soma dos valores nos campos UnidadesEmStock e UnidadesEncomendadas.

PercentagemDeTransporte: Soma([Transporte])/Soma([Subtotal]) *100

Cria um campo denominado PercentagemDeTransporte e, em seguida, apresenta a percentagem dos encargos de transporte em cada subtotal. Esta expressão utiliza a função Soma para somar os valores no campo Transporte e, em seguida, divide esses totais pela soma dos valores no campo Subtotal.

Para utilizar esta expressão, tem de converter a consulta Seleção numa consulta de Totais, porque precisa de utilizar a linha Total na grelha de estrutura e tem de definir a célula Total deste campo para Expressão.

Para obter mais informações sobre como criar uma consulta de Totais, consulte o artigo Somar dados utilizando uma consulta.

Se definir a propriedade Formato do campo para Percentagem, não inclua *100.

Para obter mais informações sobre a utilização de funções de agregação e o somatório de valores em campos e colunas, consulte os artigos Somar dados utilizando uma consulta, Contar dados utilizando uma consulta, Apresentar totais de colunas numa folha de dados ao utilizar uma linha de Totais e Apresentar totais de colunas numa folha de dados.

Início da Página

Operações de data

Quase todas as bases de dados armazenam e monitorizam datas e horas. Para trabalhar com datas e horas no Access, define-se os campos de data e hora nas tabelas para o tipo de dados Data/Hora. O Access pode efetuar cálculos aritméticos em datas, podendo, por exemplo, calcular quantos dias passaram desde a data da fatura para listar os seus pagamentos a receber por data.

Expressão

Descrição

TempoDeAtraso: DifData("d", [DataDaEncomenda], [DataDeEnvio])

Cria um campo denominado TempoDeAtraso e, em seguida, utiliza a função DifData para apresentar o número de dias entre a data da encomenda e data de envio.

AnoDeContratação: PartData("aaaa",[DataDeContratação])

Cria um campo denominado AnoDeContratação e, em seguida, utiliza a função PartData para apresentar o ano em que cada colaborador foi contratado.

MenosTrinta: Data( )- 30

Cria um campo denominado MenosTrinta e, em seguida, utiliza a função Data para apresentar a data 30 dias anterior à data atual.

Início da Página

Funções de agregação SQL

As expressões apresentadas na seguinte tabela utilizam funções SQL (Structured Query Language – linguagem SQL) que agregam ou resumem dados. Estas funções (por exemplo, Soma, Contar e Média) são frequentemente denominadas funções de agregação.

Além das funções de agregação, o Access também fornece funções de agregação de "domínio" que pode utilizar para somar ou contar valores seletivamente. Por exemplo, pode contar apenas os valores dentro de um determinado intervalo ou procurar um valor de outra tabela. O conjunto de funções agregadas de domínio inclui a Função DSoma, a Função DContar e a Função DMédia.

Para calcular totais terá, muitas vezes, de criar uma consulta de Totais. Por exemplo, para resumir por grupo, tem de utilizar uma consulta de Totais. Para ativar uma consulta de Totais a partir da grelha de estrutura de consulta, clique em Totais no menu Vista.

Expressão

Descrição

ContagemDeLinhas: Contar(*)

Cria um campo denominado ContagemDeLinhas e, em seguida, utiliza a função Contar para contar o número de registos na consulta, incluindo os registos com campos nulos (em branco).

PercentagemDeTransporte: Soma([Transporte])/Soma([Subtotal]) *100

Cria um campo denominado PercentagemDeTransporte e, em seguida, calcula a percentagem dos encargos de transporte em cada subtotal através da divisão da soma dos valores no campo Transporte pela soma dos valores no campo Subtotal. (Este exemplo utiliza a função Soma.)

Tem de utilizar esta expressão com uma consulta de Totais. Se definir a propriedade Formato do campo para Percentagem, não inclua *100.

Para obter mais informações sobre como criar uma consulta de Totais, consulte o artigo Somar dados utilizando uma consulta.

TransporteMédio: DMédia("[Transporte]", "[Encomendas]")

Cria um campo denominado TransporteMédio e, em seguida, utiliza a função DMédia para calcular o valor médio do transporte em todas as encomendas combinadas numa consulta de Totais.

Início da Página

Campos com dados em falta

As expressões aqui apresentadas funcionam com campos que podem ter informações em falta, tal como os que contêm valores nulos (desconhecidos ou indefinidos). Muitas vezes surgem valores nulos, tais como um preço 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 fundamental das operações das bases de dados. As expressões apresentadas na seguinte tabela mostram algumas formas comuns de lidar com estes valores.

Expressão

Descrição

PaísRegiãoAtual: =ISe(ÉNulo([PaísRegião]), " ", [PaísRegião])

Cria um campo denominado PaísRegiãoAtual e, em seguida, utiliza as funções ISe e ÉNulo para apresentar uma cadeia vazia nesse campo quando o campo PaísRegião contém um valor nulo. Caso contrário, apresenta o conteúdo do campo PaísRegião.

TempoDeExecução: ISe(ÉNulo([DataObrigatória]) - [DataDeEnvio]), "Procurar uma data em falta", [DataObrigatória] - [DataDeEnvio])

Cria um campo denominado TempoDeExecução e, em seguida, utiliza as funções ISe e ÉNulo para apresentar a mensagem "Procurar uma data em falta" se o valor no campo DataObrigatória ou DataDeEnvio for nulo. Caso contrário, apresenta a diferença entre estas datas.

VendasSemestrais: Nz([VendasDoTri1]) + Nz([VendasDoTri2])

Cria um campo denominado VendasSemestrais e, em seguida, apresenta o total dos valores nos campos VendasDoTri1 e VendasDoTri2, utilizando primeiro a função Nz para converter os valores nulos em zero.

Início da Página

Subconsultas e campos calculados

Pode utilizar uma consulta aninhada, também conhecida como subconsulta, para criar um campo calculado. A expressão apresentada na seguinte tabela é um exemplo de um campo calculado que resulta de uma subconsulta.

Expressão

Descrição

Cat: (SELECT [NomeDaCategoria] FROM [Categorias] WHERE [Produtos].IDDaCategoria]=[Categorias].[IDDaCategoria])

Cria um campo denominado Cat e, em seguida, apresenta o NomeDaCategoria se o IDDaCategoria da tabela Categorias for igual ao IDDaCategoria da tabela Produtos.

Início da Página

Corresponder valores de texto

Os exemplos de expressões apresentados nesta tabela demonstram critérios que efetuam correspondências entre valores de texto inteiros ou parciais.

Campo

Expressão

Descrição

CidadeDeEnvio

"Coimbra"

Apresenta encomendas enviadas para Coimbra.

CidadeDeEnvio

"Coimbra" Ou "Porto"

Utiliza o operador Or para apresentar as encomendas enviadas para Coimbra ou para o Porto.

PaísRegiãoDeEnvio

Em("Portugal", "Reino Unido")

Utiliza o operador In para apresentar as encomendas enviadas para Portugal ou para o Reino Unido.

PaísRegiãoDeEnvio

Não "EUA"

Utiliza o operador Not para apresentar as encomendas enviadas para todos os países/as regiões, exceto para os EUA.

NomeDoProduto

Não É Como "C*"

Utiliza o operador Not e o caráter universal * para apresentar produtos cujos nomes não começam com "C".

NomeDaEmpresa

>="N"

Apresenta as encomendas enviadas para empresas cujos nomes começam com letras de N a Z.

CódigoDoProduto

Direita([CódigoDoProduto], 2)="99"

Utiliza a função Direita para apresentar as encomendas com valores de CódigoDoProduto que terminem em 99.

NomeDeEnvio

Como "S*"

Apresenta as encomendas enviadas para clientes cujos nomes começam com a letra S.

Início da Página

Corresponder os dados aos critérios

As expressões apresentadas na seguinte tabela demonstram a utilização de datas e funções relacionadas em expressões de critérios. Para obter mais informações sobre como introduzir e utilizar valores de data, consulte o artigo Formatar um camp de data e hora.

Campo

Expressão

Descrição

DataDeEnvio

#2/2/2017#

Apresenta encomendas enviadas no dia 2 de fevereiro de 2017.

DataDeEnvio

Data()

Apresenta encomendas enviadas hoje.

DataDeEntrega

Entre Data( ) E SomData("m", 3, Data( ))

Utiliza o operador Between...And e as funções SomData e Data para apresentar as encomendas entre a data atual e três meses a partir da data atual.

DataDaEncomenda

< Data( ) - 30

Utiliza a função Data para apresentar as encomendas com mais de 30 dias.

DataDaEncomenda

Ano([DataDaEncomenda])=2017

Utiliza a função Ano para apresentar as encomendas com datas de encomenda pertencentes ao ano 2017.

DataDaEncomenda

DatePart("t", [DataDaEncomenda])=4

Utiliza a função DatePart para apresentar as encomendas do quarto trimestre civil.

DataDaEncomenda

DataSerial(Ano ([DataDaEncomenda]), Mês([DataDaEncomenda])+1, 1)-1

Utiliza as funções DataSerial, Ano e Mês para apresentar as encomendas do último dia de cada mês.

DataDaEncomenda

Ano([DataDaEncomenda])= Ano(Agora()) E Mês([DataDaEncomenda])= Mês(Agora())

Utiliza as funções Ano e Mês e o operador E para apresentar as encomendas do mês e ano atuais.

DataDeEnvio

Entre #05/01/2017# E #10/01/2017#

Utiliza o operador Between...And para apresentar as encomendas enviadas entre 5-jan-2017 e 10-jan-2017.

DataDeEntrega

Entre Data( ) E SomData("M", 3, Data( ))

Utiliza o operador Between...And para apresentar as encomendas necessárias entre a data atual e três meses a partir da data de hoje.

DataDeNascimento

Mês([DataDeNascimento])=Mês(Data())

Utiliza as funções Mês e Data para apresentar os colaboradores cujo aniversário é neste mês.

Início da Página

Localizar dados em falta

As expressões apresentadas na seguinte tabela funcionam com campos que podem ter informações em falta, ou seja, com campos que poderão conter um valor nulo ou uma cadeia de comprimento zero. Um valor nulo representa a ausência de informação; não representa um zero nem qualquer outro valor. O Access suporta esta ideia de informações em falta, dado que este conceito é vital para a integridade de uma base de dados. No mundo real, as informações estão muitas vezes em falta, mesmo que apenas temporariamente (por exemplo, o preço ainda por determinar de um produto novo). Assim, uma base de dados que serve como modelo de uma entidade do mundo real, tal como de uma empresa, tem de ser capaz de registar informações como estando em falta. Pode utilizar a função ÉNulo para determinar se um campo ou controlo contém um valor nulo e a função Nz para converter um valor nulo em zero.

Campo

Expressão

Descrição

RegiãoDeEnvio

É Nulo

Apresenta as encomendas de clientes cujo campo RegiãoDeEnvio é nulo (está em falta).

RegiãoDeEnvio

Não é Nulo

Apresenta as encomendas de clientes cujo campo RegiãoDeEnvio contém um valor.

Fax

""

Apresenta as encomendas de clientes que não têm fax, sendo este facto indicado por um valor de cadeia de comprimento no campo Fax em vez de por um valor nulo (em falta).

Início da Página

Corresponder padrões de registo com Como

O operador Like permite uma grande flexibilidade quando está a tentar efetuar correspondências entre linhas que seguem um padrão, dado que pode utilizar o operador Like com carateres universais e definir padrões para o Access efetuar a correspondência. Por exemplo, o caráter universal * (asterisco) efetua correspondências entre uma sequência de carateres de qualquer tipo, facilitando a localização de todos os nomes que começam com uma determinada letra. Por exemplo, utilize a expressão Like "S*" para encontrar todos os nomes que começam com a letra S. Para obter mais informações, consulte o artigo Operador Como.

Campo

Expressão

Descrição

NomeDeEnvio

Como "S*"

Localiza todos os registos no campo NomeDeEnvio que começam com a letra "S".

NomeDeEnvio

Como "*Importações"

Localiza todos os registos no campo NomeDeEnvio que terminam com a palavra "Importações".

NomeDeEnvio

Como "[A-D]*"

Localiza todos os registos no campo NomeDeEnvio que começam com as letras "A", "B", "C" ou "D".

NomeDeEnvio

Como "*ar*"

Localiza todos os registos no campo NomeDeEnvio que incluem a sequência de letras "ar".

NomeDeEnvio

Como "Artur Cunh?"

Localiza todos os registos no campo NomeDeEnvio que incluem "Artur" na primeira parte do valor e uma cadeia de cinco letras, na qual as primeiras quatro letras são "Cunh" e a última letra é desconhecida.

NomeDeEnvio

Não É Como "A*"

Localiza todos os registos no campo NomeDeEnvio que não começam com a letra "A".

Início da Página

Corresponder linhas com agregação SQL

Quando é necessário somar, contar ou calcular a média de valores seletivamente, utiliza-se uma função agregada de domínio ou SQL. Por exemplo, pode pretender contar apenas os valores inseridos dentro de um determinado intervalo ou que são avaliados como Sim. Noutras ocasiões, poderá ter de procurar um valor de outra tabela para que o possa apresentar. Os exemplos de expressões apresentados na seguinte tabela utilizam as funções agregadas de domínio para efetuar um cálculo com base num conjunto de valores e utilizar o resultado como os critérios de consulta.

Campo

Expressão

Descrição

Transporte

> (DDesvP("[Transporte]", "Encomendas") + DMédia("[Transporte]", "Encomendas"))

Utiliza as funções DDesvP e DMédia para apresentar todas as encomendas cujo custo de transporte é superior ao valor da soma da média com o desvio-padrão do custo do transporte.

Quantidade

> DMédia("[Quantidade]", "[Detalhes da Encomenda]")

Utiliza a função DMédia para apresentar produtos encomendados em quantidades superiores à quantidade de encomenda média.

Início da Página

Corresponder campos com subconsultas

Para calcular um valor para utilizar como critério, utilizam-se subconsultas, também denominadas consultas aninhadas. Os exemplos de expressões apresentados na seguinte tabela efetuam correspondências entre linhas com base nos resultados devolvidos por uma subconsulta.

Campo

Expressão

Apresenta

PreçoUnitário

(SELECT [PreçoUnitário] FROM [Produtos] WHERE [NomeDoProduto] = "Licor de Anis")

Produtos cujo preço é igual ao do Licor de Anis.

PreçoUnitário

>(SELECT AVG([PreçoUnitário]) FROM [Produtos])

Produtos que têm um preço unitário acima da média.

Salário

>ALL (SELECT [Salário] FROM [Colaboradores] WHERE ([Cargo] LIKE "*Gestor *") OR ([Cargo] LIKE "* Vice-presidente*"))

Salário de cada representante de vendas cujo salário é superior ao de todos os colaboradores que ocupam cargos de "Gestor" ou "Vice-presidente".

TotalDaEncomenda: [PreçoUnitário] * [Quantidade]

> (SELECT AVG ([PreçoUnitário] * [Quantidade]) DE [Detalhes da Encomenda])

Encomendas com totais superiores ao valor de encomenda médio.

Início da Página

Atualizar consultas

As consultas de atualização utilizam-se para modificar os dados em um ou mais campos existentes numa base de dados. Por exemplo, pode substituir valores ou eliminá-los totalmente. Esta tabela mostra algumas formas de utilizar expressões em consultas de atualização. Estas expressões utilizam-se na linha Atualizar Para na grelha de estrutura da consulta para o campo que pretende atualizar.

Para obter mais informações sobre a criação de consultas de atualização, consulte o artigo Criar e executar uma consulta de atualização.

Campo

Expressão

Resultado

Título

"Vendedor"

Altera um valor de texto para Vendedor.

InícioDoProjeto

#10/08/17#

Altera um valor de data para 10-ago-17.

Descontinuado

Sim

Altera um valor Não num campo Sim/Não para Sim.

NúmeroDePeça

"NP" & [NúmeroDePeça]

Adiciona NP ao início de cada número de peça especificado.

TotalDoItem

[PreçoUnitário] * [Quantidade]

Calcula o produto do PreçoUnitário pela Quantidade.

Transporte

[Frete] * 1,5

Aumenta os encargos de transporte em 50%.

Vendas

DSoma("[Quantidade] * [PreçoUnitário]", "Detalhes da Encomenda", "[CódigoDoProduto]=" & [CódigoDoProduto])

Atualiza os totais de vendas com base no produto da Quantidade pelo PreçoUnitário quando os valores IDDoProduto da tabela atual correspondem aos valores IDDoProduto da tabela Detalhes da Encomenda.

CódigoPostalDeEnvio

Direita([CódigoPostalDoDestino], 5)

Trunca os carateres mais à esquerda, deixando ficar os cinco carateres mais à direita.

PreçoUnitário

Nz([PreçoUnitário])

Altera um valor nulo (desconhecido ou indefinido) para zero (0) no campo PreçoUnitário.

Início da Página

Instruções SQL

A linguagem SQL (Structured Query Language), é a linguagem de consulta utilizada pelo Access. Todas as consultas que criar na vista de Estrutura de consulta também podem ser expressas através de SQL. Para ver a instrução SQL de qualquer consulta, clique em Vista de SQL no menu Vista. A tabela seguinte mostra exemplos de instruções SQL que utilizam uma expressão.

Instrução SQL que utiliza uma expressão

Resultado

SELECT [NomePróprio],[Apelido] FROM [Colaboradores] WHERE [Apelido]="Sousa";

Apresenta os valores nos campos NomePróprio e Apelido dos colaboradores cujo apelido é Sousa.

SELECT [IDDoProduto],[NomeDoProduto] FROM [Produtos] WHERE [IDDaCategoria]=Formulários![Novos Produtos]![IDDaCategoria];

Apresenta os valores nos campos IDDoProduto e NomeDoProduto da tabela Produtos para registos em que o valor de IDDaCategoria corresponde ao valor de IDDaCategoria especificado num formulário aberto denominado Novos Produtos.

SELECT Média([PreçoExpandido]) AS [Preço Expandido Médio] FROM [Detalhes da Encomenda Expandidos] WHERE [PreçoExpandido]>1000;

Calcula o preço expandido médio para encomendas cujo valor no campo PreçoExpandido é superior a 1000 e apresenta-o num campo denominado Preço Expandido Médio.

SELECT [IDDaCategoria], Contar([IDDoProduto]) AS [ContagemDoIDDoProduto] FROM [Produtos] GROUP BY [IDDaCategoria] HAVING Contar([IDDoProduto])>10;

Apresenta o número total de produtos para as categorias com mais de 10 produtos num campo denominado ContagemDoIDDoProduto.

Início da Página

Expressões de tabelas

As duas formas mais comuns de utilizar expressões em tabelas é atribuir um valor predefinido e criar uma regra de validação.

Valores de campos predefinidos

Ao criar uma base de dados, poderá pretender atribuir um valor predefinido a um campo ou controlo. Neste caso, o Access fornece o valor predefinido quando se cria um novo registo que contém o campo ou quando se cria um objeto que contém o controlo. As expressões apresentadas na seguinte tabela representam exemplos de valores predefinidos para um campo ou controlo. Se um controlo estiver vinculado a um campo numa tabela e o campo tiver um valor predefinido, o valor predefinido do controlo terá prioridade.

Campo

Expressão

Valor de campo predefinido

Quantidade

1

1

Região

"Braga"

Braga

Região

"Lisboa"

Lisboa (Tenha em atenção que tem de escrever o valor entre aspas se este incluir pontuação.)

Fax

""

Uma cadeia de comprimento zero para indicar que, por predefinição, este campo deve estar vazio em vez de que conter um valor nulo

Data da Encomenda

Data( )

A data de hoje

DataDeConclusão

Data() + 60

A data correspondente a 60 dias a partir de hoje

Início da Página

Regras de validação de campo

Pode criar uma regra de validação para um campo ou controlo utilizando uma expressão. Neste caso, o Access impõe a regra quando são introduzidos dados no campo ou controlo. Para criar uma regra de validação, modifica-se a propriedade RegraDeValidação do campo ou controlo. Também deve considerar definir a propriedade TextoDeValidação, que contém o texto que o Access apresenta quando a regra de validação é violada. Se não definir a propriedade TextoDeValidação, o Access apresenta uma mensagem de erro predefinida.

Os exemplos apresentados na seguinte tabela demonstram as expressões de regra de validação para a propriedade RegraDeValidação e o texto associado para a propriedade TextoDeValidação.

Propriedade RegraDeValidação

Propriedade TextoDeValidação

<> 0

Introduza um valor diferente de 0.

0 Ou > 100

O valor tem de ser igual a 0 ou superior a 100.

Como "K???"

O valor tem de ter quatro carateres e começar com a letra "K".

< #01/01/2017#

Introduza uma data anterior a 01/01/2017.

>= #01/01/2017# e < #01/01/2008#

A data tem de ocorrer em 2017.

Para obter mais informações sobre a validação de dados, consulte o artigo Criar uma regra de validação para validar dados num campo.

Início da Página

Expressões de macros

Em alguns casos, poderá pretender executar uma ação ou uma série de ações numa macro apenas se uma determinada condição for verdadeira. Por exemplo, imagine que pretende que uma ação só seja executada quando o valor da caixa de texto Contador for igual a 10. Utilize uma expressão para definir a condição na coluna Condição da macro:

[Counter]=10

Tal como a propriedade RegraDeValidação, a expressão da coluna Condição é uma expressão condicional. Esta expressão tem de devolver um valor True ou False. A ação apenas decorre quando a condição for verdadeira.

Sugestão    Para forçar o Access a ignorar temporariamente uma ação, escreva False como uma condição. Isto pode ser útil quando está a tentar encontrar problemas numa macro.

Utilizar esta expressão para executar a ação

Se

[Localidade]="Faro"

Faro é o valor da Localidade no campo do formulário a partir do qual foi executada a macro.

DContar("[IDDaEncomenda]", "Encomendas") > 35

Existem mais de 35 entradas no campo IDDaEncomenda da tabela Encomendas.

DContar("*", "[Detalhes da Encomenda]", "[IDDaEncomenda]=" & Formulários![ Encomendas]![IDDaEncomenda]) > 3

Existem mais de três entradas na tabela Detalhes da Encomenda nas quais o campo IDDaEncomenda da tabela corresponde ao campo IDDaEncomenda do formulário Encomendas.

[DataDeEnvio] Entre #2-fev-2017# E #2-mar-2017#

O valor do campo DataDeEnvio do formulário a partir do qual a macro é executada está compreendido entre 2-fev-2017 e 2-mar-2017.

Formulários![Produtos]![UnidadesEmStock] < 5

O valor do campo UnidadesEmStock do formulário Produtos é inferior a 5.

ÉNulo([NomePróprio])

O valor NomePróprio do formulário a partir do qual a macro é executada é nulo (não tem valor). Esta expressão é equivalente a [NomePróprio] É Nulo.

[PaísRegião]="ReinoUnido" E Formulários![TotaisDeVendas]! [TotalDeEncomendas] > 100

O valor no campo PaísRegião do formulário a partir do qual a macro é executada é Reino Unido e o valor do campo TotalDeEncomendas no formulário TotaisDeVendas é superior a 100.

[PaísRegião] Em ("França", "Itália", "Espanha") E Núm. Carat([CódigoPostal])<>5

O valor no campo PaísRegião do formulário a partir do qual a macro é executada é França, Itália ou Espanha, e o código postal não é constituído por 5 carateres.

CxMsg("Confirmar alterações?",1)=1

Clique em OK numa caixa de diálogo apresentada pela função CxMsg. Se clicar em Cancelar na caixa de diálogo, o Access ignora a ação.

Início da Página

Consulte Também

Utilizar o Construtor de Expressões

Introdução às expressões

Criar uma expressão

Guia para a sintaxe de expressões

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×