Discussion:
Formato condicional por codigo
(demasiado antiguo para responder)
chiri13
2004-10-25 20:02:50 UTC
Permalink
Tengo un formulario en vista hoja de datos, mi objetivo es cambiar el color
de las celdas en función de lo que pone en varias celdas, después de leer la
ayuda, el foro de google (hay poquito sobre esto), ver la página del Buho...
y un ejemplo de Mcpegasus

Bueno de todos he sacado algo y cada vez os admiro más y más

He obtenido la información de la ayuda

With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With

Aquí es donde no entiendo ni jota, entindo que con El formulario donde esté,
y el control que decida, ahora va cuando la matan,

El objetivo es hacer un formato condicional igual que el que te permite
access2000 y siguientes, pero access sólo te deja 3 condiciones y yo quiero
poner 5 ó 6 y mediante código.

vamos a ver las preguntas:

1ª Elijo el formulario en el que quiero que pase el tema, en el control que
suceda el cambio de color, cómo decido que control registra la condición,
(la ayuda no lo explica muy bien)

2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en el
evento al actualizar...

3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)

Gracias por todo
Flashman
2004-10-26 10:46:14 UTC
Permalink
Hola Chiri13.
Post by chiri13
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
1ª Elijo el formulario en el que quiero que pase el tema, en el control que
suceda el cambio de color, cómo decido que control registra la condición,
(la ayuda no lo explica muy bien)

Sustituye "miControl" por el nombre del control cuyo formato condicional
quieras contemplar (normalmente de un formulario continuo)

2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en el
evento al actualizar...

Escribe siempre el código en el evento Open del formulario (o
subformulario)


3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)

acFieldHasFocus significa que el formato condicional se disparará cuando
el control tenga el foco.

Por ejemplo:

With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With

Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas cuando dicho control tenga el foco, es decir, cuando pongas el
cursor encima de él.

También puedes hacerlo por comparaciones del valor del control, etc,...

Un saludo,
Flashman
Post by chiri13
Tengo un formulario en vista hoja de datos, mi objetivo es cambiar el color
de las celdas en función de lo que pone en varias celdas, después de leer la
ayuda, el foro de google (hay poquito sobre esto), ver la página del Buho...
y un ejemplo de Mcpegasus
Bueno de todos he sacado algo y cada vez os admiro más y más
He obtenido la información de la ayuda
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Aquí es donde no entiendo ni jota, entindo que con El formulario donde esté,
y el control que decida, ahora va cuando la matan,
El objetivo es hacer un formato condicional igual que el que te permite
access2000 y siguientes, pero access sólo te deja 3 condiciones y yo quiero
poner 5 ó 6 y mediante código.
1ª Elijo el formulario en el que quiero que pase el tema, en el control que
suceda el cambio de color, cómo decido que control registra la condición,
(la ayuda no lo explica muy bien)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en el
evento al actualizar...
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
Gracias por todo
chiri13
2004-10-26 17:44:11 UTC
Permalink
Gracias Flashman, no he podido responder antes, y no tengo access delante,
llevo unos días sin mi portatil (está en el médico), y no soy nadie.

De cualquier forma supongo que con lo que me has respondido yo puedo decir
los siguiente:

With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(Me.Valoracion.Value = "1")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With

aprovechando tu texto;
Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas ...


CUANDO EL VALOR (TEXTO) DEL CONTROL VALORACIÓN SEA IGUAL A 1

si no es así, corrígeme, y muchas gracias.

mi problema sobretodo era saber donde se ponía el condicional y donde se
ponía el control que se modificaba al no entender field, ahora ya entiendo,
pero no sé si es correcta la expresión y no la puedo probar.

y una cosa más podría poner dos .Add(), .Add() como si fueran dos
condiciones o hay que poner .Add() or (), ó una posibilidad más
.Add(loquesea And loquesea)

Creo que finalmente esto aclararía todo para mi y para muchas personas.


Muchísimas gracias.

