Exemplos de expressões

Aplica-se A
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Neste artigo

Formulários e relatórios

Todas as expressões em formulários e relatórios

Operações de texto; Valores noutros controlos; Operações de data Cabeçalhos e rodapés; Contar, somar e calcular a média dos valores; Condições de apenas dois valores Operações aritméticas; Funções de agregação SQL

Consultas e filtros

Todas as expressões de consultas e filtros

Operações de texto; funções de agregação SQL; Corresponder valores de texto; Corresponder padrões de registro com Like; Atualizar consultas Operações aritméticas; Encontrar dados em falta; Corresponder os critérios de data; Corresponder linhas com agregação SQL; Instruções SQL Operações de data; Campos calculados com subconsultas; Campos com dados em falta; Corresponder campos com subconsultas

Tabelas

Todas as expressões de tabelas

Valores de campos predefinidos Regras de validação de campos

Macros

Todas as expressões de macros

Formulários e relatórios

As tabelas nesta secção mostram expressões que calculam um valor num controlo num formulário ou relatório. Para criar um controlo calculado, introduza ControlSource uma expressão na propriedade do controlo em vez de numa tabela, campo ou consulta.

Nota

Também pode utilizar expressões num formulário ou relatório quando realça 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 trabalhar com texto ou criar um controlo calculado.

Expressão Resultado
="N/A" Apresenta N/D.
=[FirstName] & " " & [LastName] 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.
=Left([ProductName], 1) Utiliza a Left função para apresentar o primeiro caráter do valor num campo ou controlo denominado ProductName.
=Right([AssetCode], 2) Utiliza a Right função para apresentar os últimos dois carateres do valor num campo ou controlo denominado AssetCode.
=Trim([Address]) Utiliza a Trim função para apresentar o valor do controlo após remover espaços Address à esquerda e à direita.
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) Utiliza a IIf função para apresentar os valores dos City controlos e PostalCode se o Region controlo for nulo. Caso contrário, apresenta os Cityvalores de , Regione PostalCode controlos, separados por espaços.
=[City] & (" " + [Region]) & " " & [PostalCode] Utiliza o operador e a + propagação de valores nulos para apresentar os valores dos City controlos e PostalCode se o Region valor no campo ou controlo for nulo. Caso contrário, apresenta os Cityvalores do , Regione PostalCode campos ou controlos, separados por espaços. A propagação de valores nulos significa que, se uma parte de uma expressão for nula, toda a expressão é nula. O + operador suporta a propagação de valores nulos, mas o & operador não.

Voltar ao início

Cabeçalhos e rodapés

Utilize as Page propriedades e Pages para apresentar ou imprimir números de página em formulários ou relatórios. Estas propriedades só 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, coloca uma caixa de texto na secção de cabeçalho ou rodapé do formulário ou relatório e, em seguida, utiliza uma expressão como as expressões 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
=[Page] 1
="Page " & [Page] Página 1
="Page " & [Page] & " of " & [Pages] Página 1 de 3
=[Page] & " of " & [Pages] & " Pages" 1 de 3 Páginas
=[Page] & "/" & [Pages] & " Pages" 1/3 Páginas
=[Country/region] & " - " & [Page] Reino Unido – 1
=Format([Page], "000") 001
="Printed on: " & Date() Impresso em: 31/12/2017

Voltar ao início

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]+[Freight] A soma dos valores dos campos ou controlos Subtotal e Transporte.
=[RequiredDate]-[ShippedDate] O intervalo entre os valores de data dos campos ou controlos DataObrigatória e da DataDeEnvio.
=[Price]*1.06 O produto do valor do campo ou controlo Preço por 1,06 (adiciona 6% ao valor de Preço).
=[Quantity]*[Price] 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 (+, -, *ou /) numa expressão e um dos controlos é nulo, o resultado de toda a expressão é nulo. Isto é conhecido como propagação de valores nulos. Se um controlo puder ter um valor nulo, pode evitar a propagação de valores nulos utilizando a função Nz para converter o valor nulo em zero. Por exemplo, utilize =Nz([Subtotal])+Nz([Freight]).

Voltar ao início

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
=Forms![Orders]![OrderID] O valor do controlo IDDaEncomenda no formulário Encomendas.
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] O valor do controlo SubtotalDaEncomenda no subformulário denominado Subformulário de Encomendas no formulário Encomendas.
=Forms![Orders]![Orders Subform]![ProductID].Column(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.)
=Forms![Orders]![Orders Subform]![Price] * 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).
=Parent![OrderID] 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
=Report![Invoice]![OrderID] O valor de um controlo denominado "IDDaEncomenda" num relatório denominado "Fatura".
=Report![Summary]![Summary Subreport]![SalesTotal] O valor do controlo TotalDeVendas no subrelatório denominado Resumo do relatório Resumo.
=Parent![OrderID] O valor do controlo IDDaEncomenda no relatório principal do sub-relatório atual.

Voltar ao início

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
=Avg([Freight]) Utiliza a função Média para apresentar a média dos valores de um campo de tabela ou controlo denominado "Transporte".
=Count([OrderID]) Utiliza a função Contar para apresentar o número de registos no controlo IDDaEncomenda.
=Sum([Sales]) Utiliza a função Soma para apresentar a soma dos valores do controlo Vendas.
=Sum([Quantity]*[Price]) Utiliza a função Soma para apresentar a soma do produto dos valores de Quantidade pelos controlos Preço.
=[Sales]/Sum([Sales])*100 Apresenta a percentagem das vendas ao dividir o valor do Sales controlo pela soma de todos os valores no Sales controlo. Se definir a Format propriedade do controlo para Percent, 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.

Voltar ao início

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
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) 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.
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) 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.
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") Utiliza a função DSoma para devolver o total da soma dos valores no campo ValorDaEncomenda da tabela Encomendas, onde IDDoCliente é RATTC.
=DCount("[Retired]","[Assets]","[Retired]=Yes") Utiliza a função DContar para devolver o número de valores Sim no campo Descontinuado (um campo Sim/Não) na tabela Ativos.

Voltar ao início

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
=Date() Utiliza a função Data para apresentar a data atual sob a forma de mm-dd-yy, em que mm é o mês (1 a 12), dd é o dia (1 até 31) e yy são os dois últimos dígitos do ano (1980 até 2099).
=Format(Now(), "ww") 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("yyyy", [OrderDate]) Utiliza a função DatePart para apresentar o ano de quatro dígitos do valor do controlo DataDeEncomenda.
=DateAdd("y", -10, [PromisedDate]) Utiliza a função SomData para apresentar uma data que corresponde a 10 dias antes do valor do controlo DataDeCompromisso.
=DateDiff("d", [OrderDate], [ShippedDate]) Utiliza a função DifData para apresentar o número de diferença de dias entre os valores dos controlos DataDeEncomenda e DataDeEnvio.
=[InvoiceDate] + 30 Utiliza operações aritméticas nas datas para calcular a data 30 dias posterior à data do campo ou controlo DataDaFatura.

Voltar ao início

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 True valor 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
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") 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."
=IIf(IsNull([Country/region]), " ", [Country]) 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.
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) 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.
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) 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.

Voltar ao início

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 Between operador para fornecer uma data de início e de fim e limitar os resultados da sua consulta a encomendas enviadas entre essas datas.

As seguintes secções fornecem exemplos de expressões para serem utilizadas em consultas.

Operações de texto em consultas

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
FullName: [FirstName] & " " & [LastName] Cria um campo denominado NomeCompleto que apresenta os valores nos campos NomePróprio e Apelido separados por um espaço.
Address2: [City] & " " & [Region] & " " & [PostalCode] Cria um campo denominado Endereço2 que apresenta os valores nos campos Localidade, Região e CódigoPostal separados por espaços.
ProductInitial: Left([ProductName], 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.
TypeCode: Right([AssetCode], 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.
AreaCode: Mid([Phone],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.
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/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.

Voltar ao início

Operações aritméticas em consultas

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
PrimeFreight: [Freight] * 1.1 Cria um campo denominado TransportePrincipal e, em seguida, apresenta os encargos de transporte acrescidos de 10% no campo.
OrderAmount: [Quantity] * [UnitPrice] Cria um campo denominado ValorDaEncomenda e, em seguida, apresenta o produto dos valores nos campos Quantidade e PreçoUnitário.
LeadTime: [RequiredDate] - [ShippedDate] Cria um campo denominado TempoDeExecução e, em seguida, apresenta a diferença entre os valores nos campos DataObrigatória e DataDeEnvio.
TotalStock: [UnitsInStock]+[UnitsOnOrder] Cria um campo denominado StockTotal e, em seguida, apresenta a soma dos valores nos campos UnidadesEmStock e UnidadesEncomendadas.
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 Cria um campo denominado FreightPercentage, e, em seguida, apresenta a percentagem dos encargos de transporte em cada subtotal. Esta expressão utiliza a Sum função para somar os valores no campo e, em Freight seguida, divide esses totais pela soma dos valores no Subtotal campo. Para utilizar esta expressão, converta a consulta selecionar numa consulta de Totais. Tem de utilizar a linha Total na grelha de estrutura e definir a célula Total deste campo como Expression. Para obter mais informações sobre como criar uma consulta de Totais, consulte Somar dados usando uma consulta. Se definir a Format propriedade do campo como Percent, 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.

Voltar ao início

Operações de data em consultas

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
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) 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.
YearHired: DatePart("yyyy",[HireDate]) Cria um campo denominado AnoDeContratação e, em seguida, utiliza a função PartData para apresentar o ano em que cada colaborador foi contratado.
MinusThirty: Date( )- 30 Cria um campo denominado MenosTrinta e, em seguida, utiliza a função Data para apresentar a data 30 dias anterior à data atual.

Voltar ao início

Funções de agregação SQL em consultas

As expressões apresentadas na seguinte tabela utilizam funções SQL que agregam ou resumem dados. É frequente ver funções como Sum, Counte referidas Avg como 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 lhe permitem somar ou contar valores seletivamente. Por exemplo, pode contar apenas os valores dentro de um determinado intervalo ou procurar um valor de outra tabela. As funções agregadas de domínio incluem DSoma, DContar e DMédia.

Para calcular totais é frequentemente necessário criar uma consulta de Totais. Por exemplo, para resumir por grupo, utilize uma consulta de Totais. Para ativar uma consulta de Totais a partir da grelha de estrutura da consulta, selecione Totais no menu Ver .

Expressão Descrição
RowCount: Count(*) 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).
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 Cria um campo denominado FreightPercentage, e, em seguida, calcula a percentagem dos encargos de transporte em cada subtotal através da divisão da soma dos valores no Freight campo pela soma dos valores no Subtotal campo. Este exemplo utiliza a Sum função. Tem de utilizar esta expressão com uma consulta de Totais. Se definir a Format propriedade do campo como Percent, não inclua *100. Para obter mais informações sobre como criar uma consulta de Totais, consulte Somar dados usando uma consulta.
AverageFreight: DAvg("[Freight]", "[Orders]") 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.

Voltar ao início

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
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) 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.
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) 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.
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) 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.

Voltar ao início

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 [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) Cria um campo denominado Cat e, em seguida, apresenta o NomeDaCategoria se o IDDaCategoria da tabela Categorias for igual ao IDDaCategoria da tabela Produtos.

