Propiedad ListBox.ValidationRule (Access)

Use la propiedad ValidationRule para especificar los requisitos de los datos especificados en un registro, campo o control. Si se especifican datos que infringen el valor de ValidationRule, puede usar la propiedad ValidationText para especificar el mensaje que se mostrará al usuario. String de lectura y escritura.

Sintaxis

expresión. ValidationRule

Expresión Variable que representa un objeto ListBox .

Comentarios

Escriba una expresión para el valor de la propiedad ValidationRule y texto para el valor de la propiedad ValidationText. La longitud máxima del valor de la propiedad ValidationRule es de 2.048 caracteres. La longitud máxima para el valor de la propiedad ValidationText es de 255 caracteres.

Para los controles, puede establecer la propiedad ValidationRule en cualquier expresión válida. Para las reglas de validación de campos y registros, la expresión no puede contener funciones definidas por el usuario, funciones de agregado o agregado de dominio, la función Eval , el método CurrentUser ni referencias a formularios, consultas o tablas. Además, las reglas de validación de campo no pueden contener referencias a otros campos. En el caso de los registros, las expresiones pueden incluir referencias a campos de esa tabla.

Para los registros y los campos de tabla, también puede establecer estas propiedades en Visual Basic mediante la propiedad ValidationRule de DAO.

Microsoft Access valida automáticamente los valores en función del tipo de datos de un campo; por ejemplo, Access no permite texto en un campo numérico. Puede establecer reglas más específicas mediante la propiedad ValidationRule.

Si establece la propiedad ValidationRule pero no la propiedad ValidationText , Access muestra un mensaje de error estándar cuando se infringe la regla de validación. Si establece la propiedad ValidationText , el texto que escriba se mostrará como mensaje de error.

Por ejemplo, cuando se agrega un registro para un nuevo empleado, puede escribir una propiedad ValidationRule que requiera que el valor del campo StartDate del empleado se ajuste entre la fecha de fundación de la empresa y la fecha actual. Si la fecha especificada no está en ese intervalo, puede mostrar el mensaje de la propiedad ValidationText: "La fecha de inicio es incorrecta".

Si crea un control arrastrando un campo desde la lista de campos, la regla de validación del campo permanece en vigor, aunque no se muestra en el cuadro de propiedad ValidationRule del control en la hoja de propiedades. Esto se debe a que la regla de validación del campo la hereda un control enlazado a ese campo.

Las reglas de validación de control, campo y registro se aplican de la forma siguiente:

  • Las reglas de validación establecidas para campos y controles se aplican al editar los datos y el foco deja el campo o el control.

  • Las reglas de validación para los registros se aplican al moverse a otro registro.

  • Si crea reglas de validación para un campo y un control dependiente del campo, ambas reglas de validación se aplican cuando se editan los datos y el enfoque sale del control.

En la tabla siguiente se incluyen ejemplos de expresiones para las propiedades ValidationRule y ValidationText.

Propiedad ValidationRule ValidationText (propiedad)
<> 0 La entrada debe ser un valor distinto de cero.
> 1000 Or Is Null La entrada debe estar en blanco o ser mayor que 1000.
Like "A????" La entrada debe tener 5 caracteres y comenzar con la letra A.
>= #1/1/96# And <#1/1/97# La entrada debe ser una fecha de 1996.
DLookup("CustomerID", "Customers", "CustomerID = Forms!Customers!CustomerID") Is Null La entrada debe ser un IdCliente exclusivo (las funciones agregadas de dominio se permiten sólo para la validación de nivel de formulario).

Si crea una regla de validación para un campo, Access normalmente no permite almacenar un valor Null en el campo. Si desea permitir un valor Null, agregue "Is Null" a la regla de validación, como en y asegúrese de que la propiedad Required está establecida en "<> 8 Or Is Null" No.

No se pueden establecer reglas de validación de campos o registros para las tablas creadas fuera de Access (por ejemplo, dBASE, Paradox o SQL Server). Para este tipo de tablas, puede crear reglas de validación sólo para controles.

Ejemplo:

En el siguiente ejemplo, se crea una regla de validación para un campo que sólo permite especificar valores mayores de 65. Si se escribe un número menor de 65, se muestra un mensaje de error. Las propiedades se establecen mediante la función 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

En el ejemplo siguiente se usa la función SetTableValidation para establecer la validación de nivel de registro para asegurarse de que el valor del campo EndDate va después del valor del 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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.