Un saludo Fernando Mollat desde Zaragoza
Post by Flashman
También puedes hacerlo por comparaciones del valor del control, etc,...
Hola Chiri13.
Post by chiri13
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
1ª Elijo el formulario en el que quiero que pase el tema, en el control que
suceda el cambio de color, cómo decido que control registra la condición,
(la ayuda no lo explica muy bien)
Sustituye "miControl" por el nombre del control cuyo formato condicional
quieras contemplar (normalmente de un formulario continuo)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en el
evento al actualizar...
Escribe siempre el código en el evento Open del formulario (o
subformulario)
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
acFieldHasFocus significa que el formato condicional se disparará cuando
el control tenga el foco.
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas cuando dicho control tenga el foco, es decir, cuando pongas el
cursor encima de él.
También puedes hacerlo por comparaciones del valor del control, etc,...
Un saludo,
Flashman
Post by chiri13
Tengo un formulario en vista hoja de datos, mi objetivo es cambiar el color
de las celdas en función de lo que pone en varias celdas, después de leer la
ayuda, el foro de google (hay poquito sobre esto), ver la página del Buho...
y un ejemplo de Mcpegasus
Bueno de todos he sacado algo y cada vez os admiro más y más
He obtenido la información de la ayuda
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Aquí es donde no entiendo ni jota, entindo que con El formulario donde esté,
y el control que decida, ahora va cuando la matan,
El objetivo es hacer un formato condicional igual que el que te permite
access2000 y siguientes, pero access sólo te deja 3 condiciones y yo quiero
poner 5 ó 6 y mediante código.
1ª Elijo el formulario en el que quiero que pase el tema, en el control que
suceda el cambio de color, cómo decido que control registra la condición,
(la ayuda no lo explica muy bien)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en el
evento al actualizar...
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
Gracias por todo
Flashman
2004-10-28 08:57:43 UTC
Permalink
Hola Chiri13.

Disculpa el retraso en contestarte pero es que he estado de viaje y acabo
de ver tu pregunta.

Lo que pides sería algo así:

With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acExpression, ,"[Me].[Valoracion].Value = '1'")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With

Pruebalo y me comentas (No estoy seguro de los corchetes y no he podido
probarlo).

Respecto a cómo se ponen 2 condiciones, sería una después de la otra de la
siguiente manera:

With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acExpression, ,"[Me].[Valoracion].Value = '1'")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
With Forms("frmClientes").Controls("txtRazonSocial").FormatConditions _
.Add(acExpression, , "FechaBaja IS NOT NULL")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With


La segunda condición pintará en negritas y fondo rojo el control
"txtRazonSocial" cuando el valor del campo (del origen de datos del
formulario) FechaBaja no sea nulo.

Te recuerdo que lo puedes hacer también en diseño del formulario en lugar
de por código. Tu mismo.

Un saludo,
Flashman
Post by chiri13
Gracias Flashman, no he podido responder antes, y no tengo access delante,
llevo unos días sin mi portatil (está en el médico), y no soy nadie.
De cualquier forma supongo que con lo que me has respondido yo puedo decir
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(Me.Valoracion.Value = "1")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
aprovechando tu texto;
Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas ...
CUANDO EL VALOR (TEXTO) DEL CONTROL VALORACIÓN SEA IGUAL A 1
si no es así, corrígeme, y muchas gracias.
mi problema sobretodo era saber donde se ponía el condicional y donde se
ponía el control que se modificaba al no entender field, ahora ya entiendo,
pero no sé si es correcta la expresión y no la puedo probar.
y una cosa más podría poner dos .Add(), .Add() como si fueran dos
condiciones o hay que poner .Add() or (), ó una posibilidad más
..Add(loquesea And loquesea)
Creo que finalmente esto aclararía todo para mi y para muchas personas.
Muchísimas gracias.
Un saludo Fernando Mollat desde Zaragoza
Post by Flashman
También puedes hacerlo por comparaciones del valor del control, etc,...
Hola Chiri13.
Post by chiri13
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
1ª Elijo el formulario en el que quiero que pase el tema, en el control
que
Post by Flashman
suceda el cambio de color, cómo decido que control registra la condición,
(la ayuda no lo explica muy bien)
Sustituye "miControl" por el nombre del control cuyo formato condicional
quieras contemplar (normalmente de un formulario continuo)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en
el
Post by Flashman
evento al actualizar...
Escribe siempre el código en el evento Open del formulario (o
subformulario)
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
acFieldHasFocus significa que el formato condicional se disparará cuando
el control tenga el foco.
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas cuando dicho control tenga el foco, es decir, cuando pongas el
cursor encima de él.
También puedes hacerlo por comparaciones del valor del control, etc,...
Un saludo,
Flashman
Post by chiri13
Tengo un formulario en vista hoja de datos, mi objetivo es cambiar el
color
Post by Flashman
Post by chiri13
de las celdas en función de lo que pone en varias celdas, después de
leer la
Post by Flashman
Post by chiri13
ayuda, el foro de google (hay poquito sobre esto), ver la página del
Buho...
Post by Flashman
Post by chiri13
y un ejemplo de Mcpegasus
Bueno de todos he sacado algo y cada vez os admiro más y más
He obtenido la información de la ayuda
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Aquí es donde no entiendo ni jota, entindo que con El formulario donde
esté,
Post by Flashman
Post by chiri13
y el control que decida, ahora va cuando la matan,
El objetivo es hacer un formato condicional igual que el que te permite
access2000 y siguientes, pero access sólo te deja 3 condiciones y yo
quiero
Post by Flashman
Post by chiri13
poner 5 ó 6 y mediante código.
1ª Elijo el formulario en el que quiero que pase el tema, en el control
que
Post by Flashman
Post by chiri13
suceda el cambio de color, cómo decido que control registra la
condición,
Post by Flashman
Post by chiri13
(la ayuda no lo explica muy bien)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en
el
Post by Flashman
Post by chiri13
evento al actualizar...
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
Gracias por todo
chiri13
2004-10-28 21:03:54 UTC
Permalink
Yo también estoy con problemas para ir probando las cosillas, no sé si ya lo
había dicho, pero tengo el portatil en el taller (de la marca prefiero no
hablar, pero os aseguro que no lo volveré a compra)

el caso es que lo mismo en cuanto pueda lo pruebo (con la base que estoy
trabajando)

Sólo una cosilla más, después de leer tu mensaje, miro en la ayuda
acexpression y mi pregunta es, como has dado con esa instrucción que la
ayuda casi ni hace mendión de ella, entiendo cosas de visual basic, pero de
los códigos de access, dónde puedo encontrar información para aprender.

P.D. perdona el mensaje al correo, es que no quería que lo anterior quedara
en el aire.