Voltar ao início

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 "London" Apresenta encomendas enviadas para Coimbra.
CidadeDeEnvio "London" Or "Hedge End" Utiliza o operador para apresentar encomendas Or enviadas para Coimbra ou para o Porto.
PaísRegiãoDeEnvio In("Canada", "UK") Utiliza o In operador para apresentar encomendas enviadas para o Canadá ou para o Reino Unido.
PaísRegiãoDeEnvio Not "USA" Utiliza o operador para apresentar as encomendas enviadas para todos os países/as regiões, exceto para os Not EUA.
NomeDoProduto Not Like "C*" Utiliza o Not operador 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 pelas letras N até Z.
CódigoDoProduto Right([ProductCode], 2)="99" Utiliza a função Direita para apresentar as encomendas com valores de CódigoDoProduto que terminem em 99.
NomeDeEnvio Like "S*" Apresenta as encomendas enviadas para clientes cujos nomes começam pela letra S.

Voltar ao início

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 Date() Apresenta encomendas enviadas hoje.
DataDeEntrega Between Date( ) And DateAdd("m", 3, Date( )) Utiliza o Between...And operador e as funções SomData e Data para apresentar as encomendas necessárias entre a data atual e três meses a partir da data atual.
DataDaEncomenda < Date( ) - 30 Utiliza a função Data para apresentar as encomendas com mais de 30 dias.
DataDaEncomenda Year([OrderDate])=2017 Utiliza a função Ano para apresentar as encomendas com datas de encomenda pertencentes ao ano 2017.
DataDaEncomenda DatePart("q", [OrderDate])=4 Utiliza a função DatePart para apresentar as encomendas do quarto trimestre civil.
DataDaEncomenda DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 Utiliza as funções DataSerial, Ano e Mês para apresentar as encomendas do último dia de cada mês.
DataDaEncomenda Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) Utiliza as funções Ano e Mês e o operador E para apresentar as encomendas do mês e ano atuais.
DataDeEnvio Between #1/5/2017# And #1/10/2017# Utiliza o Between...Andoperador para apresentar encomendas enviadas não antes de 5-Jan-2017 nem depois de 10-Jan-2017.
DataDeEntrega Between Date( ) And DateAdd("M", 3, Date( )) Utiliza o operador para apresentar as Between...And encomendas necessárias entre a data atual e três meses a partir da data de hoje.
DataDeNascimento Month([BirthDate])=Month(Date()) Utiliza as funções Mês e Data para apresentar os colaboradores cujo aniversário é neste mês.

Voltar ao início

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 Is Null Apresenta as encomendas de clientes cujo campo RegiãoDeEnvio é nulo (está em falta).
RegiãoDeEnvio Is Not Null 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).

Voltar ao início

Corresponder padrões de registo com Como

O Like operador fornece uma grande flexibilidade quando está a tentar fazer corresponder linhas que seguem um padrão, porque pode utilizar Like com carateres universais e definir padrões para o Access corresponder. 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 localizar todos os nomes que começam com a letra S. Para obter mais informações, consulte o artigo Como operador.

Campo Expressão Descrição
NomeDeEnvio Like "S*" Localiza todos os registos no campo NomeDeEnvio que começam com a letra "S".
NomeDeEnvio Like "*Imports" Localiza todos os registos no campo NomeDeEnvio que terminam com a palavra "Importações".
NomeDeEnvio Like "[A-D]*" Localiza todos os registos no campo NomeDeEnvio que começam com as letras "A", "B", "C" ou "D".
NomeDeEnvio Like "*ar*" Localiza todos os registos no campo NomeDeEnvio que incluem a sequência de letras "ar".
NomeDeEnvio Like "Maison Dewe?" 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 Not Like "A*" Localiza todos os registos no campo NomeDeEnvio que não começam com a letra "A".

Voltar ao início

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 > (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) 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 > DAvg("[Quantity]", "[Order Details]") Utiliza a função DMédia para apresentar produtos encomendados em quantidades superiores à quantidade de encomenda média.

Voltar ao início

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 [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") Produtos cujo preço é igual ao do Licor de Anis.
PreçoUnitário >(SELECT AVG([UnitPrice]) FROM [Products]) Produtos que têm um preço unitário acima da média.
Salário > ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) 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([UnitPrice] * [Quantity]) FROM [Order Details]) Encomendas com totais superiores ao valor de encomenda médio.

Voltar ao início

Atualizar consultas

Utilize uma consulta atualização para modificar os dados num 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. Utilize estas expressões na Update To linha 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 "Salesperson" Altera um valor de texto para Vendedor.
InícioDoProjeto #8/10/17# Altera um valor de data para 10-ago-17.
Descontinuado Yes Altera um valor Não num campo Sim/Não para Sim.
NúmeroDePeça "PN" & [PartNumber] Adiciona NP ao início de cada número de peça especificado.
TotalDoItem [UnitPrice] * [Quantity] Calcula o produto do PreçoUnitário pela Quantidade.
Transporte [Freight] * 1.5 Aumenta os encargos de transporte em 50%.
Vendas DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) 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 Right([ShipPostalCode], 5) Trunca os carateres mais à esquerda, deixando ficar os cinco carateres mais à direita.
PreçoUnitário Nz([UnitPrice]) Altera um valor nulo (desconhecido ou indefinido) para zero (0) no campo PreçoUnitário.

Voltar ao início

Instruções SQL

linguagem SQL (Structured Query Language) (SQL) é 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, selecione Vista SQL no menu Ver . A tabela seguinte mostra exemplos de instruções SQL que utilizam uma expressão.

Instrução SQL que utiliza uma expressão Resultado
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; Apresenta os valores nos campos NomePróprio e Apelido dos colaboradores cujo apelido é Sousa.
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; 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 Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>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 [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; Apresenta o número total de produtos para as categorias com mais de 10 produtos num campo denominado ContagemDoIDDoProduto.

Voltar ao início

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. Em seguida, o Access fornece esse valor quando é criado um novo registo que contém o campo ou quando é criado um objeto que contém o controlo. As expressões apresentadas na seguinte tabela apresentam 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 "MT" Braga
Região "New York, N.Y." 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 Date( ) A data de hoje
DataDeConclusão Date() + 60 A data correspondente a 60 dias a partir de hoje

Voltar ao início

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, modifique a ValidationRule propriedade do campo ou controlo. Também deve considerar definir a ValidationText propriedade, que contém o texto que o Access apresenta quando a regra de validação é violada. Se não definir a propriedade, o ValidationText Access apresenta uma mensagem de erro predefinida.

Os exemplos apresentados na seguinte tabela mostram expressões de regras de validação para a ValidationRule propriedade e o texto associado para a ValidationText propriedade.

Propriedade RegraDeValidação Propriedade TextoDeValidação
<> 0 Introduza um valor diferente de 0.
0 Or > 100 O valor tem de ser igual a 0 ou superior a 100.
Like "K???" O valor tem de ter quatro carateres e começar com a letra "K".
< #1/1/2017# Introduza uma data anterior a 01/01/2017.
>= #1/1/2017# And < #1/1/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.

Voltar ao início

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 num bloco Se:

[Counter]=10

Tal como acontece com a ValidationRule propriedade, a expressão num bloco Se é uma expressão condicional. Deve resolver para um ou TrueFalse. A ação apenas decorre quando a condição for verdadeira.

Utilizar esta expressão para executar a ação Se
[City]="Paris" Faro é o valor da Localidade no campo do formulário a partir do qual foi executada a macro.
DCount("[OrderID]", "Orders") > 35 Existem mais de 35 entradas no campo IDDaEncomenda da tabela Encomendas.
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 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.
[ShippedDate] Between #2-Feb-2017# And #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.
Forms![Products]![UnitsInStock] < 5 O valor do campo UnidadesEmStock do formulário Produtos é inferior a 5.
IsNull([FirstName]) 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.
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 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.
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>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.
MsgBox("Confirm changes?",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.

Voltar ao início

Consulte também