Este artigo fornece muitos exemplos de expressões no Access. Uma expressão é uma combinação de operadores matemáticos ou lógicos, constantes, funções, campos da tabela, controles e propriedades que resulta em um único valor. Pode utilizar expressões no Access para calcular valores, validar dados e definir um valor predefinido.
Neste artigo
Formulários e relatórios
As tabelas nesta seção fornecem exemplos de expressões que calculam um valor em um controle localizado em um formulário ou relatório. Para criar um controle calculado, você insere uma expressão na propriedade ControlSource do controle, em vez de um campo da tabela ou consulta.
Observação Você também pode usar expressões em um formulário ou relatório ao Realçar dados com formatação condicional.
Operações de texto
As expressões na seguinte tabela usam os operadores & (e comercial) e + (mais) para combinar as cadeias de texto, funções internas para manipular uma cadeia de texto ou operar no texto para criar um controle calculado.
Expressão |
Resultado |
---|---|
="N/A" |
Exibe N/D. |
=[FirstName] & " " & [LastName] |
Exibe os valores que residem nos campos da tabela denominados Nome e Sobrenome. Neste exemplo, o operador & é usado para combinar o campo Nome, um caractere de espaço (entre aspas) e o campo Sobrenome. |
=Left([ProductName], 1) |
Usa a função Esquerda para exibir o primeiro caractere do valor de um campo ou controle denominado NomeProduto. |
=Right([AssetCode], 2) |
Usa a função Direita para exibir os dois últimos caracteres do valor em um campo ou controle denominado CódigoAtivo. |
=Trim([Address]) |
Usa a função Cortar para exibir o valor do controle Endereço, removendo espaços à direita ou à esquerda. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Usa a função SeImed para exibir os valores dos controles Cidade e CEP se o valor no controle Região é nulo; caso contrário, exibe os valores dos controles Cidade, Região e CEP, separados por espaços. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
Usa o operador + e a propagação nula para exibir os valores dos controles Cidade e CEP se o valor no campo Região ou controle for nulo; caso contrário, exibe os valores dos campos ou controles Cidade, Região e CEP, separados por espaços. Propagação nula significa que se qualquer componente de uma expressão for nulo, a expressão inteira também será nula. O operador + dá suporte a propagação nula; o operador & não. |
Cabeçalhos e rodapés
Você usa as propriedades Page e Pages para exibir ou imprimir os números da página em formulários ou relatórios. As propriedades Page e Pages estão disponíveis somente durante a impressão ou visualização da impressão, para que elas não apareçam na folha de propriedades do formulário ou do relatório. Normalmente, você usa essas propriedades colocando uma caixa de texto na seção do cabeçalho ou rodapé do formulário ou relatório, em seguida, usando uma expressão, como as mostradas na tabela a seguir.
Para obter mais informações sobre como usar os cabeçalhos e rodapés nos formulários e relatórios, confira o artigo Inserir números de página em um 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/17 |
Operações aritméticas
Você pode usar expressões para adicionar, subtrair, multiplicar e dividir os valores em dois ou mais campos ou controles. Também pode usar expressões para realizar operações aritméticas em datas. Por exemplo, suponha que você tenha um campo da tabela Data/Hora denominado DataRequerida. No campo, ou em um controle associado ao campo, a expressão =[RequiredDate] - 2 retorna um valor de data/hora igual a dois dias antes dos valores atuais no campo DataRequerida.
Expressão |
Resultado |
---|---|
=[Subtotal]+[Freight] |
A soma dos valores dos campos ou controles Subtotal e Frete. |
=[RequiredDate]-[ShippedDate] |
O intervalo entre os valores de data dos campos ou controles DataRequerida e DataEnvio. |
=[Price]*1.06 |
O produto do valor do campo ou controle Preço e 1.06 (adiciona 6% ao valor Preço). |
=[Quantity]*[Price] |
O produto dos valores dos campos ou controles Quantidade e Preço. |
=[EmployeeTotal]/[CountryRegionTotal] |
O quociente dos valores dos campos ou controles TotalFuncionário e TotalRegiãoPaís. |
Observação Quando você usar um operador aritmético (+, -, * e /) em uma expressão e o valor de um dos controles na expressão for nulo, o resultado da expressão inteira será nulo, isso é conhecido como propagação Nula. Se algum registro em um dos controles usados na expressão tiver um valor nulo, será possível evitar a propagação Nula convertendo o valor nulo em zero usando a função Nz por exemplo, =Nz([Subtotal])+Nz([Freight]).
Valores em outros controles:
Às vezes, você precisa de um valor que existe em outro lugar, como em um campo ou controle em outro formulário ou relatório. Você pode usar uma expressão para retornar o valor de outro campo ou controle.
A tabela a seguir lista exemplos de expressões que você pode usar nos controles calculados em formulários.
Expressão |
Resultado |
---|---|
=Forms![Orders]![OrderID] |
O valor do controle IDPedido no formulário Pedidos. |
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] |
O valor do controle SubtotalPedido no subformulário denominado Subformulário Pedidos no formulário Pedidos. |
=Forms![Orders]![Orders Subform]![ProductID].Column(2) |
O valor da terceira coluna em IDProduto, uma caixa de listagem de várias colunas no subformulário denominado Subformulário Pedidos no formulário Pedidos. (Observe que 0 se refere à primeira coluna, 1 se refere à segunda coluna e assim por diante). |
=Forms![Orders]![Orders Subform]![Price] * 1.06 |
O produto do valor do controle Preço no subformulário denominado Subformulário Pedidos no formulário Pedidos e 1.06 (adiciona 6% ao valor do controle Preço). |
=Parent![OrderID] |
O valor do controle IDPedido no formulário principal ou pai do subformulário atual. |
As expressões na tabela a seguir mostram algumas maneiras de usar os controles calculados em relatórios. As expressões se referem à Propriedade Report.
Expressão |
Resultado |
---|---|
=Report![Invoice]![OrderID] |
O valor de um controle denominado "IDPedido" em um relatório denominado "Fatura". |
=Report![Summary]![Summary Subreport]![SalesTotal] |
O valor do controle TotalVendas no sub-relatório denominado Sub-relatório Resumo no relatório Resumo. |
=Parent![OrderID] |
O valor do controle IDPedido no formulário principal ou pai do sub-relatório atual. |
Valores de contagem, soma e média
Você pode usar um tipo de função denominado função de agregação para calcular os valores para um ou mais campos ou controles. Por exemplo, você pode calcular um total de grupo para o rodapé de grupo em um relatório ou um subtotal do pedido para os itens individuais em um 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 na tabela a seguir mostram algumas maneiras de usar as funções, como Média, Contagem e Soma.
Expressão |
Descrição |
---|---|
=Avg([Freight]) |
Usa a função Média para exibir a média dos valores de um campo ou controle da tabela denominado "Frete". |
=Count([OrderID]) |
Usa a função Contagem para exibir o número de registros no controle IDPedido. |
=Sum([Sales]) |
Usa a função Soma para exibir a soma dos valores do controle Vendas. |
=Sum([Quantity]*[Price]) |
Usa a função Soma para exibir a soma do produto dos valores dos controles Quantidade e Preço. |
=[Sales]/Sum([Sales])*100 |
Exibe a porcentagem das vendas, determinada pela divisão do valor do controle Vendas pela soma de todos os valores do controle Vendas. Se você definir a propriedade Format do controle como Percent, não inclua *100 na expressão. |
Para obter mais informações sobre como usar funções de agregação e totalizar os valores no campo e colunas, confira os artigos Somar dados usando uma consulta, Contar dados usando uma consulta, Exibir os totais das colunas em uma folha de dados usando uma linha Totais e Exibir os totais de colunas em uma folha de dados.
Funções agregadas do SQL
Você usa um tipo de função denominada SQL ou função de agregação de domínio quando precisa somar ou contar os valores seletivamente. Um "domínio" consiste em um ou mais campos em uma ou mais tabelas, ou um ou mais controles em um ou mais formulários ou relatórios. Por exemplo, você pode associar os valores em um campo da tabela aos valores em um controle em um formulário.
Expressão |
Descrição |
---|---|
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) |
Usa a função DPesquisa para retornar o valor do campo NomeContato na tabela Fornecedores onde o valor do campo IDFornecedor na tabela corresponde ao valor do controle IDFornecedor no formulário Fornecedores. |
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) |
Usa a função DPesquisa para retornar o valor do campo NomeContato na tabela Fornecedores onde o valor do campo IDFornecedor na tabela corresponde ao valor do controle IDFornecedor no formulário Novos Fornecedores. |
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") |
Usa a função BDSoma para retornar a soma total dos valores no campo QuantidadePedido na tabela Pedidos onde IDCliente é RATTC. |
=DCount("[Retired]","[Assets]","[Retired]=Yes") |
Usa a função BDContar para retornar o número de valores Sim no campo Desativado (um campo Sim/Não) na tabela Ativos. |
Operações de data
Controlar as datas e horas é uma atividade fundamental do banco de dados. Por exemplo, você pode calcular quantos dias se passaram desde a data da fatura para determinar o vencimento de suas contas a receber. Você pode formatar as datas e horas de várias maneiras, conforme mostrado na tabela a seguir.
Expressão |
Descrição |
---|---|
=Date() |
Usa a função Data para exibir a data atual no formato mm-dd-yy, em que mm é o mês (1 a 12), dd é o dia (1 a 31) e yy são os dois últimos dígitos do ano (de 1980 a 2099). |
=Format(Now(), "ww") |
Usa a função Formatar para exibir o número da semana do ano para a data atual, em que ww representa as semanas, de 1 a 53. |
=DatePart("yyyy", [OrderDate]) |
Usa a função PartData para exibir o ano de quatro dígitos do valor do controle DataPedido. |
=DateAdd("y", -10, [PromisedDate]) |
Usa a função SomData para exibir uma data que é 10 dias anterior ao valor do controle DataPrometida. |
=DateDiff("d", [OrderDate], [ShippedDate]) |
Usa a função DifData para exibir o número da diferença dos dias entre os valores dos controles DataPedido e DataEnvio. |
=[InvoiceDate] + 30 |
Usa operações aritméticas nas datas para calcular a data 30 dias após a data no campo ou controle DataFatura. |
Condições de apenas dois valores
As expressões de exemplo na tabela a seguir usam a função SeImed para retornar um de dois valores possíveis. Você passa à função SeImed três argumentos: O primeiro argumento é uma expressão que deve retornar um valor TrueouFalse. O segundo argumento será o valor a retornar se a expressão for verdadeira e o terceiro argumento será o valor a retornar se a expressão for falsa.
Expressão |
Descrição |
---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
Usa a função SeImed (Se Imediato) para exibir a mensagem "Pedido Confirmado" se o valor do controle Confirmado for Yes. Caso contrário, a mensagem "Order Not Confirmed." será exibida |
=IIf(IsNull([Country/region]), " ", [Country]) |
Usa as funções SeImed e ÉNulo para exibir uma cadeia de caracteres vazia se o valor do controle País/região for nulo; caso contrário, exibe o valor do controle País/região. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Use as funções SeImed e ÉNulo para exibir os valores dos controles Cidade e CEP se o valor no controle Região é nulo; caso contrário, exibe os valores dos campos ou controles Cidade, Região e CEP. |
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Usa as funções SeImed e ÉNulo para exibir a mensagem "Verificar ausência de data" se o resultado de subtrair DataEnvio de DataRequerida é nulo; caso contrário, exibe o intervalo entre os valores de data dos controles DataRequerida e DataEnvio. |
Consultas e filtros
Esta seção contém exemplos de expressões que você pode usar para criar um campo calculado em uma consulta ou fornecer critérios para uma consulta. Um campo calculado é uma coluna em uma consulta que resulta de uma expressão. Por exemplo, você pode calcular um valor, combinar os valores de texto, como nome e sobrenome, ou formatar uma parte de uma data.
Você usa critérios em uma consulta para limitar os registros com os quais trabalha. Por exemplo, você pode usar o operador Between para fornecer uma data de início e fim, e limitar os resultados de sua consulta aos pedidos que foram enviados entre essas datas.
Os elementos a seguir fornecem exemplos de expressões para usar nas consultas.
Operações de texto
As expressões na seguinte tabela usam os operadores & e + para combinar as cadeias de texto, usam as funções internas para operar em uma cadeia de texto ou operam no texto para criar um campo calculado.
Expressão |
Descrição |
---|---|
FullName: [FirstName] & " " & [LastName] |
Cria um campo denominado NomeCompleto que exibe os valores nos campos Nome e Sobrenome, separados por um espaço. |
Address2: [City] & " " & [Region] & " " & [PostalCode] |
Cria um campo denominado Endereço2 que exibe os valores nos campos Cidade, Região e CEP, separados por espaços. |
ProductInitial: Left([ProductName], 1) |
Cria um campo denominado ProdutoInicial, em seguida, usa a função Esquerdo para exibir, no campo ProdutoInicial, o primeiro caractere do valor no campo NomeProduto. |
TypeCode: Right([AssetCode], 2) |
Cria um campo denominado CódigoTipo, em seguida, usa a função Direito para exibir os dois últimos caracteres dos valores no campo CódigoAtivo. |
AreaCode: Mid([Phone],2,3) |
Cria um campo denominado CódigoÁrea, em seguida, usa a função Mid função para exibir três caracteres, começando com o segundo caractere do valor no campo Telefone. |
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 |
Nomeia o campo calculado PreçoEstendido e usa a função CCur para calcular os totais de itens da linha com um desconto aplicado. |
Operações aritméticas
Você pode usar expressões para adicionar, subtrair, multiplicar e dividir os valores em dois ou mais campos ou controles. Também pode realizar operações aritméticas em datas. Por exemplo, suponha que você tenha um campo Data/Hora denominado DataRequerida. A expressão =[RequiredDate] - 2 retorna um valor Data/Hora igual a dois dias antes do valor no campo DataRequerida.
Expressão |
Descrição |
---|---|
PrimeFreight: [Freight] * 1.1 |
Cria um campo denominado FretePrincipal e exibe os encargos do frete mais 10% no campo. |
OrderAmount: [Quantity] * [UnitPrice] |
Cria um campo denominado QuantidadePedido e exibe o produto dos valores nos campos Quantidade e PreçoUnitário. |
LeadTime: [RequiredDate] - [ShippedDate] |
Cria um campo denominado TempoProcesso e exibe a diferença entre os valores nos campos DataRequerida e DataEnvio. |
TotalStock: [UnitsInStock]+[UnitsOnOrder] |
Cria um campo denominado EstoqueTotal e exibe a soma dos valores nos campos UnidadesEmEstoque e UnidadesNoPedido. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Cria um campo denominado PorcentagemFrete e exibe a porcentagem dos encargos do frete em cada subtotal. Essa expressão usa a função Soma para totalizar os valores no campo Frete e divide esses totais pela soma dos valores no campo Subtotal. Para usar essa expressão, você deve converter sua consulta de seleção em uma consulta de Totais porque precisa usar a linha Total na grade de design e deve definir a célula Total desse campo para Expressão. Para saber mais sobre como criar uma consulta de Totais, confira o artigo Somar dados usando uma consulta. Se você definir a propriedade Format do campo como Percent, não inclua *100. |
Para obter mais informações sobre como usar funções de agregação e totalizar os valores no campo e colunas, confira os artigos Somar dados usando uma consulta, Contar dados usando uma consulta, Exibir os totais das colunas em uma folha de dados usando uma linha Totais e Exibir os totais de colunas em uma folha de dados.
Operações de data
Quase todos os bancos de dados armazenam e controlam as datas e horas. Você trabalha com datas e horas no Access definindo os campos de data e hora em suas tabelas para o tipo de dados Data/Hora. O Access pode executar cálculos aritméticos nas datas. Por exemplo, você pode calcular quantos dias se passaram desde a data da fatura para determinar o vencimento de suas contas a receber.
Expressão |
Descrição |
---|---|
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) |
Cria um campo denominado TempoAtraso, em seguida, usa a função DifData para exibir o número de dias entre a data do pedido e a data de envio. |
YearHired: DatePart("yyyy",[HireDate]) |
Cria um campo denominado AnoContratação e usa a função PartData para exibir o ano em que cada funcionário foi contratado. |
MinusThirty: Date( )- 30 |
Cria um campo denominado MenosTrinta, em seguida, usa a função Data para exibir a data 30 dias antes da data atual. |
Funções agregadas do SQL
As expressões na tabela a seguir usam as funções do SQL (Structured Query Language) que agregam ou resumem os dados. Geralmente, você vê essas funções (por exemplo, Soma, Contar e Média) referidas como funções de agregação.
Além das funções de agregação, o Access também fornece funções de agregação do "domínio" que você usa para somar ou contar os valores seletivamente. Por exemplo, você pode contar apenas os valores em um determinado intervalo ou procurar um valor em outra tabela. O conjunto de funções de agregação do domínio inclui a função BDSoma, BDContar e a Função BDMédia.
Para calcular os totais, muitas vezes você precisa criar uma consulta de totais. Por exemplo, para resumir por grupo, você precisa usar uma consulta de Totais. Para habilitar uma consulta de Totais na grade de design da consulta, clique em Totais no menu Exibir.
Expressão |
Descrição |
---|---|
RowCount: Count(*) |
Cria um campo denominado ContarLinhas, em seguida, usa a função Contar para contar o número de registros na consulta, incluindo os registros com campos nulos (em branco). |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Cria um campo denominado PorcentagemFrete e calcula a porcentagem dos encargos do frete em cada subtotal dividindo a soma dos valores do campo Frete pela soma dos valores no campo Subtotal. (Este exemplo usa a função Soma.) Você deve usar essa expressão com uma consulta de Totais. Se você definir a propriedade Format do campo como Percent, não inclua *100. Para saber mais sobre como criar uma consulta de Totais, confira o artigo Somar dados usando uma consulta. |
AverageFreight: DAvg("[Freight]", "[Orders]") |
Cria um campo denominado FreteMédio, em seguida, usa a função BDMédia para calcular o frete médio em todos os pedidos combinados em uma consulta de Totais. |
Campos com dados ausentes
As expressões mostradas aqui trabalham com os campos potencialmente sem informações, como os que contêm valores nulos (desconhecidos ou indefinidos). Você encontrará com frequência valores nulos, como um preço desconhecido para um novo produto ou um valor que um colega esqueceu de adicionar a um pedido. A capacidade de localizar e processar os valores nulos pode ser uma parte essencial das operações do banco de dados, e as expressões na tabela a seguir demonstram algumas maneiras comuns de lidar com os valores nulos.
Expressão |
Descrição |
---|---|
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) |
Cria um campo denominado RegiãoPaísAtual, em seguida, usa as funções SeImed e ÉNulo para exibir uma cadeia de caracteres vazia no campo quando o campo RegiãoPaís contém um valor nulo; caso contrário, exibe o conteúdo do campo RegiãoPaís. |
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Cria um campo denominado PrazoEntrega, em seguida, usa as funções SeImed e ÉNulo para exibir a mensagem "Verificar ausência de data" se o valor no campo DataRequerida ou DataEnvio é nulo; caso contrário, exibe a diferença de data. |
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) |
Cria um campo denominado VendasSeisMeses e exibe o total dos valores nos campos Vendas1Tri e Vendas2Tri primeiro usando a função Nz para converter os valores nulos em zero. |
Campos calculados com subconsultas
Você pode usar uma consulta aninhada, também chamada de subconsulta, para criar um campo calculado. A expressão na tabela a seguir é um exemplo de 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 Gato e exibe o NomeCategoria, se a IDCategoria na tabela Categorias é igual à IDCategoria na tabela Produtos. |
Corresponder os valores de texto
As expressões de exemplo nesta tabela demonstram critérios correspondentes aos valores de texto total ou parcial.
Campo |
Expressão |
Descrição |
---|---|---|
CidadeEnvio |
"London" |
Exibe os pedidos enviados para Londres. |
CidadeEnvio |
"London" Or "Hedge End" |
Usa o operador Or para exibir os pedidos enviados para Londres ou Hedge End. |
RegiãoPaísEnvio |
In("Canada", "UK") |
Usa o operador In para exibir os pedidos enviados para o Canadá ou Reino Unido. |
RegiãoPaísEnvio |
Not "USA" |
Usa o operador Not para exibir os pedidos enviados para países/regiões diferentes dos EUA. |
ProductName |
Not Like "C*" |
Usa o operador Not e o caractere curinga * para exibir produtos cujos nomes não começam com C. |
NomeEmpresa |
>="N" |
Exibe os pedidos enviados para empresas cujos nomes começam com as letras de N a Z. |
CódigoProduto |
Right([ProductCode], 2)="99" |
Usa a função Direito para exibir pedidos com valores do CódigoProduto que terminam em 99. |
NomeEnvio |
Like "S*" |
Exibe os pedidos enviados para os clientes cujos nomes começam com a letra S. |
Corresponder critérios de data
As expressões na tabela a seguir demonstram o uso de datas e funções relacionadas nas expressões de critérios. Para saber mais sobre como inserir e usar valores de data, confira o artigo Formatar um campo de data ou hora.
Campo |
Expressão |
Descrição |
---|---|---|
DataEnviada |
#2/2/2017# |
Exibe os pedidos enviados em 2 de fevereiro de 2017. |
DataEnviada |
Date() |
Exibe os pedidos enviados hoje. |
DataRequerida |
Between Date( ) And DateAdd("m", 3, Date( )) |
Usa o operador Between...And e as funções SomData e Data para exibir os pedidos requeridos entre a data de hoje e três meses a partir da data de hoje. |
OrderDate |
< Date( ) - 30 |
Usa a função Data para exibir os pedidos com mais de 30 dias. |
OrderDate |
Year([OrderDate])=2017 |
Usa a função Ano para exibir os pedidos com datas de pedido em 2017. |
OrderDate |
DatePart("q", [OrderDate])=4 |
Usa a função PartData para exibir os pedidos do quarto trimestre no calendário. |
OrderDate |
DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 |
Usa as funções DataSerial, Ano e Mês para exibir os pedidos para o último dia de cada mês. |
OrderDate |
Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) |
Usa as funções Ano e Mês e o operador And para exibir os pedidos do ano e mês atuais. |
DataEnviada |
Between #1/5/2017# And #1/10/2017# |
Usa o operador Between...And para exibir os pedidos enviados não antes de 5-Jan-2017 e não depois de 10-Jan-2017. |
DataRequerida |
Between Date( ) And DateAdd("M", 3, Date( )) |
Usa o operador Between...And para exibir os pedidos requeridos entre a data de hoje e três meses a partir da data de hoje. |
DataNascimento |
Month([BirthDate])=Month(Date()) |
Usa as funções Mês e Data para exibir os funcionários com datas de aniversário neste mês. |
Localizar dados ausentes
As expressões na tabela a seguir funcionam nos campos potencialmente com informações ausentes — aqueles que podem 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 um valor. O Access suporta a ideia de informações ausentes porque o conceito é essencial para a integridade de um banco de dados. No mundo real, faltam informações muitas vezes, mesmo que apenas temporariamente (por exemplo, o preço ainda indeterminado para um novo produto). Portanto, um banco de dados que modela uma entidade do mundo real, como um negócio, deve ser capaz de registrar as informações como ausentes. Você pode usar a função ÉNulo para determinar se um campo ou controle contém um valor nulo e você pode usar a função Nz para converter um valor nulo em zero.
Campo |
Expressão |
Descrição |
---|---|---|
ShipRegion |
Is Null |
Exibe os pedidos de clientes cujo campo ShipRegion é nulo (ausente). |
ShipRegion |
Is Not Null |
Exibe os pedidos de clientes cujo campo ShipRegion contém um valor. |
Fax |
"" |
Exibe os pedidos de clientes que não têm um aparelho de fax, indicado por um valor de cadeia com comprimento zero no campo Fax, em vez de um valor nulo (ausente). |
Corresponder padrões registros com Como
O operador Like fornece muita flexibilidade quando você está tentando combinar as linhas que seguem um padrão, porque você pode usar Like com caracteres curinga e definir padrões para o Access corresponder. Por exemplo, o caractere curinga * (asterisco) corresponde a uma cadeia de caracteres de qualquer tipo e facilita localizar todos os nomes que começam com uma letra. Por exemplo, você pode usar a expressão Like "S*" para localizar todos os nomes que começam com a letra S. Para saber mais, confira o artigo Como Operador.
Campo |
Expressão |
Descrição |
---|---|---|
NomeEnvio |
Like "S*" |
Localiza todos os registros no campo NomeEnvio que começam com a letra S. |
NomeEnvio |
Like "*Imports" |
Localiza todos os registros no campo NomeEnvio que começam com a palavra "Importa". |
NomeEnvio |
Like "[A-D]*" |
Localiza todos os registros no campo NomeEnvio que começam com as letras A, B, C ou D. |
NomeEnvio |
Like "*ar*" |
Localiza todos os registros no campo NomeEnvio que começam com a sequência de letras "ar". |
NomeEnvio |
Como "Maison Dewe?" |
Localiza todos os registros no campo NomeEnvio que incluem "Maison" na primeira parte do valor e uma cadeia de cinco letras, na qual as primeiras quatro letras são "Dewe" e a última letra é desconhecida. |
NomeEnvio |
Not Like "A*" |
Localiza todos os registros no campo NomeEnvio que não começam com a letra A. |
Corresponder linhas com agregações de SQL
Você usa uma função SQL ou de agregação de domínio quando precisa somar, contar ou calcular a média dos valores seletivamente. Por exemplo, talvez você queira contar somente os valores que ficam dentro de um determinado intervalo ou que são avaliados como Sim. Em outros momentos, talvez precise consultar um valor de outra tabela para que possa exibi-lo. As expressões de exemplo na tabela a seguir usam as funções de agregação de domínio para realizar um cálculo em um conjunto de valores e usam o resultado como critérios de consulta.
Campo |
Expressão |
Descrição |
---|---|---|
Carga |
> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) |
Usa as funções BDest e BDMédia para exibir todos os pedidos para os quais o custo do frete ficou acima da média mais o desvio padrão do custo do frete. |
Quantidade |
> DAvg("[Quantity]", "[Order Details]") |
Usa a função BDMédia para exibir os produtos pedidos em quantidades acima da quantidade média dos pedidos. |
Corresponder campos com subconsultas
Você usa uma subconsulta, também denominada de consulta aninhada, para calcular um valor para usar como um critério. As expressões de exemplo na tabela a seguir correspondem as linhas com base nos resultados retornados por uma subconsulta.
Campo |
Expressão |
Exibe |
---|---|---|
Preçounitário |
(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") |
Produtos cujo preço é igual ao preço do Xarope de Semente 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*")) |
O salário de cada representante de vendas cujo salário é maior que todos os funcionários com "Gerente" ou "Vice-Presidente" em seus títulos. |
OrderTotal: [PreçoUnitário] * [Quantidade] |
> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) |
Pedidos com totais mais altos que o valor médio dos pedidos. |
Atualizar consultas
Você usa uma consulta de atualização para modificar os dados em um ou mais campos existentes em um banco de dados. Por exemplo, você pode substituir os valores ou excluí-los completamente. Esta tabela mostra algumas maneiras de usar expressões nas consultas de atualização. Você usa essas expressões na linha Atualizar Para na grade de design da consulta para o campo que deseja atualizar.
Para saber mais sobre como criar consultas de atualização, confira 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ícioProjeto |
#8/10/17# |
Altera um valor de data para 10-ago-17. |
Desativado |
Yes |
Altera um valor Não em um campo Sim/Não para Sim. |
NúmeroPeça |
"PN" & [PartNumber] |
Adiciona "NP" ao início de cada número de peça especificado. |
TotalItemLinha |
[UnitPrice] * [Quantity] |
Calcula o produto do PreçoUnitário e da Quantidade. |
Frete |
[Freight] * 1.5 |
Aumenta os encargos do frete em 50%. |
Vendas |
DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) |
Onde os valores IDProduto na tabela atual coincidem com os valores IDProduto na tabela Detalhes do Pedido, atualiza os totais de vendas baseados no produto da Quantidade e do PreçoUnitário. |
CEPEnvio |
Right([ShipPostalCode], 5) |
Corta os caracteres mais à esquerda, deixando os cinco caracteres mais à direita. |
Preçounitário |
Nz([UnitPrice]) |
Altera um valor nulo (desconhecido ou indefinido) para zero (0) no campo PreçoUnitário. |
Instruções SQL
A Structured Query Language, ou SQL, é a linguagem de consulta que o Access utiliza. Toda consulta criada no modo Design da consulta também podem ser expressa usando SQL. Para ver a instrução SQL para qualquer consulta, clique em Modo SQL no menu Exibir. A tabela a seguir mostra as instruções SQL de exemplo que utilizam uma expressão.
Instrução SQL que usa uma expressão |
Resultado |
---|---|
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; |
Exibe os valores nos campos Nome e Sobrenome para funcionários cujo sobrenome é Danseglio. |
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; |
Exibe os valores nos campos IDProduto e NomeProduto na tabela Produtos para os registros nos quais o valor IDCategoria corresponde ao valor IDCategoria especificado em um formulário de Novos Produtos aberto. |
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; |
Calcula a média do preço estendido dos pedidos para os quais o valor no campo PreçoEstendido é maior que 1.000 e exibe-o em um campo denominado Detalhes do Pedido Estendido. |
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; |
Em um campo denominado ContarIDProduto, exibe o número total de produtos para as categorias com mais de 10 produtos. |
Expressões de tabela
Duas maneiras mais comuns de usar expressões nas tabelas são atribuir um valor padrão e criar uma regra de validação.
Valores padrão de campo
Ao criar um banco de dados, você pode querer atribuir um valor padrão a um campo ou controle. Então, o Access fornece o valor padrão quando um novo registro que contém o campo é criado ou quando um objeto que contém o controle é criado. As expressões na tabela a seguir representam os valores padrão de exemplo para um campo ou controle. Se um controle for associado a um campo em uma tabela e o campo tiver um valor padrão, o valor padrão do controle terá precedência.
Campo |
Expressão |
Valor de campo padrão |
---|---|---|
Quantidade |
1 |
1 |
Região |
"MT" |
MT |
Região |
"New York, N.Y." |
Nova York, N.Y. (Observe que você deve colocar o valor entre aspas se ele incluir pontuação.) |
Fax |
"" |
Uma cadeia de comprimento zero para indicar que, por padrão, esse campo deve ficar vazio, em vez de conter um valor nulo |
Data do Pedido |
Date( ) |
Data de hoje |
DataVencimento |
Date() + 60 |
A data de 60 dias a partir de hoje |
Regras de validação de campo
Você pode criar uma regra de validação para um campo ou controle usando uma expressão. Então, o Access aplica a regra quando os dados são inseridos no campo ou no controle. Para criar uma regra de validação, você modifica a propriedade ValidationRule do campo ou controle. Você também deve considerar configurar a propriedade ValidationText, que contém o texto que o Access exibe quando a regra de validação é violada. Se você não definir a propriedade ValidationText, o Access exibirá uma mensagem de erro padrão.
Os exemplos na tabela a seguir demonstram as expressões da regra de validação para a propriedade ValidationRule e o texto associado à propriedade ValidationText.
Propriedade ValidationRule |
Propriedade ValidationText |
---|---|
<> 0 |
Insira um valor diferente de zero. |
0 Or > 100 |
O valor deve ser 0 ou maior que 100. |
Like "K???" |
O valor deve ter quatro caracteres, começando com a letra K. |
< #1/1/2017# |
Insira uma data anterior a 01/01/2017. |
>= #1/1/2017# And < #1/1/2008# |
A data deve se situar em 2017. |
Para obter mais informações sobre como validar os dados, confira o artigo Criar uma regra de validação para validar os dados em um campo.
Expressões de macro
Em alguns casos, convém executar uma ação ou uma série de ações em uma macro apenas se uma condição específica for verdadeira. Por exemplo, suponha que você deseja que uma ação seja executada apenas quando o valor da caixa de texto contador for 10. Você usa uma expressão para definir a condição em um bloco If:
[Counter]=10
Assim como acontece com a propriedade ValidationRule , a expressão em um bloco If é uma expressão condicional. Ela deve determinar como um valor True ou False. A ação ocorre somente quando a condição é verdadeira.
Use essa expressão para executar a ação |
If |
---|---|
[City]="Paris" |
Paris é o valor Cidade no campo do formulário a partir do qual a macro foi executada. |
DCount("[OrderID]", "Orders") > 35 |
Há mais de 35 entradas no campo IDPedido da tabela Pedidos. |
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 |
Há mais de três entradas na tabela Detalhes Pedido cujo campo IDPedido da tabela coincide com o campo IDPedido no formulário Pedidos. |
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# |
O valor do campo DataEnviada no formulário a partir do qual a macro é executada não é anterior a 2 de fevereiro de 2017 e não posterior a 2 de março de 2017. |
Forms![Products]![UnitsInStock] < 5 |
O valor do campo UnidadesEmEstoque no formulário Produtos é menor que 5. |
IsNull([FirstName]) |
O valor Nome no formulário a partir do qual a macro é executada é nulo (não tem valor). Essa expressão é equivalente a [Nome] É Nulo. |
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 |
O valor no campo RegiãoPaís no formulário a partir do qual a macro é executada é Reino Unido e o valor do campo PedTotais no formulário TotaisVendas é maior que 100. |
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 |
O valor no campo RegiãoPaís no formulário a partir do qual a macro é executada é França, Itália ou Espanha, e o CEP não tem 5 caracteres de comprimento. |
MsgBox("Confirm changes?",1)=1 |
Você clica em OK em uma caixa de diálogo que a função CaixaDeMensagem exibe. Se você clicar em Cancelar na caixa de diálogo, o Access irá ignorar a ação. |
Confira também
Usar o Construtor de Expressões