Restringir a introdução de dados através de uma regra de validação
Applies ToAccess para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Pode analisar ou validar os dados em bases de dados de ambiente de trabalho do Access conforme são introduzidos através das regras de validação. Pode utilizar o construtor de expressões para o ajudar a formatar a regra corretamente. As regras de validação podem ser definidas na vista de estrutura de tabela ou de folha de dados de tabela. Existem três tipos de regras de validação no Access:

1. Regra de Validação de Campo   Pode utilizar uma regra de validação de campo para especificar um critério que todos os valores de campo válidos têm de cumprir. Não deverá ter que especificar o campo atual como parte da regra, a menos que utilize o campo numa função.  As restrições dos tipos de carateres que podem ser introduzidos num campo poderão ser mais fáceis de aplicar com uma Máscara de Introdução. Por exemplo, um campo de data poderá ter uma regra de validação que não permita valores no passado.

Breves exemplos:

Não permitir valores de data no passado: >=Data()

Formato de e-mail geralmente aceite: É Nulo OU (Como "*?@?*.? *") E (Não Como "*[ ,;] *"))

Número menor ou qual a cinco: <=5

O campo Moeda não pode ser negativo: >=0

Restringir o comprimento do caráter na cadeia: Len([StringFieldName])<100

Regra de validação de campo apresentada no estruturador de tabelas do Access

2. Regra de Validação de Registos   Pode utilizar uma regra de validação de registos para especificar uma condição que todos os registos válidos têm de satisfazer. Pode comparar os valores nos diferentes campos com uma regra de validação de registo. Por exemplo, um registo com dois campos de data pode exigir que os valores de um dos campos sejam sempre anteriores aos valores do outro campo (por exemplo, DataDeInício é anterior à DataDeFim).

Breves exemplos:

Certifique-se de que a data de fim não chega antes da data de início: [Data de Fim]>=[Data de Início]

Introduza uma data necessária que não ocorra mais de 30 dias após a data da encomenda: [Data Obrigatório]<=[DataDaEncomenda]+30

Uma regra de validação de tabela no estruturador de tabelas do Access.

3. Validação num formulário   Pode utilizar a propriedade Regra de Validação de um controlo num formulário para especificar um critério que todos os valores introduzidos nesse controlo têm de cumprir. A propriedade de controlo Regra de Validação funciona como uma regra de validação de campo. Normalmente, utiliza uma regra de validação de formulário em vez de uma regra de validação de campo se a regra for específica apenas para esse formulário e não para a tabela, independentemente de onde for utilizada.

Neste artigo

Descrição geral

Este artigo explica como utilizar as regras de validação e o texto de validação nos campos de tabelas e nos controlos de formulários. Uma regra de validação é uma forma de restringir a introdução de dados num campo de tabela ou num controlo (por exemplo, uma caixa de texto) de formulário. O texto de validação permite deixar uma mensagem, de modo a ajudar os utilizadores que introduzam dados inválidos.

O Access verifica se os dados que são introduzidos violam uma regra de validação – se for esse o caso, a introdução não é aceite e o Access apresenta uma mensagem.

O Access fornece várias maneiras de restringir a introdução:

  • Tipos de dados   Todos os campos da tabela têm um tipo de dados que restringe os conteúdos que os utilizadores podem introduzir. Por exemplo, um campo Data/Hora apenas aceita datas e horas, um campo Moeda apenas aceita dados monetários e assim por diante.

  • Propriedades do campo   Algumas propriedades de campos restringem a introdução de dados. Por exemplo, a propriedade Tamanho do Campo restringe a introdução através da limitação da quantidade de dados que podem ser introduzidos.

    Também pode utilizar a propriedade Regra de Validação para impor valores específicos e a propriedade Texto de Validação para avisar os utilizadores sobre eventuais erros. Por exemplo, a introdução de um valor como >100 e <1000 na propriedade Regra de Validação força os utilizadores a introduzirem valores entre 100 e 1000. Uma regra como [DataDeFim]>=[DataDeInício] força os utilizadores a introduzirem uma data de fim que ocorre em ou após a data de início. A introdução de texto como, por exemplo, "Introduza valores entre 100 e 1000" ou "Introduza uma data de fim igual ou posterior à data de início" na propriedade Texto de Validação informa os utilizadores quando estes cometem um erro e indica como o podem corrigir.

  • Máscaras de introdução   Pode utilizar uma máscara de introdução para validar dados ao forçar os utilizadores a introduzir valores de uma forma específica. Por exemplo, uma máscara de introdução pode forçar os utilizadores a introduzir datas num formato europeu, como 2007.04.14.

Pode utilizar estes métodos de validação de dados individualmente ou combinados entre si. Os tipos de dados não são opcionais e fornecem o tipo de validação de dados mais básico.

Para obter mais informações sobre tipos de dados, tamanhos de campos e máscaras de introdução, consulte o artigo Introdução aos tipos de dados e propriedades de campo.

Tipos de regras de validação

Pode criar dois tipos básicos de regras de validação:

  • Regras de validação de campos   Utilize uma regra de validação de campo para verificar o valor que introduziu num campo ao sair do mesmo. Por exemplo, suponha que tem um campo Data e que introduz >=#01/01/2010# na propriedade Regra de Validação desse campo. Desta forma, a sua regra requer que os utilizadores introduzam datas iguais ou posteriores a 1 de janeiro de 2010. Se introduzir uma data anterior a 2010 e tentar colocar o foco noutro campo, o Access impede-o de sair do campo atual até corrigir o problema.

  • Regras de validação de registos   Utilize uma regra de validação de registo para controlar quando pode guardar um registo (uma linha numa tabela). Ao contrário das regras de validação de campos, uma regra de validação de registo refere-se a outros campos na mesma tabela. Pode criar regras de validação de registos quando precisar de comparar os valores num campo face a valores noutro campo. Por exemplo, suponha que a sua empresa requer o envio de produtos num prazo de 30 dias e, se não cumprir esse prazo, tem de reembolsar parte do preço de compra ao cliente. Pode definir uma regra de validação de registo como [DataExigida]<=[DataDeEncomenda]+30 para impedir que alguém introduza uma data de envio (o valor no campo DataExigida) que seja demasiado no futuro.

Se a sintaxe das regras de validação parecer críptica, consulte a secção O que pode incluir numa regra de validação para obter uma explicação sobre a sintaxe e alguns exemplos de regras de validação.

Onde pode utilizar as regras de validação

Pode definir regras de validação para campos de tabelas e para controlos em formulários. Quando definir regras para tabelas, essas regras são aplicadas quando importar dados. Para adicionar regras de validação a uma tabela, abra a tabela e utilize os comandos no separador Campos da Tabela do friso. Para adicionar regras de validação a um formulário, abra o formulário na vista de Esquema e adicione regras às propriedades de controlos individuais.

Os passos na secção Adicionar uma regra de validação a uma tabela explicam como adicionar regras de validação a campos de tabela. Os passos na secção Adicionar uma regra de validação a um controlo num formulário, mais adiante neste artigo, explicam como adicionar regras às propriedades em controlos individuais.

O que pode incluir numa regra de validação

As regras de validação podem conter expressões — funções que devolvem um único valor. Pode utilizar uma expressão para efetuar cálculos, manipular carateres ou testar dados. Uma expressão de uma regra de validação testa os dados. Por exemplo, uma expressão pode verificar a existência de um valor entre vários, como "Tóquio" Ou "Moscovo" Ou "Paris" Ou "Helsínquia". As expressões podem também executar operações matemáticas. Por exemplo, a expressão <100 força os utilizadores a introduzirem valores inferiores a 100. A expressão ([DataDeEncomenda] – [DataDeEnvio]) calcula o número de dias que decorreram desde o momento em que a encomenda foi feita até ao seu envio.

Para mais informações sobre expressões, consulte Criar uma expressão.

Início da Página

Adicionar uma regra de validação a uma tabela

Pode adicionar uma regra de validação de campo e/ou uma regra de validação de registo. Uma regra de validação de campo verifica a introdução num campo e é aplicada quando o campo deixa de estar em foco. Uma regra de validação de registo verifica a introdução num ou mais campos e é aplicada quando o registo deixa de estar em foco. Normalmente, uma regra de validação de registo compara os valores de dois ou mais campos.

Notas: As regras de validação não são suportadas pelos seguintes tipos de campo:

  • Numeração Automática

  • Objeto OLE

  • Anexo

  • ID de Replicação

Criar uma regra de validação de campo

  1. Selecione o campo que pretende validar.

  2. No separador Campos de Tabela , no grupo Validação de Campos , clique em Validação e, em seguida, clique em Regra de Validação de Campo.

  3. Utilize o Construtor de Expressões para criar uma regra. Para obter mais informações sobre como utilizar o Construtor de Expressões, consulte o artigo Utilizar o Construtor de Expressões.

Criar uma mensagem de aviso para introduções de campos inválidas

  1. Selecione o campo que precisa de uma mensagem caso a introdução seja inválida. O campo já deverá ter uma regra de validação.

  2. No separador Campos de Tabela , no grupo Validação de Campos , clique em Validação e, em seguida, clique em Mensagem de Validação de Campo.

  3. Introduza uma mensagem adequada. Por exemplo, se a regra de validação for >10, a mensagem poderia ser "Introduza um valor inferior a 10".

Para obter alguns exemplos de mensagens e regras de validação de campos, consulte a secção Referência de regras de validação.

Criar uma regra de validação de registo

  1. Abra a tabela na qual pretende validar registos.

  2. No separador Campos de Tabela , no grupo Validação de Campos , clique em Validação e, em seguida, clique em Regra de Validação.

  3. Utilize o Construtor de Expressões para criar uma regra. Para obter mais informações sobre como utilizar o Construtor de Expressões, consulte o artigo Utilizar o Construtor de Expressões.

Criar uma mensagem de aviso para introduções de registos inválidas

  1. Abra a tabela que precisa de uma mensagem caso a introdução seja inválida. A tabela já deverá ter uma regra de validação.

  2. No separador Campos de Tabela , no grupo Validação de Campos , clique em Validação e, em seguida, clique em Mensagem de Validação.

  3. Introduza uma mensagem adequada. Por exemplo, se a regra de validação for [StartDate]<[EndDate], a mensagem poderá ser "StartDate must preced EndDate".

Início da Página

Testar dados existentes com uma nova regra de validação

Se adicionar uma regra de validação a uma tabela já existente, recomendamos que teste a regra para verificar se existem dados inválidos.

  1. Abra a tabela que pretende testar na Vista de Estrutura.

    No separador Estrutura da Tabela , no grupo Ferramentas , clique em Testar Regras de Validação.

  2. Clique em Sim para fechar a mensagem de aviso e iniciar o teste.

  3. Se lhe for perguntado se pretende guardar a tabela, clique em Sim.

  4. Poderá ver uma série de outras mensagens de aviso à medida que vai avançando no processo. Leia as instruções de cada mensagem e clique em Sim ou Não, conforme a situação, para completar ou parar o teste.

Início da Página

Adicionar uma regra de validação a um controlo num formulário

Pode utilizar as propriedades Regra de Validação e Texto de Validação de um controlo num formulário para validar dados que são introduções para esse controlo e para ajudar os utilizadores que façam introduções de dados inválidas.

Sugestão:  Se criar automaticamente um formulário a partir de uma tabela através dos comandos Formulário no friso, as validações de campos na tabela subjacente são herdadas pelos controlos correspondentes no formulário.

Um controlo pode ter uma regra de validação diferente do campo de tabela ao qual o controlo está vinculado. Isto é útil quando pretende que o formulário seja mais restritivo do que a tabela. A regra do formulário é aplicada e depois é aplicada a regra da tabela. Se a tabela for mais restritiva do que o formulário, a regra definida para o campo de tabela terá precedência. Se as regras forem mutuamente exclusivas, não será possível introduzir dados.

Por exemplo, suponhamos que aplica a regra seguinte a um campo de data numa tabela:

<#01/01/2010#

Porém, depois aplica esta regra ao controlo de formulário que está vinculado ao campo de data:

>=#01/01/2010#

Agora, o campo de data exige a introdução de valores anteriores ao ano 2010, mas o controlo de formulário exige a introdução de datas com esse ano ou após esse ano, o que impede a introdução de qualquer valor.

Criar uma regra de validação para um controlo

  1. Clique com o botão direito do rato no formulário que pretende alterar e clique em Vista de Esquema.

  2. Clique no botão direito do rato no controlo que pretende alterar e, em seguida, clique em Propriedades para abrir a folha de propriedades desse controlo.

  3. Clique no separador Tudo e, em seguida, introduza a regra de validação na caixa de propriedade Regra de Validação.

    Sugestão:  Clique no botão Criar para iniciar o Construtor de Expressões.

    Para obter mais informações sobre como utilizar o Construtor de Expressões, consulte o artigo Utilizar o Construtor de Expressões.

  4. Introduza uma mensagem na caixa de propriedade Texto de Validação.

Início da Página

Referência das regras de validação

As regras de validação utilizam a sintaxe de expressões do Access. Para obter mais informações sobre expressões, consulte o artigo Introdução a expressões.

Exemplos de regras de validação e texto de validação

Regra de validação

Texto de validação

<>0

Introduza um valor diferente de 0.

>=0

O valor tem de ser igual ou superior a 0.

-ou-

Tem de introduzir um número positivo.

0 ou >100

O valor tem de ser 0 ou superior a 100.

ENTRE 0 E 1

Introduza um valor com um sinal de percentagem. (Para utilização com um campo que armazene valores numéricos como percentagens.)

<#01/01/2007#

Introduza uma data anterior a 2007.

>=#01/01/2007# E <#01/01/2008#

A data tem de ocorrer em 2007.

<Data()

A data de nascimento não pode ser no futuro.

CompCad(Maiúscula([Apelido]), [Apelido],0) = 0

Os dados no campo designado por Apelido têm de estar em maiúscula.

>=Int(Agora())

Introduza a data de hoje.

M Ou F

Introduza M para masculino e F para feminino.

LIKE "[A-Z]*@[A-Z].com" OU "[A-Z]*@[A-Z].net" OU "[A-Z]*@[A-Z].org"

Introduza um endereço de e-mail .com, .net ou .org válido.

[DataExigida]<=[DataDeEncomenda]+30

Introduza uma data exigida que ocorra antes de 30 dias após a data da encomenda.

[DataDeFim]>=[DataDeInício]

Introduza uma data de fim igual ou posterior à data de início.

Exemplos de sintaxe para operadores comuns de regras de validação

Operador

Função

Exemplo

NÃO

Verifica se há valores contrários. Utilize-o antes de qualquer operador de comparação, exceto NÃO É NULO.

NÃO > 10 (o mesmo que <=10).

IN

Verifica se há valores iguais aos membros de uma lista. O valor de comparação tem ser uma lista separada por vírgulas e entre parênteses.

IN ("Tóquio","Paris","Moscovo")

ENTRE

Verifica se há um intervalo de valores. Tem de utilizar dois valores de comparação — inferior e superior — e tem de separar esses valores com o separador E.

ENTRE 100 E 1000 (o mesmo que >=100 E <=1000)

COMO

Faz a correspondência entre padrões de cadeias nos campos Texto e Memo.

COMO"Geo*"

NÃO É NULO

Força os utilizadores a introduzirem valores no campo. O funcionamento deste operador é o mesmo que definir a propriedade de campo Obrigatório como Sim. No entanto, se ativar a propriedade Obrigatório e um utilizador não introduzir um valor, o Access apresenta uma mensagem de erro cujo significado pode não ser claro. Em geral, a utilização da base de dados torna-se mais fácil se utilizar NÃO É NULO e introduzir uma mensagem de erro mais clara na propriedade Texto de validação.

NÃO É NULO

E

Especifica que todas as partes da regra de validação têm de ser verdadeiras.

>= #01/01/2007# E <=#03/06/2008#

Nota: Também pode utilizar o operador E para combinar regras de validação. Por exemplo: NÃO "RU" E LIKE "R*".

OU

Especifica que algumas partes da regra de validação, mas não todas, têm de ser verdadeiras.

Janeiro OU Fevereiro

<

Inferior a.

<=

Inferior ou igual a.

>

Superior a.

>=

Superior ou igual a.

=

Igual a.

<>

Diferente de.

Utilizar carateres universais em regras de validação

Pode utilizar carateres universais nas regras de validação. Tenha em conta que o Access suporta dois conjuntos de carateres universais: o ANSI-89 e o ANSI-92. Cada uma destas normas utiliza um conjunto diferente de carateres universais.

Por predefinição, todos os ficheiros .accdb e .mdb utilizam a norma ANSI-89.

Pode alterar a norma ANSI de uma base de dados para ANSI-92 através do seguinte procedimento:

  1. No separador Ficheiro, clique em Opções.

  2. Na caixa de diálogo Opções do Access, clique em Estruturadores de Objetos.

  3. Na secção Estrutura da consulta, em Sintaxe Compatível Com SQL Server (ANSI 92), selecione Esta base de dados.

Para obter mais informações sobre como utilizar carateres universais e sobre as normas ANSI para SQL, consulte o artigo Referência dos carateres universais do Access.

Início da Página

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.