Muchísimas gracias, eternamente agradecido Fernando Mollat desde Zaragoza
Post by Flashman
Hola Chiri13.
Disculpa el retraso en contestarte pero es que he estado de viaje y acabo
de ver tu pregunta.
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acExpression, ,"[Me].[Valoracion].Value = '1'")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Pruebalo y me comentas (No estoy seguro de los corchetes y no he podido
probarlo).
Respecto a cómo se ponen 2 condiciones, sería una después de la otra de la
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acExpression, ,"[Me].[Valoracion].Value = '1'")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
With Forms("frmClientes").Controls("txtRazonSocial").FormatConditions _
.Add(acExpression, , "FechaBaja IS NOT NULL")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
La segunda condición pintará en negritas y fondo rojo el control
"txtRazonSocial" cuando el valor del campo (del origen de datos del
formulario) FechaBaja no sea nulo.
Te recuerdo que lo puedes hacer también en diseño del formulario en lugar
de por código. Tu mismo.
Un saludo,
Flashman
Post by chiri13
Gracias Flashman, no he podido responder antes, y no tengo access delante,
llevo unos días sin mi portatil (está en el médico), y no soy nadie.
De cualquier forma supongo que con lo que me has respondido yo puedo decir
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(Me.Valoracion.Value = "1")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
aprovechando tu texto;
Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas ...
CUANDO EL VALOR (TEXTO) DEL CONTROL VALORACIÓN SEA IGUAL A 1
si no es así, corrígeme, y muchas gracias.
mi problema sobretodo era saber donde se ponía el condicional y donde se
ponía el control que se modificaba al no entender field, ahora ya entiendo,
pero no sé si es correcta la expresión y no la puedo probar.
y una cosa más podría poner dos .Add(), .Add() como si fueran dos
condiciones o hay que poner .Add() or (), ó una posibilidad más
..Add(loquesea And loquesea)
Creo que finalmente esto aclararía todo para mi y para muchas personas.
Muchísimas gracias.
Un saludo Fernando Mollat desde Zaragoza
Post by Flashman
También puedes hacerlo por comparaciones del valor del control, etc,...
Hola Chiri13.
Post by chiri13
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
1ª Elijo el formulario en el que quiero que pase el tema, en el control
que
Post by Flashman
suceda el cambio de color, cómo decido que control registra la condición,
(la ayuda no lo explica muy bien)
Sustituye "miControl" por el nombre del control cuyo formato condicional
quieras contemplar (normalmente de un formulario continuo)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en
el
Post by Flashman
evento al actualizar...
Escribe siempre el código en el evento Open del formulario (o
subformulario)
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
acFieldHasFocus significa que el formato condicional se disparará cuando
el control tenga el foco.
With
Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
Post by Flashman
Post by chiri13
Post by Flashman
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas cuando dicho control tenga el foco, es decir, cuando pongas el
cursor encima de él.
También puedes hacerlo por comparaciones del valor del control, etc,...
Un saludo,
Flashman
Post by chiri13
Tengo un formulario en vista hoja de datos, mi objetivo es cambiar el
color
Post by Flashman
Post by chiri13
de las celdas en función de lo que pone en varias celdas, después de
leer la
Post by Flashman
Post by chiri13
ayuda, el foro de google (hay poquito sobre esto), ver la página del
Buho...
Post by Flashman
Post by chiri13
y un ejemplo de Mcpegasus
Bueno de todos he sacado algo y cada vez os admiro más y más
He obtenido la información de la ayuda
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Aquí es donde no entiendo ni jota, entindo que con El formulario donde
esté,
Post by Flashman
Post by chiri13
y el control que decida, ahora va cuando la matan,
El objetivo es hacer un formato condicional igual que el que te permite
access2000 y siguientes, pero access sólo te deja 3 condiciones y yo
quiero
Post by Flashman
Post by chiri13
poner 5 ó 6 y mediante código.
1ª Elijo el formulario en el que quiero que pase el tema, en el control
que
Post by Flashman
Post by chiri13
suceda el cambio de color, cómo decido que control registra la
condición,
Post by Flashman
Post by chiri13
(la ayuda no lo explica muy bien)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en
el
Post by Flashman
Post by chiri13
evento al actualizar...
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
Gracias por todo
chiri13
2004-10-28 22:15:44 UTC
Permalink
Post by Flashman
Te recuerdo que lo puedes hacer también en diseño del formulario en lugar
de por código. Tu mismo.
Te refieres en vista de hoja de datos, seleccionar la casilla e ir a
formato-formato condicional.

En ese caso sólo se permiten 3, condiciones, y yo quiero más de tres.

Gracias
Post by Flashman
Hola Chiri13.
Disculpa el retraso en contestarte pero es que he estado de viaje y acabo
de ver tu pregunta.
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acExpression, ,"[Me].[Valoracion].Value = '1'")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Pruebalo y me comentas (No estoy seguro de los corchetes y no he podido
probarlo).
Respecto a cómo se ponen 2 condiciones, sería una después de la otra de la
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acExpression, ,"[Me].[Valoracion].Value = '1'")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
With Forms("frmClientes").Controls("txtRazonSocial").FormatConditions _
.Add(acExpression, , "FechaBaja IS NOT NULL")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
La segunda condición pintará en negritas y fondo rojo el control
"txtRazonSocial" cuando el valor del campo (del origen de datos del
formulario) FechaBaja no sea nulo.
Te recuerdo que lo puedes hacer también en diseño del formulario en lugar
de por código. Tu mismo.
Un saludo,
Flashman
Post by chiri13
Gracias Flashman, no he podido responder antes, y no tengo access delante,
llevo unos días sin mi portatil (está en el médico), y no soy nadie.
De cualquier forma supongo que con lo que me has respondido yo puedo decir
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(Me.Valoracion.Value = "1")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
aprovechando tu texto;
Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas ...
CUANDO EL VALOR (TEXTO) DEL CONTROL VALORACIÓN SEA IGUAL A 1
si no es así, corrígeme, y muchas gracias.
mi problema sobretodo era saber donde se ponía el condicional y donde se
ponía el control que se modificaba al no entender field, ahora ya entiendo,
pero no sé si es correcta la expresión y no la puedo probar.
y una cosa más podría poner dos .Add(), .Add() como si fueran dos
condiciones o hay que poner .Add() or (), ó una posibilidad más
..Add(loquesea And loquesea)
Creo que finalmente esto aclararía todo para mi y para muchas personas.
Muchísimas gracias.
Un saludo Fernando Mollat desde Zaragoza
Post by Flashman
También puedes hacerlo por comparaciones del valor del control, etc,...
Hola Chiri13.
Post by chiri13
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
1ª Elijo el formulario en el que quiero que pase el tema, en el control
que
Post by Flashman
suceda el cambio de color, cómo decido que control registra la condición,
(la ayuda no lo explica muy bien)
Sustituye "miControl" por el nombre del control cuyo formato condicional
quieras contemplar (normalmente de un formulario continuo)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en
el
Post by Flashman
evento al actualizar...
Escribe siempre el código en el evento Open del formulario (o
subformulario)
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
acFieldHasFocus significa que el formato condicional se disparará cuando
el control tenga el foco.
With
Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
Post by Flashman
Post by chiri13
Post by Flashman
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas cuando dicho control tenga el foco, es decir, cuando pongas el
cursor encima de él.
También puedes hacerlo por comparaciones del valor del control, etc,...
Un saludo,
Flashman
Post by chiri13
Tengo un formulario en vista hoja de datos, mi objetivo es cambiar el
color
Post by Flashman
Post by chiri13
de las celdas en función de lo que pone en varias celdas, después de
leer la
Post by Flashman
Post by chiri13
ayuda, el foro de google (hay poquito sobre esto), ver la página del
Buho...
Post by Flashman
Post by chiri13
y un ejemplo de Mcpegasus
Bueno de todos he sacado algo y cada vez os admiro más y más
He obtenido la información de la ayuda
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Aquí es donde no entiendo ni jota, entindo que con El formulario donde
esté,
Post by Flashman
Post by chiri13
y el control que decida, ahora va cuando la matan,
El objetivo es hacer un formato condicional igual que el que te permite
access2000 y siguientes, pero access sólo te deja 3 condiciones y yo
quiero
Post by Flashman
Post by chiri13
poner 5 ó 6 y mediante código.
1ª Elijo el formulario en el que quiero que pase el tema, en el control
que
Post by Flashman
Post by chiri13
suceda el cambio de color, cómo decido que control registra la
condición,
Post by Flashman
Post by chiri13
(la ayuda no lo explica muy bien)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en
el
Post by Flashman
Post by chiri13
evento al actualizar...
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
Gracias por todo
chiri13
2004-10-29 17:32:44 UTC
Permalink
Bueno, ya me va saliendo

With
Forms("ObservacionesYNotasObsYNotConsNotSub").Controls("Observación").Format
Conditions.Add(acExpression, , "[Nota] = 'B'")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
With
Forms("ObservacionesYNotasObsYNotConsNotSub").Controls("Observación").Format
Conditions.Add(acExpression, , "[Nota] = 'C'")
.BackColor = vbGreen
.FontBold = True
.ForeColor = vbWhite
End With

para dos condiciones
con esto ya me sale

He descubierto, que no me deja más de tres formatos condicionales, así que,
no hay solución de esta manera a lo que yo quería conseguir.

Probaré de otra forma.

Un saludo

Y Muchas Gracias FlashMan por asesorarme

Fernando Mollat desde Zaragoza
Post by Flashman
Hola Chiri13.
Disculpa el retraso en contestarte pero es que he estado de viaje y acabo
de ver tu pregunta.
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acExpression, ,"[Me].[Valoracion].Value = '1'")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Pruebalo y me comentas (No estoy seguro de los corchetes y no he podido
probarlo).
Respecto a cómo se ponen 2 condiciones, sería una después de la otra de la
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(acExpression, ,"[Me].[Valoracion].Value = '1'")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
With Forms("frmClientes").Controls("txtRazonSocial").FormatConditions _
.Add(acExpression, , "FechaBaja IS NOT NULL")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
La segunda condición pintará en negritas y fondo rojo el control
"txtRazonSocial" cuando el valor del campo (del origen de datos del
formulario) FechaBaja no sea nulo.
Te recuerdo que lo puedes hacer también en diseño del formulario en lugar
de por código. Tu mismo.
Un saludo,
Flashman
Post by chiri13
Gracias Flashman, no he podido responder antes, y no tengo access delante,
llevo unos días sin mi portatil (está en el médico), y no soy nadie.
De cualquier forma supongo que con lo que me has respondido yo puedo decir
With Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
.Add(Me.Valoracion.Value = "1")
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
aprovechando tu texto;
Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas ...
CUANDO EL VALOR (TEXTO) DEL CONTROL VALORACIÓN SEA IGUAL A 1
si no es así, corrígeme, y muchas gracias.
mi problema sobretodo era saber donde se ponía el condicional y donde se
ponía el control que se modificaba al no entender field, ahora ya entiendo,
pero no sé si es correcta la expresión y no la puedo probar.
y una cosa más podría poner dos .Add(), .Add() como si fueran dos
condiciones o hay que poner .Add() or (), ó una posibilidad más
..Add(loquesea And loquesea)
Creo que finalmente esto aclararía todo para mi y para muchas personas.
Muchísimas gracias.
Un saludo Fernando Mollat desde Zaragoza
Post by Flashman
También puedes hacerlo por comparaciones del valor del control, etc,...
Hola Chiri13.
Post by chiri13
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
1ª Elijo el formulario en el que quiero que pase el tema, en el control
que
Post by Flashman
suceda el cambio de color, cómo decido que control registra la condición,
(la ayuda no lo explica muy bien)
Sustituye "miControl" por el nombre del control cuyo formato condicional
quieras contemplar (normalmente de un formulario continuo)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en
el
Post by Flashman
evento al actualizar...
Escribe siempre el código en el evento Open del formulario (o
subformulario)
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
acFieldHasFocus significa que el formato condicional se disparará cuando
el control tenga el foco.
With
Forms("frmClientes").Controls("txtCodigoCliente").FormatConditions _
Post by Flashman
Post by chiri13
Post by Flashman
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Este formato condicional hará que el control "txtCodigoCliente" del
formulario "frmClientes" se pinte en negrita, con fondo rojo y letras
blancas cuando dicho control tenga el foco, es decir, cuando pongas el
cursor encima de él.
También puedes hacerlo por comparaciones del valor del control, etc,...
Un saludo,
Flashman
Post by chiri13
Tengo un formulario en vista hoja de datos, mi objetivo es cambiar el
color
Post by Flashman
Post by chiri13
de las celdas en función de lo que pone en varias celdas, después de
leer la
Post by Flashman
Post by chiri13
ayuda, el foro de google (hay poquito sobre esto), ver la página del
Buho...
Post by Flashman
Post by chiri13
y un ejemplo de Mcpegasus
Bueno de todos he sacado algo y cada vez os admiro más y más
He obtenido la información de la ayuda
With Forms("miFormulario").Controls("miControl").FormatConditions _
.Add(acFieldHasFocus)
.BackColor = vbRed
.FontBold = True
.ForeColor = vbWhite
End With
Aquí es donde no entiendo ni jota, entindo que con El formulario donde
esté,
Post by Flashman
Post by chiri13
y el control que decida, ahora va cuando la matan,
El objetivo es hacer un formato condicional igual que el que te permite
access2000 y siguientes, pero access sólo te deja 3 condiciones y yo
quiero
Post by Flashman
Post by chiri13
poner 5 ó 6 y mediante código.
1ª Elijo el formulario en el que quiero que pase el tema, en el control
que
Post by Flashman
Post by chiri13
suceda el cambio de color, cómo decido que control registra la
condición,
Post by Flashman
Post by chiri13
(la ayuda no lo explica muy bien)
2ª esto está en un subformulario, que viene de una consulta que varía en
función de unos cuadros combinados, supongo que hay poner este código en
el
Post by Flashman
Post by chiri13
evento al actualizar...
3ª Qué significa acFieldHasFocus, más bien Field (es lo que no acabo de
entender, después de leer la ayuda)
Gracias por todo
Continúe leyendo en narkive:
Loading...