** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Formato condicional según el contenido
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Formato condicional según el contenido

 Responder Responder
Autor
Mensaje
Pilgrin Ver desplegable
Nuevo
Nuevo


Unido: 09/Junio/2012
Localización: España
Estado: Sin conexión
Puntos: 22
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pilgrin Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Formato condicional según el contenido
    Enviado: 30/Abril/2019 a las 17:35
Hola, sé cómo dar formato condicional (color y tipo de fuente) a un campo según su valor pero, lo que necesito es hacerlo según una parte (palabra) del texto que contiene. Ejemplo, el campo "Estado", cuando incluya la palabra "entregado", que tenga un color determinado; más concretamente, si dice: El documento ha sido entregado con acuse de recibo, que el campo se destaque con un color. 

Como digo, solo consigo hacerlo (no sé más) si dice solo entregado (una única palabra), pero no cuando forma parte de otras palabras más.

Si alguien lo sabe y puede exlicarmelo, se lo agradeceré
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5096
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita mounir Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 30/Abril/2019 a las 18:44
Hola!

En la condición 1 seleccionas "La Expresión es" y en la siguiente casilla escribes:

InStr([Nombredelcampo];"entregado")
Un Saludo.
Arriba
Chea1 Ver desplegable
Moderador
Moderador


Unido: 20/Noviembre/2005
Localización: España
Estado: Sin conexión
Puntos: 4045
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Chea1 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 01/Mayo/2019 a las 10:32
También valdría usar [MiCampo] like "*Entregado*"

Saludos
José Bengoechea Ibaceta
Mi página

Mi otra página
Arriba
Pilgrin Ver desplegable
Nuevo
Nuevo


Unido: 09/Junio/2012
Localización: España
Estado: Sin conexión
Puntos: 22
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pilgrin Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 01/Mayo/2019 a las 16:13
Thumbs Up Muchísimas Gracias, tanto a mounir como a Chea1! Los 2 códigos funcionan perfectamente. 

Si no es mucho pedir (preguntar): en cada registro, junto al [NombreDelCampo] (o [MiCampo]...) tengo otro con el texto "Pendiente" o "Cerrado" que, cuando está en este último estado, le dí Formato condicional para destacarlo de un color. Ahora, al aplicar alguno de los códigos que indican, obtengo 2 colores y veo que sería conveniente que el texto "Cerrado" predominara y [NombreDelCampo] "recuperase" su formato por defecto ya que, al estar ese asunto solucionado, no necesita destacarse

Si no me he liado con la explicación, tiene solución y pueden dármela, no puedo más que ampliar mi Agradecimiento por la ayuda

Saludos!


Editado por Pilgrin - 01/Mayo/2019 a las 16:30
Arriba
Chea1 Ver desplegable
Moderador
Moderador


Unido: 20/Noviembre/2005
Localización: España
Estado: Sin conexión
Puntos: 4045
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Chea1 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 01/Mayo/2019 a las 19:17
( [MiCampo] like "*Entregado*") AND NOT ([MiOtroCampo] Like "*Cerrado*)

Saludos
José Bengoechea Ibaceta
Mi página

Mi otra página
Arriba
Pilgrin Ver desplegable
Nuevo
Nuevo


Unido: 09/Junio/2012
Localización: España
Estado: Sin conexión
Puntos: 22
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pilgrin Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 01/Mayo/2019 a las 20:49
No me funciona José (al final de la expresión que indicas falta comillas ¿verdad?, porque al guardar Access me presentó mensaje de error y al agregarla lo dio por bueno)

Sucede que [MiCampo] no cambia el Formato condicional dado a si contiene la palabra "Entregado" aunque [MiOtroCampo] contenga "Cerrado".

Para aclarar la explicación que seguirá: "Primera expresión" es la que indicas como respuesta a mi consulta inicial y "última expresión" es esta que recibo ahora y digo que no me funciona

Probé pasar esta última expresión delante de la primera pero al hacerlo, entonces la primera deja también de funcionar ([MiCampo] no cambia el formato condicional dado si contiene "Entregado")

A mi entender (de inexperto) es que algo hacen las expresiones porque el "cambio" que me presenta es señal que actua (aunque no como espero) ¿Verdad?


Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5190
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita VIMIPAS Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 01/Mayo/2019 a las 23:23

Buenas noches a todos.

Me acabo de fabricar un pequeño ejemplillo para entenderlo yo mismo y he creado una tabla esta:

PILGRIN

CAMPO1

OTROCAMPO

SE ENTREGARA

ESTA ENTREGADO CON ACUSE

ESTA ENTREGADO

CERRADO

ESTA ENTREGADO

OTRA COSA


Y también un formulario con vista hoja de datos, este:

FORMULARIO PILGRIN

CAMPO1

OTROCAMPO

SE ENTREGARA

ESTA ENTREGADO CON ACUSE

ESTA ENTREGADO

CERRADO

ESTA ENTREGADO

OTRA COSA


Al campo OTROCAMPO, le he puesto esta condición (dentro de Formato Condicional):

El valor del campo es igual a: "CERRADO".... que se ponga en verde el campo

Al CAMPO1, le he puesto esta condición  (dentro de Formato Condicional):

La expresión es: 
EnCad([CAMPO1];"ENTREGADO")>0 Y [OTROCAMPO]<>"CERRADO" O EnCad([CAMPO1];"ENTREGADO")>0 Y EsNulo([OTROCAMPO]).... que se ponga en amarillo el campo.

Explicación a lo de si es nulo el otro campo: No me hace nada si ese OTROCAMPO no contiene nada.

No obstante, yo me revisaría la tabla, me parece que te sobra este último OTROCAMPO ya que particularmente pienso que debería estar UN UNICO CAMPO, que estuviese en Rojo, mientras no se ha entregado y cuando se entregara que estuviese en Verde (mas que nada por la teoría de los semáforos, que también te admitiría una tercera condición... si fuera el caso).

Ya nos cuentas.

Saludos.

Hola de nuevo, edito este mensaje porque no consigo que los campos que tengo con sus colores correspondientes en el formulario (verde y amarillo), se vean reflejados en esta respuesta "al copiarlos".

FORMULARIO PILGRIN
CAMPO1
OTROCAMPO
SE ENTREGARA
ESTA ENTREGADO CON ACUSE
ESTA ENTREGADO
CERRADO
ESTA ENTREGADO
OTRA COSA

Y como no consigo hacerlo, he utilizado la posibilidad que me da el sistema de colorear las letras que escribo.



Editado por VIMIPAS - 01/Mayo/2019 a las 23:29
Gracias
Arriba
Pilgrin Ver desplegable
Nuevo
Nuevo


Unido: 09/Junio/2012
Localización: España
Estado: Sin conexión
Puntos: 22
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pilgrin Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 02/Mayo/2019 a las 10:50
Thumbs Up Muchísimas Gracias VIMIPAS! (no puedo más que alucinar al comprobar el trabajo y tiempo que algunos dedican a instruirnos ¡qué fácil parece!).

Lo que indicas es exáctamente lo que busco. Procederé a probarlo "en mis cosas" y por descontado que lo contaré

Reitero mi Agradecimiento, Saludos
Arriba
Pilgrin Ver desplegable
Nuevo
Nuevo


Unido: 09/Junio/2012
Localización: España
Estado: Sin conexión
Puntos: 22
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pilgrin Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 02/Mayo/2019 a las 11:41
Bien, en mi formulario tampoco funciona. He creado uno nuevo y SÍ FUNCIONA; tal como indicas en tu respuesta.

Ahora veremos si con mis conocimientos, soy capás de encontrar el fallo que lo impide en mi BD (esto seguramente también "será el responsable" de que el código de José tampoco me funcionase...) 

De cualquier forma, si lo soluciono (aunque tenga que crear todo de nuevo tendré que conseguirlo) pregunto: necesito que el [CAMPO1] si contiene "documento" tenga otro color diferente a si contiene "Entregado" (y al igual que con lo anterior, si [OTROCAMPO] contiene "Cerrado" recupere su formato por defecto: ningún color, ningún destaque) ¿dónde lo indicaría en la expresión?


Editado por Pilgrin - 02/Mayo/2019 a las 11:42
Arriba
Pilgrin Ver desplegable
Nuevo
Nuevo


Unido: 09/Junio/2012
Localización: España
Estado: Sin conexión
Puntos: 22
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pilgrin Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 02/Mayo/2019 a las 14:57
SOLUCIONADO! (el fallo era caer en mis manos... Disapprove)

Al leer "No obstante, yo me revisaría la tabla, me parece que te sobra este último OTROCAMPO..." lo que hice fue eliminar la parte " Y EsNulo([OTROCAMPO])" y eso hace que no funcione. 

Y, de casualidad (porque así valoro mis conocimientos en esto), en esa parte final que había descartado, en lugar de [OTROCAMPO] puse [LaFecha] y consigo que, si no se indica una fecha de resolución del asunto, aunque [OTROCAMPO] contenga "Cerrado" el [CAMPO1] mantiene su formato de "Entregado" !Genial!

Gracias otra y otra vez VIMIPAS. Si sabes (que no te suene a dudas, es simple manera de expresarlo...) y puedes indicármelo, te ReAgradeceré me digas lo de agregar otro formato (color) a [CAMPO1] si contiene en su texto en lugar de "Entregado" la palabra "Documento"

Saludos
Arriba
Pilgrin Ver desplegable
Nuevo
Nuevo


Unido: 09/Junio/2012
Localización: España
Estado: Sin conexión
Puntos: 22
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pilgrin Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 02/Mayo/2019 a las 17:19
Bueno, respecto a la consulta final de darle otro color a Campo1 si en vez de "Entregado" contiene "Documento", he probado agregando una Nueva regla a su formato utilizando el mismo código para lo primero cambiando el contenido en cuestión.

Como estoy aprendiendo que hay más de una forma (código, expresión...) de conseguir un resultado, esperaría me indicases otra mejor si no, me "conformaré" con esta ya que (de momento) parece funcionar correctamente.

Gracias y Saludos


Editado por Pilgrin - 02/Mayo/2019 a las 17:20
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5190
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita VIMIPAS Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 02/Mayo/2019 a las 23:58
Buenas noches.

Por aquí leí hace tiempo una máxima: "Si funciona no lo toques".

No obstante, también hay muchos expertos (yo no estoy entre ellos) que dicen que para que Access funcione a pleno rendimiento y "corra" de manera muy rápida, este tema de FormatoCondicional es, por lo que he leído por aquí, uno de los que mas recursos consume, que traducido a cristiano quiere decir que a mas formatos condicionales mas lentitud en la ejecución de una base de datos y/o sus formularios, mas parpadeos en la pantalla, etc.

Al grano, si se tiene que comparar con "la expresión es"....., por ejemplo esta:

EnCad([CAMPO1];"ENTREGADO")>0 Y [OTROCAMPO]<>"CERRADO" O EnCad([CAMPO1];"ENTREGADO")>0 Y EsNulo([OTROCAMPO

El sistema tiene que comparar y encontrar varias cosas, aunque aparentemente el sistema es rápido, consume su tiempo (milisegundos tal vez), cuando podría consumir menos (milisegundos también, pero menos) si supiésemos exactamente programar/definir los campos de la tabla con algo concreto, como por ejemplo tenemos que dentro del Campo1 debe localizar la palabra entregado.... un inciso rápido para entenderlo y no explayarme mas; vamos al inciso:

Si la tabla en ese campo1, en vez de tener: "El documento ha sido entregado con acuse de recibo",
tan solo contuviese "entregado", ya nos ahorraríamos tener que usar una función, la de Instr, para buscar algo... esto nos llevaría a que consumiría menos recursos si pusiésemos como formato condicional lo de: el valor es igual a "entregado".

Pero insisto, no creo que deba explayarme mas, ya  que esto es para que te hagas una idea general y rápida, la progresión en tu forma de ir avanzando en Access te llevará, también progresivamente en programar de una nueva manera que se adapte a "trabajar posteriormente lo menos posible", en base a un correcto planteamiento inicial de la elección del Tipo de Campo y de su contenido, para cometidos como este que acabas tu de apuntar.

Espero haberte aclarado algo y, claro, depende de a donde quieras llegar tu, en informática, como en casi todo en esta vida, no hay límites (salvo los límite físicos de equis registros o equis tablas, etc., en informática), tan solo tu cabeza se pondrá esos límites, estos se van alargando cuanto mas vas aprendiendo, hoy ya sabes que cuanto mas depures, mejor estará hecho el programa, en ti está avanzar y solo tu tienes la dirección de ese avance en tu mano.

Saludos.
Gracias
Arriba
Pilgrin Ver desplegable
Nuevo
Nuevo


Unido: 09/Junio/2012
Localización: España
Estado: Sin conexión
Puntos: 22
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Pilgrin Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 03/Mayo/2019 a las 11:03
Agradezco tu respuesta, valoro mucho tu atención y tomo nota del consejo.

Ahora bien, en este caso (al principio de todo empecé diciendo que sabía dar formato si contenía una sola palabra...) aún teniendo en cuenta los recursos que pueda consumir, necesito configurarlo así ya que (seguro se entenderá la razón), es necesario aclarar en cada registro qué es lo que se ha entregado.

Pero sí, aplicaré la máxima a la que haces referencia y en este caso (valga la redundancia), ya no lo tocaré...

Un Cordial Saludo


Editado por Pilgrin - 03/Mayo/2019 a las 11:04
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable