** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Evaluar una regla de validación
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoEvaluar una regla de validación

 Responder Responder
Autor
Mensaje
Bepb Ver desplegable
Habitual
Habitual
Avatar

Unido: 02/Febrero/2012
Localización: España
Estado: Sin conexión
Puntos: 162
Enlace directo a este mensaje Tema: Evaluar una regla de validación
    Enviado: 24/Mayo/2024 a las 14:00
Hola,

    Estoy intentando evaluar por código una regla de validación con un campo (control textBox) de un formulario y no encuentro exactamente como hacerlo, porque quiero gestionar el idioma del mensaje que ha de lanzar si no se cumple la regla en lugar de que lo haga por defecto desde la definición de la tabla.
 
he probado:
 Incluir On error ..  en la función que tengo en el evento 'Al Perder el Foco' de cada textbox

      If (Eval(Screen.ActiveForm.Controls(nomCamp).Value & " " & fld.ValidationRule)) Then

tanto con el " " separador como sin éste y me lanza un error de sintaxis no válida.

También si el .value es Null, o sea que no hay valor en ese campo, me lanza un error de 'uso no válido de Null' en la expresión.

¿Hay una guía o API de esta instrucción Eval?, porque he encontrado unos cuantos pero con unas condiciones que no acabo de entender como funciona.

Un saludo.
Saludos desde Menorca. José Luis
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4856
Enlace directo a este mensaje Enviado: 24/Mayo/2024 a las 15:31
Arriba
Bepb Ver desplegable
Habitual
Habitual
Avatar

Unido: 02/Febrero/2012
Localización: España
Estado: Sin conexión
Puntos: 162
Enlace directo a este mensaje Enviado: 24/Mayo/2024 a las 17:13
Hola,

    Si, ese link ya lo había mirado, y he probado el 'In' y muchas otras opciones para Eval pero siempre me dice que la expresión no esta bien escrita, así que iré probando, si alguien me puede indicar u orientar como comparar la regla de validación de un campo con un valor de un textbox se lo agradecería.

Gracias y un saludo.
Saludos desde Menorca. José Luis
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 26/Mayo/2024 a las 18:39
Hola,

Vaya por delante que poco te puedo indicar sobre reglas de validación porque les tengo especial manía por su poca flexibilidad. 

En cuanto a tu validación: no se yo si el Screen.ActiveForm... es admisible. Teniendo en cuenta que es posible que lo lances desde el propio formulario, podría bastar con invocar al control.

Pero también te puedo sugerir que hagas tu las validaciones mediante VBA en el evento adecuado del control implicado (probablemente un BeforeUpdate para tener argumento Cancel) y seas tu quien lance los mensajes y establezca las reglas.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
Bepb Ver desplegable
Habitual
Habitual
Avatar

Unido: 02/Febrero/2012
Localización: España
Estado: Sin conexión
Puntos: 162
Enlace directo a este mensaje Enviado: 06/Junio/2024 a las 19:49
Hola Xavi,

     He intentado hacer la validación con Regex pero no es el sistema que usa Access en las validaciones de las ValidationRules, por lo que lo he descartado.

     Supongo que para esas validaciones usa Expresiones, con lo que significa que si lo haces por código y teniendo en cuenta todos tipo de operadores, constantes, identificadores y funciones sería bestial la rutina que pudiera evaluar cualquier Regla de validación posible en el campo ValidationRule.

    Al final me he descantado por cambiar el idioma de los ValidationText de todas las tablas, sólo los campos que tengan una ValidationRule, al inicio de la aplicación y cuando se dispare el error de Validación ya tenga el texto introducido. El único handicap que he encontrado ha sido hallar como cambiar ese valor en tablas vinculadas que están en otra base de datos, pero al final encontré un post tuyo en el cual se indica perfectamente como hacerlo.

Muchas gracias.
Un saludo.
Se puede cerrar el tema.
Saludos desde Menorca. José Luis
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable