valor campo tabla que se visualiza en formulario que cambie según criterio

06/04/2012 - 23:08 por Victor | Informe spam
Access 2010.
Tengo una tabla con varios campos, entre otros: [precio] y [anulado]
El valor que hay en [precio] debe ser siempre el suyo (el que hay en la tabla), pero quisiera que mostrara el valor "0" cuando el campo [anulado]=verdadero.
Ej.: if [anulado] = falso then [precio] = 15 else [precio] = 0

(el valor mostrado de [precio] será siempre el que hay en la tabla excepto cuando [anulado] es verdadero)

No se si esto se tendria que hacer por codigo y en un formulario o bien en un informe. La verdad es que me da igual, pero necesito que en formularios e informes me funcione.

Gracias

Preguntas similare

Leer las respuestas

#1 Emilio
06/04/2012 - 23:23 | Informe spam
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
Hola!
si quieres hacerlo en un formulario o informe puedes utilizar la función
iif, consulta la ayuda al respecto.

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
miliuco56 ALGARROBA hotmail PUNTO com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
"Victor" escribió en el mensaje de noticias
news:
Access 2010.
Tengo una tabla con varios campos, entre otros: [precio] y [anulado]
El valor que hay en [precio] debe ser siempre el suyo (el que hay en la
tabla), pero quisiera que mostrara el valor "0" cuando el campo
[anulado]=verdadero.
Ej.: if [anulado] = falso then [precio] = 15 else [precio] = 0

(el valor mostrado de [precio] será siempre el que hay en la tabla excepto
cuando [anulado] es verdadero)

No se si esto se tendria que hacer por codigo y en un formulario o bien en
un informe. La verdad es que me da igual, pero necesito que en formularios e
informes me funcione.

Gracias

__________ Information from ESET Smart Security, version of virus signature
database 7034 (20120406) __________

The message was checked by ESET Smart Security.

http://www.eset.com




__________ Information from ESET Smart Security, version of virus signature database 7034 (20120406) __________

The message was checked by ESET Smart Security.

http://www.eset.com
Respuesta Responder a este mensaje
#2 Victor
07/04/2012 - 07:56 | Informe spam
Gracias Emilio,

pues parece que si que me funciona en la consulta. Eso si, por el momento solo lo he conseguido con un campo calculado, y la sintaxis que uso es esta:

=SiInm([Anulada];[VaseImponible]=0;[VaseImponible])

Pero de momento solo me ha ido cuando el campo es numérico, cuando lo pruebo con uno de texto no he conseguido que vaya.

Necesitaría que algo asi funcionara (pero este ejemplo no vale):

=SiInm([Anulada];[NIF]="ANULADO";[NIF]) > en este caso no es un campo calculado, sino directo de la tabla.

U otro ejemplo que necesitaría que me funcionara (y no vale el que muestro):

=SiInm([Anulada];[Fecha]="ANULADO";[Fecha]) --> claro, en este caso es campo de fecha y directo de tabla. Aunque no ponga el texto que digo ya me iría bien si pusiera "0" o inclusive que estuviera vacío, pero que deje de mostrarme la fecha de la tabla (para la condición concreta, claro).

Gracias por ayudar, seguiré probando.

Victor
Respuesta Responder a este mensaje
#3 Emilio
07/04/2012 - 13:19 | Informe spam
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
Hola!
no entiendo lo que dices de que ese ejemplo no vale, ¿que quieres decir con
ello?

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
miliuco56 ALGARROBA hotmail PUNTO com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
"Victor" escribió en el mensaje de noticias
news:
Gracias Emilio,

pues parece que si que me funciona en la consulta. Eso si, por el momento
solo lo he conseguido con un campo calculado, y la sintaxis que uso es esta:

=SiInm([Anulada];[VaseImponible]=0;[VaseImponible])

Pero de momento solo me ha ido cuando el campo es numérico, cuando lo pruebo
con uno de texto no he conseguido que vaya.

Necesitaría que algo asi funcionara (pero este ejemplo no vale):

=SiInm([Anulada];[NIF]="ANULADO";[NIF]) > en este caso no es un campo
calculado, sino directo de la tabla.

U otro ejemplo que necesitaría que me funcionara (y no vale el que muestro):

=SiInm([Anulada];[Fecha]="ANULADO";[Fecha]) --> claro, en este caso es campo
de fecha y directo de tabla. Aunque no ponga el texto que digo ya me iría
bien si pusiera "0" o inclusive que estuviera vacío, pero que deje de
mostrarme la fecha de la tabla (para la condición concreta, claro).

Gracias por ayudar, seguiré probando.

Victor

__________ Information from ESET Smart Security, version of virus signature
database 7034 (20120406) __________

The message was checked by ESET Smart Security.

http://www.eset.com




__________ Information from ESET Smart Security, version of virus signature database 7034 (20120406) __________

The message was checked by ESET Smart Security.

http://www.eset.com
Respuesta Responder a este mensaje
#4 Victor
07/04/2012 - 20:53 | Informe spam
Hola Emilio.
Ante todo gracias por tu tiempo.

Veamos, estoy en un informe. Este se alimenta de una consulta, y de los cambios que yo quiero aplicar este cambio iff, algunos son calculados (y numéricos, claro). Bien, pues cuando aplico la funcion tal cual que:
=SiInm([Anulada];[VaseImponible]=0;[VaseImponible])
el resultado es "0" si el cambio si/no [Anulada] esta marcado (verdadero). Cuando no, sencillamente me muestra el valor que tenga que ser (el calculado).
Bueno, pues cuando yo lo quiero aplicar en otros campos, por ejemplo:
Un campo de fecha, no calculado, usando esta funcion:
=SiInm([Anulada];[fechaExp]="01/01/1901";[fechaExp])
pues me da el error #Error en cualquier campo que debiera no hacer cambios, y en el que si (o sea, en el que [Anulada] es "verdadero") pues me muestra #¡Tipo!
Por eso digo que no me va. Probablemente no tenga bien puesta la función en este caso.
Otro ejemplo seria con un campo de texto, no calculado, usando esta funcion:
=SiInm([Anulada];[NIF]="NULO";[NIF])
Y me da el mismo resultado que el de fecha.
He probado haciendo cambios poniendo =SiInm(([Anulada]),([NIF]="NULO"),([NIF])) o =SiInm(([Anulada]);([NIF]="NULO");([NIF])) y nada, o me da el mismo resultado (con los ";") o sencillamente me da error y no me deja proceder con dicha función.

Espero que ahora se entienda. Estoy por probar de hacer un campo calculado para estos de texto y fecha, a ver si asi funciona. Yo no le sé ver mas a esto.

Gracias

Victor
Respuesta Responder a este mensaje
#5 Emilio
07/04/2012 - 21:48 | Informe spam
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
Hola!
el error de tipo se debe a que estás comparando una fecha con una cadena,
"01/01/1901" es una cadena, no una fecha, la fecha debe ir en formato
mm/dd/yy y entre almohadillas (#).
En el caso de nulo es exactamente lo mismon "nulo" es una cadena para
comparar con null habrás de usar Is Null

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
miliuco56 ALGARROBA hotmail PUNTO com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
"Victor" escribió en el mensaje de noticias
news:
Hola Emilio.
Ante todo gracias por tu tiempo.

Veamos, estoy en un informe. Este se alimenta de una consulta, y de los
cambios que yo quiero aplicar este cambio iff, algunos son calculados (y
numéricos, claro). Bien, pues cuando aplico la funcion tal cual que:
=SiInm([Anulada];[VaseImponible]=0;[VaseImponible])
el resultado es "0" si el cambio si/no [Anulada] esta marcado (verdadero).
Cuando no, sencillamente me muestra el valor que tenga que ser (el
calculado).
Bueno, pues cuando yo lo quiero aplicar en otros campos, por ejemplo:
Un campo de fecha, no calculado, usando esta funcion:
=SiInm([Anulada];[fechaExp]="01/01/1901";[fechaExp])
pues me da el error #Error en cualquier campo que debiera no hacer cambios,
y en el que si (o sea, en el que [Anulada] es "verdadero") pues me muestra
#¡Tipo!
Por eso digo que no me va. Probablemente no tenga bien puesta la función en
este caso.
Otro ejemplo seria con un campo de texto, no calculado, usando esta funcion:
=SiInm([Anulada];[NIF]="NULO";[NIF])
Y me da el mismo resultado que el de fecha.
He probado haciendo cambios poniendo
=SiInm(([Anulada]),([NIF]="NULO"),([NIF])) o
=SiInm(([Anulada]);([NIF]="NULO");([NIF])) y nada, o me da el mismo
resultado (con los ";") o sencillamente me da error y no me deja proceder
con dicha función.

Espero que ahora se entienda. Estoy por probar de hacer un campo calculado
para estos de texto y fecha, a ver si asi funciona. Yo no le sé ver mas a
esto.

Gracias

Victor

__________ Information from ESET Smart Security, version of virus signature
database 7036 (20120407) __________

The message was checked by ESET Smart Security.

http://www.eset.com




__________ Information from ESET Smart Security, version of virus signature database 7036 (20120407) __________

The message was checked by ESET Smart Security.

http://www.eset.com
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida