Blanquear campo requerido

Ahí va una pregunta un poco complicadilla...
Tengo un formulario con un grupo de opciones que al actualizarlo, quiero que me blanquee otro campo (que es un combobox)
El problema es que el combobox es un campo requerido y al actualizar el grupo de opciones, me da error porque me dice que el combobox no puede alojar una cadena vacía al ser un campo requerido.
Sin embargo si lo que hago es entrar manualmente dentro del combobox y borrar los caracteres "a mano" no me da ningún error mientras no salga del campo.
Lo que yo quiero sería emular el comportamiento "manual", es decir, que al actualizar el grupo de opciones se me blanquee el combobox, manteniendo el foco en él, sin que me salte el error de campo requerido. He probado con funciones como mid y otras pero con todas me pasa lo mismo.
¿Es esto posible hacerlo de alguna manera? Estoy seguro de que alguna forma hay pero no doy con ella

1 respuesta

Respuesta
1
Si no te importa, pásame tu BD comprimida a mi correo ([email protected]) y, por favor, dime en qué formulario está el grupo de opciones y el combo y qué pasos realizas para que te salte el error.
Ya te digo que, inicialmente, no sé cómo solucionar tu problema. Quizá, si lo veo "directamente", se me encienda la "bombilla" y pueda encontrar alguna solución. Pero insisto en que por ahora... ni idea de cómo solventarlo.
Te envié una posible solución a tu correo electrónico. ¿Lo has recibido?
Ya me dirás cosas.
Por cierto, que si la solución te parece correcta te agradecería que cerraras la consulta.
Buenas, ya he probado la solución que me propusiste. La verdad es que tiene toda la lógica del mundo... pero la he probado y me parece que no funciona  :-(
En primer lugar, el error que había que gestionar no era el 3314 sino el 3315, pero vamos, que eso es cuestión de cambiarlo y ya está.
El problema es que con el "Resume next" lo que hace es no generar ningún error pero no blanquea el campo que al fin y al cabo era el objetivo final, es decir, al actualizar el grupo de opciones no blanquea el combobox sino que permanece con el mismo valor que tenía.
Supongo que ignora el error pero no permite dejar un valor no permitido en el campo, no sé ¿te cuadra esto que te estoy diciendo? ¿estoy haciendo algo mal?
Gracias
¿Puedes ponerme un ejemplo, paso a paso, de cómo rellenas un registro, o cómo modificas un registro existente (no sé en cuál de los dos te salta el error)?
Es decir, necesito que me indiques paso a paso lo que haces y lo que tienes en pantalla para poder ver el proceso y ver cómo te salta ese error que me comentas.
Imagino que yo no hice el proceso que tú haces, por lo que a mí sí me saltó el error 3314 y, según lo que yo hacía, la solución, para mí, era válida.
Pues eso... Ponme un ejemplo de lo que te lleva al error. Por ejemplo:
-> En el menú de inicio le doy al botón X -> En el formulario que me aparece hago Y -> Etc.
Ya te comentaba que el formulario es "complicado" por la cantidad de datos que registras, además de que yo desconozco el funcionamiento del "proceso de usuario".
Ya me dirás.
No me extraña que te resulte complicado, lo es hasta para mí...
Pues el proceso en sí es sencillo: 
Previamente hay que estar seguros de que en la parte de la BD donde están las tablas, en la tabla LEAD el campo OPORTUNIDAD_LEAD está como Requerido en Sí y como Permitir longitud cero en No.
Una vez hecho esto, si dentro del grupo de opciones con la etiqueta "ESTADO" (es el Marco47) cambias el valor de cualquier registro, como al hacerlo intenta dejar en blanco el comboBox, me aparece el mensaje de error:
Se ha producido el error 3315 en tiempo de ejecución.
El campo LEAD.OPORTUNIDAD_LEAD no puede ser una cadena de longitud cero.
¿Necesitas qué el cboOportunidad refleje SIEMPRE un valor, o depende del estado en el que estás?
Lo digo porque una solución podría ser la siguiente:
En la tabla LEAD:
- Eliminar la obligatoriedad de que exista valor directamente en el campo de la tabla, modificando las propiedades del campo
En el formulario:
- En cuanto se actualiza el estado obligar al foco a situarse sobre el cboOportunidad
- Fijar en ese combo, en el evento al perder el enfoque, una comprobación de que existe valor. Si no existe valor lanzarte un mensaje de que es necesario introducir el valor y devolver el enfoque de nuevo al combo, con lo que creas un círculo "vicioso" del que sólo puedes salir si introduces algún valor en el combo. Sería una especie de "fijación indirecta" de las propiedades "Requerido" y "Permitir longitud cero".
El proceso sería algo así como el ejemplo que te puedes descargar aquí: http://www.filebig.net/files/mLZeZNhVFG
Ya me dirás.
Muchas gracias por tu ayuda
La solución que propones está muy bien y creo que funcionará.
Estrictamente lo mejor sería que el campo fuera requerido, porque al estar montada la aplicación con formularios de navegación, cuando pasas de un formulario a otro con elBrowseTo, la única manera de que te avise que un campo está vacío es ponerlo como requerido, porque si no este "BrowseTo" se lo salta todo.
De todas maneras, después de hablar con los usuarios, esto tampoco será algo muy crítico así que con la solución que me has propuesto será suficiente.
Muchas gracias por tu interés con este tema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas