Criar uma regra de validação para validar dados num campo

Este artigo explica como adicionar regras de validação a uma base de dados. As regras de validação restringem os dados que os utilizadores podem introduzir num determinado campo e ajudam também a assegurar que os utilizadores da base de dados introduzem os tipos ou quantidades de dados adequados.

O que pretende fazer?

Noções sobre regras de validação

Validar dados durante entrada em campos de tabela

Validar dados durante entrada em formulários

Validar dados durante operações de importação

Referência de regras de validação

Noções sobre regras de validação

Uma regra de validação limita ou controla aquilo que os utilizadores podem introduzir num campo de tabela ou num controlo (tal como uma caixa de texto) de um formulário. O Microsoft Office Access 2007 fornece uma variedade de formas de validação de dados e várias dessas técnicas são utilizadas frequentemente para definir uma regra de validação. Poderá encarar as regras de validação como um conjunto de camadas: é possível utilizar algumas ou todas as camadas quando é necessário assegurar que os utilizadores introduzam dados de forma adequada.

  • Tipos de dados     Os tipos de dados fornecem normalmente a primeira camada de validação. Quando estrutura uma tabela de base de dados, define um tipo de dados para cada campo na tabela e esse tipo de dados restringe aquilo que os utilizadores podem introduzir. Por exemplo, um campo Data/Hora aceita apenas datas e horas, um campo Moeda aceita apenas dados monetários, e assim sucessivamente.

  • Tamanhos de campo     Os tamanhos de campo fornecem outra camada de validação. Por exemplo, se criar um campo que armazene nomes próprios, poderá defini-lo para aceitar um máximo de 20 caracteres. Tal poderá impedir que um utilizador mal-intencionado cole grandes quantidades de texto sem nexo, ou impedir que um utilizar inexperiente introduza por engano um nome próprio e apelido num campo concebido apenas para um nome próprio.

  • Propriedades de tabela     As propriedades de tabela fornecem tipos muito específicos de validação. Por exemplo, é possível definir a propriedade Necessário como Sim e, por conseguinte, forçar os utilizadores a introduzirem um valor num campo.

    Também é possível utilizar a propriedade Regra de Validação para requerer valores específicos e a propriedade Texto de Validação para alertar os utilizadores acerca de eventuais erros. Por exemplo, a introdução de uma regra como >100 E <1000 na propriedade Regra de Validação força os utilizadores a introduzir valores entre 100 e 1000. Uma regra como [DataDeFim]>=[DataDeInício] força os utilizadores a introduzir uma data de fim que ocorra na data de início ou após a mesma. A introdução de texto como "Introduzir valores entre 100 e 1000" ou "Introduzir uma data de fim igual ou posterior à data de início" na propriedade Texto de Validação informa os utilizadores acerca da existência de um erro e de como o corrigir.

    Para saber quais os passos necessários para adicionar uma regra de validação a um campo de tabela, consulte a secção Validar dados durante entrada em campos de tabela, mais adiante neste artigo.

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

É possível utilizar algumas ou todas estas técnicas para validar os dados. Algumas destas funcionalidades (tais como tipos de dados) tornam-se parte da base de dados por predefinição, mas poderá utilizar à discrição outras técnicas, tais como propriedades de campo, regras de validação e máscaras de introdução.

Este artigo explica como utilizar as propriedades Texto de Validação e Regra de Validação em campos de tabela, consultas e controlos de formulário. Um debate abrangente de outras regras de validação (tais como tipos de dados, tamanhos de campo e máscaras de introdução) ultrapassa o âmbito deste artigo.

Para mais informações sobre tipos de dados e tamanhos de campo, consulte o artigos Modificar ou alterar o conjunto de tipo de dados de um campo. Para mais informações sobre máscaras de introdução, consulte o artigo Criar uma máscara de introdução para introduzir valores de controlo ou de campo num formato específico.

Tipos de regras de validação

É possível criar dois tipos básicos de regras de validação:

  • Regras de validação de campo     Utilize uma regra de validação de campo para verificar o valor introduzido num campo quando deixa o campo. Por exemplo, suponha que tem um campo Data e introduz >=#01/01/2007# na propriedade Regra de Validação desse campo. A regra requer agora que os utilizadores introduzam datas coincidentes ou posteriores a 1 de Janeiro de 2007. Se introduzir uma data anterior a 2007 e tentar depois colocar o foco noutro campo, o Access irá impedi-lo de deixar o campo actual até que o problema seja corrigido.

  • Regras de validação de registo (ou tabela)    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 campo, as regras de validação de registo fazem referência a outros campos na mesma tabela. Pode criar regras de validação de registo quando é necessário verificar os valores num campo relativamente aos valores noutro campo. Por exemplo, suponha que o seu negócio requer o envio dos produtos num prazo de 30 dias e, se o envio não for efetuado dentro desse período de tempo, terá de restituir parte do preço de compra ao seu cliente. Poderá definir uma regra de validação de registo como [DataRequerida]<=[DataDaEncomenda]+30 para garantir que ninguém introduz uma data de envio (o valor no campo DataRequerida) demasiado distante no futuro.

Se a sintaxe de regras de validação parecer críptica, as tabelas na secção O que é possível colocar numa regra de validação irão explicar a sintaxe e fornecer alguns exemplos de regras de validação.

Onde é possível utilizar regras de validação

É possível definir regras de validação para tabelas e controlos em formulários. Quando são definidas regras para tabelas, essas regras aplicam-se aquando da importação de dados. Para adicionar regras de validação a uma tabela, terá de abrir a tabela na vista de estrutura e definir diversas propriedades de tabela. Para adicionar regras de validação a um formulário, terá de abrir o formulário na vista de estrutura e adicionar regras às propriedades de controlos individuais.

Os passos na secção Validar dados durante entrada em campos de tabela explicam como adicionar regras de validação às propriedades em campos de tabela. Os passos na secção Validar dados durante entrada em formulários, mais adiante neste artigo, explicam como adicionar regras às propriedades em controlos individuais.

O que é possível colocar numa regra de validação

As suas regras de validação podem conter expressões – funções que devolvem um valor único. Pode utilizar expressões para efetuar cálculos, manipular carateres ou testar dados. Quando criar regras de validação, utilize expressões essencialmente para testar dados. Por exemplo, uma expressão pode verificar a existência de um valor numa série de valores, tal como "Tóquio" Ou "Moscovo" Ou "Paris" Ou "Helsínquia". As expressões podem também efetuar operações matemáticas. Por exemplo, a expressão <100 força os utilizadores a introduzir valores inferiores a 100. A expressão ([DataDaEncomenda] – [DataDoEnvio]) calcula o número de dias que decorreram entre a data da encomenda e a data do respetivo envio.

Um debate sobre expressões e funções ultrapassa o âmbito deste artigo. Para mais informações sobre expressões, consulte o artigo Criar uma expressão. Para mais informações sobre funções, consulte os artigos no Microsoft Office Online.

Para obter exemplos de formas de utilização de expressões para validar dados, consulte a secção Validar dados num registo.

Os passos nas secções abaixo explicam como validar dados para tabelas, formulários, consultas e operações de importação.

Início da Página

Validar dados durante entrada em campos de tabela

Os passos nesta secção explicam como criar regras de validação a nível de campo e de registo, e como testar dados existentes relativamente a uma nova regra de validação.

É possível introduzir regras de validação para todos os tipos de dados excepto Numeração Automática, Objecto OLE e Anexo, e campos Número definidos como IDDeReplicação.

Validar dados num campo

  1. No Painel de Navegação, clique com o botão direito do rato na tabela que pretende alterar e clique em Vista de Estrutura.

  2. Na coluna Nome do Campo, seleccione o campo que pretende alterar.

  3. Na parte inferior do estruturador de tabela, no separador Geral, seleccione a caixa de propriedade Regra de Validação e introduza a regra de validação.

    -ou-

    Clique no separador Dados da folha de propriedades, clique em Builder button para iniciar o Construtor de Expressões e criar a expressão.

    Para obter mais informações sobre como utilizar o Construtor de Expressões, consulte o artigo Criar uma expressão.

    Introduza uma regra que se aplique apenas ao campo. Por exemplo, poderá introduzir >0 para forçar os utilizadores a introduzir valores positivos. Não se esqueça que uma regra de validação para um campo não faz referência a outros campos na tabela. Se a regra de validação fizer referência a outros campos, estará a criar uma validação a nível do registo.

  4. Seleccione a caixa de propriedade Texto de Validação e introduza uma mensagem de validação.

    A mensagem introduzida depende da regra de validação. Escreva uma mensagem curta e tente explicar onde é que o utilizador não está a proceder corretamente. Para continuar o exemplo do passo anterior, poderia utilizar Introduzir apenas números positivos como texto de validação.

  5. Guarde o seu trabalho.

Nota : Para obter mais exemplos de validação a nível de campo, consulte a secção Referência de validação, mais adiante neste artigo.

Validar dados num registo

  1. Repita os passos 1-2 na secção anterior para abrir uma tabela na vista de estrutura.

  2. No separador Geral, introduza uma regra a nível de registo na caixa de propriedade Regra de Validação.

    -ou-

    Clique em Builder button para iniciar o Construtor de Expressões e criar a sua expressão.

    Para obter mais informações sobre como utilizar o Construtor de Expressões, consulte o artigo Criar uma expressão.

    Uma regra de validação a nível de registo faz referência a mais do que uma tabela. Por exemplo, uma regra como [DataRequerida]<=[DataDaEncomenda]+30 faz referência a duas tabelas, DataRequerida e DataDaEncomenda, e garante que os utilizadores introduzem datas de envio que não ocorrem mais de 30 dias após a introdução de uma encomenda. Para mais exemplos de validação a nível de registo, consulte a secção Referência de validação.

  3. Guarde as alterações.

Testar as regras de validação

  1. Abra a tabela que contém a regra de validação na vista de estrutura.

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

  3. Clique em Sim para fechar a mensagem de alerta e iniciar o teste.

  4. Se lhe for pedido que guarde a tabela, clique em Sim.

  5. É possível que veja uma variedade de mensagens de alerta à medida que continua. Leia as instruções em cada mensagem e clique em Sim ou Não, consoante apropriado, para concluir ou parar o teste.

Testar regras de validação utilizando uma consulta

Nota : Também poderá testar as regras de validação escrevendo uma consulta que teste a existência de registos que não estejam em conformidade com a regra de validação. Os resultados de tal consulta mostram exactamente quais os registos que não satisfazem os requisitos de validação. Por exemplo, se definir a propriedade Necessário como Sim ou Não É Nulo, estará a testar a existência de campos nulos.

  1. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

    Imagem do Friso do Access

    O Access abre uma nova consulta na vista de estrutura e apresenta a caixa de diálogo Mostrar Tabela.

  2. Na caixa de diálogo Mostrar Tabela, seleccione a tabela ou tabelas que pretende utilizar na consulta, clique em Adicionar para as adicionar à consulta e clique em Fechar.

    As tabelas seleccionadas aparecem como janelas na secção superior do estruturador de consultas.

  3. Em cada tabela, faça duplo clique nos campos que pretende incluir na consulta.

    -ou-

    Arraste os campos da tabela e largue-os numa célula em branco na linha Campo na secção inferior da grelha de estrutura.

    Certifique-se de que adiciona o campo que contém a regra de validação.

  4. Na célula Critérios do campo que contém a regra de validação, introduza o oposto dessa regra.

    Por exemplo, se utilizar ENTRE 100 E 1000, introduza <100 OU >1000.

  5. No separador Estrutura, no grupo Resultados, clique em Executar.

Início da Página

Validar dados durante entrada em formulários

A forma mais fácil e rápida de aplicar uma regra de validação a um formulário consiste em adicionar primeiro a regra ao campo de tabela subjacente e utilizar depois as ferramentas automatizadas de criação de formulários que Access oferece para criar um formulário. Por exemplo, no separador Criar, no grupo Formulários, poderá escolher que o Access crie um formulário simples, um formulário dividido, um formulário de itens múltiplos, entre outros. Quando utiliza uma destas ferramentas, os controlos no formulário herdam as propriedades da tabela subjacente, incluindo regras de validação e texto de validação.

Também poderá aplicar uma regra de validação a um controlo de formulário abrindo o formulário na vista de formulário e adicionando uma regra à propriedade Regra de Validação e o texto da mensagem à propriedade Texto de Validação do controlo. É possível adicionar regras de validação a alguns controlos de formulário, mas não a todos. A forma mais fácil de determinar se é possível adicionar uma regra de validação a um controlo consiste em abrir o formulário na vista de estrutura e seguir os passos nesta secção.

Lembre-se de que um controlo pode ter uma regra de validação diferente da do campo de tabela ao qual o controlo está vinculado. Quando se desenvolve um conflito entre regras de validação, a regra definida para o campo de tabela tem precedência. Além disso, lembre-se de que as regras em controlos e campos de tabela podem anular-se entre si, impedindo assim a introdução de quaisquer dados. Por exemplo, suponha que aplica a seguinte regra a um campo de data numa tabela:

<#01/01/2007#

Mas depois aplica esta regra ao controlo de formulário vinculado ao campo de tabela:

>=#01/01/2007#

O campo de tabela requer agora valores anteriores ao ano de 2007, mas o controlo de formulário força a introdução de datas posteriores a esse ano, impedindo assim a introdução de uma data sequer. Se tentar introduzir dados nestas condições, o Access irá instrui-lo a introduzir datas anteriores e posteriores às especificadas pelas regras de validação em conflito, e o utilizador ficará apanhado num círculo interminável.

Os passos seguintes explicam como adicionar regras de validação a controlos, e como proteger controlos e assim impedir que os utilizadores alterem dados.

Criar uma regra de validação

  1. No Painel de Navegação, clique com o botão direito do rato no formulário que pretende alterar e clique em Vista de Estrutura.

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

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

    -ou-

    Clique em Builder button para iniciar o Construtor de Expressões e criar uma expressão.

    Para obter mais informações sobre como utilizar o Construtor de Expressões, consulte o artigo Criar uma expressão.

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

  5. Guarde as alterações.

Proteger um controlo

  1. Siga os passos 1-2 na secção anterior para abrir a folha de propriedades do controlo que pretende proteger.

  2. Clique no separador Tudo, localize as caixas de propriedade Activado e Protegido e efectue um dos seguintes procedimentos:

    • Para desactivar o controlo (fazer com que o controlo apareça esbatido e não possa receber foco), defina a propriedade Activado como Não.

    • Para tornar legíveis os dados no controlo, mas não permitir aos utilizadores a alteração dos dados, defina a propriedade Protegido como Sim. Se definir a propriedade Activado como Não e a propriedade Protegido como Sim, o controlo não irá aparecer esbatido, mas não poderá receber o foco.

Início da Página

Validar dados durante operações de importação

Quando adiciona regras de validação a uma tabela e importa depois dados para essa tabela, o Access aplica as regras de validação aos dados importados. A mesma regra é aplicada quando liga a dados.

Para mais informações sobre como importar ou ligar a dados, consulte os seguintes artigos:

Início da Página

Referência de regras de validação

As tabelas abaixo fornecem informações de referência sobre regras de validação, incluindo a sintaxe utilizada pelas regras mais usuais, hiperligações para informações sobre como utilizar caracteres universais nas regras e exemplos adaptáveis para utilização com dados próprios.

Exemplos de regras de validação

A tabela abaixo oferece exemplos de regras de validação a nível de campo e de registo, bem como texto de validação explicativo. Poderá adaptar estes exemplos para que correspondam ao conteúdo.

Regra de validação

Texto de validação

<>0

Introduza um valor diferente de zero.

>=0

O valor tem de ser igual a zero ou superior.

-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 se pode situar no futuro.

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

Os dados no campo Apelido têm de estar em maiúsculas.

>=Int(Agora())

Introduza a data actual.

M Ou F

Introduza M para masculino ou F para feminino.

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

Introduza um endereço de correio electrónico .com, .net ou .org válido.

[DataRequerida]<=[DataDaEncomenda]+30

Introduza uma data requerida que não ocorra mais de 30 dias após a data da encomenda.

[DataDeFim]>=[DataDeInício]

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

Sintaxe para regras de validação comuns

As expressões nas regras de validação não utilizam nenhuma sintaxe especial. As informações nesta secção explicam a sintaxe de alguns dos tipos mais comuns de regras de validação. À medida que for avançando, lembre-se de que as expressões e funções podem ser muito complexas, sendo que um debate abrangente está para além do âmbito deste artigo.

Para mais informações sobre expressões, consulte o artigo Criar uma expressão. Para mais informações sobre funções, consulte Funções (dispostas por categoria).

Lembre-se destas regras à medida que vai criando expressões:

  • Coloca os nomes de campos de tabela entre parênteses retos, desta forma: [DataRequerida]<=[DataDaEncomenda]+30.

  • Coloca a data entre sinais de cardinal (#), desta forma: <#01/01/2007#

  • Coloca os valores de texto entre aspas, desta forma: EM ("Tóquio","Paris","Moscovo"). Além disso, repare que os itens devem ser separados por vírgulas e que as listas são colocadas entre parênteses.

Além destas regras, a tabela abaixo mostra os operadores aritméticos comuns e fornece exemplos de como os utilizar.

Operador

Função

Exemplo

NÃO

Testa a existência de valores contrários. Utilize-o antes de qualquer operador de comparação excepto NÃO É NULO.

NEGADO > 10 (o mesmo que <=10).

EM

Testa a existência de valores iguais a membros existentes numa lista. O valor de comparação terá de ser uma lista separada por vírgulas entre parênteses.

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

ENTRE

Testa um intervalo de valores. Terá de utilizar dois valores de comparação (inferior e superior) e separar esses valores com o separador E.

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

COMO

Faz corresponder cadeias de padrão em campos Texto e Memo.

C OMO "Geo*"

NÃO É NULO

Força os utilizadores a introduzir valores no campo. É o mesmo que definir a propriedade de campo Necessário como Sim. Contudo, quando activa a propriedade Necessário e um utilizador não introduz um valor, o Access apresenta uma mensagem de erro pouco amigável. Normalmente, é mais fácil de utilizar a base de dados se utilizar NÃO É NULO e introduzir uma mensagem amigável na propriedade Texto de Validação.

NÃO É NULO

E

Especifica que todos os dados introduzidos têm de ser verdadeiros ou recair dentro dos limites especificados.

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

Nota : Também é possível utilizar E para combinar regras de validação. Por exemplo NEGADO "UK" E COMO "U*".

OU

Especifica que um ou mais blocos de dados podem ser verdadeiros.

Janeiro OU Fevereiro

<

Menor que.

<=

Menor ou igual a.

>

Maior que.

>=

Maior ou igual a.

=

Igual a.

<>

Diferente de.

Utilizar caracteres universais em regras de validação

É possível utilizar qualquer um dos caracteres universais disponibilizados pelos Access nas regras de validação. Não se esqueça de que o Access suporta dois conjuntos de caracteres universais. O Access fá-lo porque suporta dois padrões de SQL (Structured Query Language), a linguagem utilizada para criar e gerir bases de dados: ANSI-89 e ANSI-92. Cada um destes padrões utiliza um conjunto diferente de caracteres universais.

Por predefinição, todos os ficheiros .accdb e .mdb utilizam o padrão ANSI-89; por outro lado, os projectos do Access utilizam o padrão ANSI-92. Se não estiver familiarizado com o Access, num projecto do Access, as tabelas na base de dados residem num computador a executar o Microsoft SQL Server; os formulários, relatórios e outros objectos residem noutros computadores. É possível alterar o padrão ANSI de ficheiros .accdb e .mdb para ANSI-92, caso o pretenda.

Para mais informações sobre como utilizar caracteres universais e os padrões ANSI de SQL, consulte o artigo Referência de caracteres universais do Access.

Início da Página

As informações foram úteis?

Ótimo! Tem mais feedback?

Como podemos melhorá-lo?

Obrigado pelos seus comentários!

×