Compartilhar via


Propriedade CheckBox.ValidationRule (Access)

Use a propriedade ValidationRule para especificar requisitos para dados inseridos em um registro, campo ou controle. Quando os dados são inseridos que viola a configuração ValidationRule, você pode usar a propriedade ValidationText para especificar a mensagem a ser exibido para o usuário. Cadeia de caracteres de leitura/gravação.

Sintaxe

expressão. Validationrule

Expressão Uma variável que representa um objeto CheckBox .

Comentários

Insira uma expressão para a configuração da propriedade ValidationRule e texto para a configuração da propriedade ValidationText. O comprimento máximo para a configuração da propriedade ValidationRule é 2048 caracteres. O comprimento máximo para a configuração da propriedade ValidationText é 255 caracteres.

Para controles, você pode definir a propriedade ValidationRule para qualquer expressão válida. Para regras de validação de campo e registro, a expressão não pode conter funções definidas pelo usuário, funções de agregação ou agregação de domínio, a função Eval , o método CurrentUser ou referências a formulários, consultas ou tabelas. Além disso, as regras de validação de campo não podem conter referências a outros campos. Para registros, expressões podem incluir referências a campos na tabela que.

Para registros e campos de tabela, você também pode definir essas propriedades no Visual Basic usando a propriedade ValidationRule do DAO.

Observação

As propriedades ValidationRule e ValidationText não se aplicam à caixa de seleção, botão de opção ou controles de botão de alternância quando estão em um grupo de opções. Eles se aplicam apenas ao próprio grupo de opção.

O Microsoft Access valida automaticamente valores com base no tipo de dados de um campo; por exemplo, o Access não permite texto em um campo numérico. Você pode definir as regras que são mais específicas usando a propriedade ValidationRule.

Se você definir a propriedade ValidationRule , mas não a propriedade ValidationText , o Access exibirá uma mensagem de erro padrão quando a regra de validação for violada. Se você definir a propriedade ValidationText , o texto inserido será exibido como a mensagem de erro.

Por exemplo, quando um registro é adicionado para um novo funcionário, você pode inserir uma propriedade ValidationRule exigindo que o valor no campo StartDate do funcionário fique entre a data de fundação da empresa e a data atual. Se a data inserida não estiver nesse intervalo, você pode exibir a mensagem da propriedade ValidationText: "data de início está incorreta".

Se você criar um controle arrastando um campo da lista de campos, a regra de validação do campo permanecerá em vigor, embora não seja exibida na caixa de propriedade ValidationRule do controle na folha de propriedades. Isso ocorre porque a regra de validação de um campo é herdada por um controle acoplado a esse campo.

As regras de validação de controle, campo e registro são aplicadas como a seguir:

  • As regras de validação definidas para campos e controles são aplicadas quando você edita os dados e o foco deixa o campo ou o controle.

  • As regras de validação de registros são aplicadas quando você vai para um outro registro.

  • Se você criar regras de validação tanto para um campo quanto para um controle acoplado ao campo, ambas as regras de validação serão aplicadas quando você editar dados e o foco deixar o controle.

A tabela a seguir contém exemplos de expressões para as propriedades ValidationRule e ValidationText.

Propriedade ValidationRule Propriedade ValidationText
<> 0 A entrada precisa ser um valor diferente de zero.
> 1000 Or Is Null A entrada precisa ser vazia ou maior que 1000.
Like "A????" A entrada deve ter 5 caracteres e começar com a letra A.
>= #1/1/96# And <#1/1/97# A entrada precisa ser uma data de 1996.
DLookup("CustomerID", "Customers", "CustomerID = Forms!Customers!CustomerID") Is Null A entrada precisa ser um CódigoCliente exclusivo (funções agregadas de domínio só são permitidas para validação em nível de formulário).

Se você criar uma regra de validação para um campo, o Access normalmente não permitirá que um valor Null seja armazenado no campo. Se você quiser permitir um valor Nulo , adicione "Is Null" à regra de validação, como em "<> 8 Or Is Null" e verifique se a propriedade Obrigatório está definida como No.

Você não pode definir regras de validação de campo ou registro para tabelas criadas fora do Access (por exemplo, dBASE, Paradox ou SQL Server). Para esses tipos de tabelas, você pode criar regras de validação somente para controles.

Exemplo

O exemplo a seguir cria uma regra de validação para um campo que permite que somente valores acima de 65 sejam inseridos. Se um número menor que 65 for inserido, uma mensagem será exibida. As propriedades são definidas usando a função SetFieldValidation .

Dim strTblName As String, strFldName As String 
Dim strValidRule As String 
Dim strValidText As String, intX As Integer 
 
strTblName = "Customers" 
strFldName = "Age" 
strValidRule = ">= 65" 
strValidText = "Enter a number greater than or equal to 65." 
intX = SetFieldValidation(strTblName, strFldName, _ 
 strValidRule, strValidText) 
 
Function SetFieldValidation(strTblName As String, _ 
 strFldName As String, strValidRule As String, _ 
 strValidText As String) As Integer 
 
 Dim dbs As Database, tdf As TableDef, fld As Field 
 
 Set dbs = CurrentDb 
 Set tdf = dbs.TableDefs(strTblName) 
 Set fld = tdf.Fields(strFldName) 
 fld.ValidationRule = strValidRule 
 fld.ValidationText = strValidText 
End Function

O exemplo a seguir usa a função SetTableValidation para definir a validação em nível de registro para garantir que o valor no campo EndDate venha após o valor no campo StartDate .

Dim strTblName As String, strValidRule As String 
Dim strValidText As String 
Dim intX As Integer 
 
strTblName = "Employees" 
strValidRule = "EndDate > StartDate" 
strValidText = "Enter an EndDate that is later than the StartDate." 
intX = SetTableValidation(strTblName, strValidRule, strValidText) 
 
Function SetTableValidation(strTblName As String, _ 
 strValidRule As String, strValidText As String) _ 
 As Integer 
 
 Dim dbs As Database, tdf As TableDef 
 
 Set dbs = CurrentDb 
 Set tdf = dbs.TableDefs(strTblName) 
 tdf.ValidationRule = strValidRule 
 tdf.ValidationText = strValidText 
End Function

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.