debo usar ifelse o select case? que hago?

08/07/2003 - 04:51 por mabus | Informe spam
Hola.

Soy novato en access y necesito su ayuda ya que estoy haciendo esto de

forma autodidacta, gracias :)

tengo un programa que si introduces peso, edad, sexo y estatura dice
el

peso ideal, lo cual ya funciona muy bien por suerte, lo que necesito

ahora es que me escriba un mensaje en un cuadro de texto (Texto58),
según el

resultado, por ejemplo, si el peso de la persona (cuadro "peso") es
mayor al valor que me aparece en el cuadro llamado p3DE (la tercera
desviación estandar) me escriba en "texto58" que tiene

sobrepeso, que si el peso está entre la desviación estándar +1 y -1 me

escriba que está en rango normal y así sucesivamente, me dijeron que
lo

hiciera con select case pero como no entiendo utilicé el if then else

... y creo que está bien estructurado, solo que no funciona

¿Alguien sabe porqué y que debo cambiarle?


Private Sub texto58_AfterUpdate()
If peso.Value > p3DE.Value Then
Texto58 = "Obesidad, mayor de 3 D.E."
ElseIf peso.Value < p3DE.Value And peso.Value > p2DE.Value Then
Texto58 = "Obesidad, mayor de 2 D.E."
ElseIf peso.Value < p2DE.Value And peso.Value > p1DE.Value Then
Texto58 = "Sobrepeso, mayor de 1 D.E."
ElseIf peso.Value < p1DE.Value And peso.Value > m1De.Value Then
Texto58 = "Peso en rango normal"
ElseIf peso.Value < m1De.Value And peso.Value > m2DE.Value Then
Texto58 = "Desnutrición leve, mayor a 1 D.E."
ElseIf peso.Value < m2DE.Value And peso.Value > m3DE.Value Then
Texto58 = "Desnutrición moderada, mayor a 2 D.E."
ElseIf peso.Value < m3DE.Value Then
Texto58 = "Desnutrición severa, mayor a 3 D.E."
Else
Texto58 = "algo anda muy mal"
End If
End Sub


me dijeron que el ".value" solo se usa cuando es "si/no", pero sin él

igual tampoco me funciona, les agradezco si saben la respuesta.

Salvador

Preguntas similare

Leer las respuestas

#1 Rosa
08/07/2003 - 07:38 | Informe spam
Hola Howsser,

Trata de anteponer a los campos y cuadros de texto "Me!", para hacer
referencia al formulario que se está utilizando en el momento de la
evaluación.

Me!Texto58
Me!peso


Y por su puesto con una caja de texto no utilices el Value. Para averiguar
el contenido de una caja de texto o establecer un valor se interpreta que
haces referencia a su contenido.

Otra posibilidad es utilizar la función SIINM, en la propiedad Origen del
Registro del campo de texto independiente, en tu caso TEXTO58, de esta
manera siempre tendrías el resultado a la vista, pero veo que son muchas
comprobaciones las que haces y puede ser "eterno".

Espero te sirva la ayuda,
Un saludo! :))

"Howsser" escribió en el mensaje
news:
Hola.

Soy novato en access y necesito su ayuda ya que estoy haciendo esto de

forma autodidacta, gracias :)

tengo un programa que si introduces peso, edad, sexo y estatura dice
el

peso ideal, lo cual ya funciona muy bien por suerte, lo que necesito

ahora es que me escriba un mensaje en un cuadro de texto (Texto58),
según el

resultado, por ejemplo, si el peso de la persona (cuadro "peso") es
mayor al valor que me aparece en el cuadro llamado p3DE (la tercera
desviación estandar) me escriba en "texto58" que tiene

sobrepeso, que si el peso está entre la desviación estándar +1 y -1 me

escriba que está en rango normal y así sucesivamente, me dijeron que
lo

hiciera con select case pero como no entiendo utilicé el if then else

... y creo que está bien estructurado, solo que no funciona

¿Alguien sabe porqué y que debo cambiarle?


Private Sub texto58_AfterUpdate()
If peso.Value > p3DE.Value Then
Texto58 = "Obesidad, mayor de 3 D.E."
ElseIf peso.Value < p3DE.Value And peso.Value > p2DE.Value Then
Texto58 = "Obesidad, mayor de 2 D.E."
ElseIf peso.Value < p2DE.Value And peso.Value > p1DE.Value Then
Texto58 = "Sobrepeso, mayor de 1 D.E."
ElseIf peso.Value < p1DE.Value And peso.Value > m1De.Value Then
Texto58 = "Peso en rango normal"
ElseIf peso.Value < m1De.Value And peso.Value > m2DE.Value Then
Texto58 = "Desnutrición leve, mayor a 1 D.E."
ElseIf peso.Value < m2DE.Value And peso.Value > m3DE.Value Then
Texto58 = "Desnutrición moderada, mayor a 2 D.E."
ElseIf peso.Value < m3DE.Value Then
Texto58 = "Desnutrición severa, mayor a 3 D.E."
Else
Texto58 = "algo anda muy mal"
End If
End Sub


me dijeron que el ".value" solo se usa cuando es "si/no", pero sin él

igual tampoco me funciona, les agradezco si saben la respuesta.

Salvador
Respuesta Responder a este mensaje
#2 McPegasus
08/07/2003 - 09:06 | Informe spam
Hola Rosa,

¿¿has probado a utilizar el . en lugar de !???

Tenemos un par de ventajas por utilizar el puntito, al compilar en caso de
no estar bien escrito el nombre del control, ""error capturado", y al
escribir Me. te salen todos los métodos y propiedades del formulario o
informe.







Filosofía compartida: "regalamos conocimientos, no tiempo."


Un Saludo,

Rafael Andrada C.
McPegasus
Valencia (es)

[MVP - Access MS]

www.mcpegasus.com

"Rosa" escribió en el mensaje
news:
Hola Howsser,

Trata de anteponer a los campos y cuadros de texto "Me!", para hacer
referencia al formulario que se está utilizando en el momento de la
evaluación.

Me!Texto58
Me!peso


Y por su puesto con una caja de texto no utilices el Value. Para averiguar
el contenido de una caja de texto o establecer un valor se interpreta que
haces referencia a su contenido.

Otra posibilidad es utilizar la función SIINM, en la propiedad Origen del
Registro del campo de texto independiente, en tu caso TEXTO58, de esta
manera siempre tendrías el resultado a la vista, pero veo que son muchas
comprobaciones las que haces y puede ser "eterno".

Espero te sirva la ayuda,
Un saludo! :))

"Howsser" escribió en el mensaje
news:
> Hola.
>
> Soy novato en access y necesito su ayuda ya que estoy haciendo esto de
>
> forma autodidacta, gracias :)
>
> tengo un programa que si introduces peso, edad, sexo y estatura dice
> el
>
> peso ideal, lo cual ya funciona muy bien por suerte, lo que necesito
>
> ahora es que me escriba un mensaje en un cuadro de texto (Texto58),
> según el
>
> resultado, por ejemplo, si el peso de la persona (cuadro "peso") es
> mayor al valor que me aparece en el cuadro llamado p3DE (la tercera
> desviación estandar) me escriba en "texto58" que tiene
>
> sobrepeso, que si el peso está entre la desviación estándar +1 y -1 me
>
> escriba que está en rango normal y así sucesivamente, me dijeron que
> lo
>
> hiciera con select case pero como no entiendo utilicé el if then else
>
> ... y creo que está bien estructurado, solo que no funciona
>
> ¿Alguien sabe porqué y que debo cambiarle?
>
>
> Private Sub texto58_AfterUpdate()
> If peso.Value > p3DE.Value Then
> Texto58 = "Obesidad, mayor de 3 D.E."
> ElseIf peso.Value < p3DE.Value And peso.Value > p2DE.Value Then
> Texto58 = "Obesidad, mayor de 2 D.E."
> ElseIf peso.Value < p2DE.Value And peso.Value > p1DE.Value Then
> Texto58 = "Sobrepeso, mayor de 1 D.E."
> ElseIf peso.Value < p1DE.Value And peso.Value > m1De.Value Then
> Texto58 = "Peso en rango normal"
> ElseIf peso.Value < m1De.Value And peso.Value > m2DE.Value Then
> Texto58 = "Desnutrición leve, mayor a 1 D.E."
> ElseIf peso.Value < m2DE.Value And peso.Value > m3DE.Value Then
> Texto58 = "Desnutrición moderada, mayor a 2 D.E."
> ElseIf peso.Value < m3DE.Value Then
> Texto58 = "Desnutrición severa, mayor a 3 D.E."
> Else
> Texto58 = "algo anda muy mal"
> End If
> End Sub
>
>
> me dijeron que el ".value" solo se usa cuando es "si/no", pero sin él
>
> igual tampoco me funciona, les agradezco si saben la respuesta.
>
> Salvador


Respuesta Responder a este mensaje
#3 Rosa
08/07/2003 - 09:23 | Informe spam
je,je,...si, si que me dado cuenta después de lanzar el mensaje, yo
generalmente utilizo el puntito porque ya me ha pasado alguna vez que al
compilar las funciones, no me lo compilaba correctamente y aún sabiendo que
estaba bien no me quedaba otra que comentarlo pa seguir compilando, hasta
que descubrí lo de los puntitos, je,je ;). (Egque...se lo escrito de memoria
y ma salío el signo de la admiración).

Un saludo!

"McPegasus" escribió en el mensaje
news:e0Yo7$
Hola Rosa,

¿¿has probado a utilizar el . en lugar de !???

Tenemos un par de ventajas por utilizar el puntito, al compilar en caso de
no estar bien escrito el nombre del control, ""error capturado", y al
escribir Me. te salen todos los métodos y propiedades del formulario o
informe.







Filosofía compartida: "regalamos conocimientos, no tiempo."


Un Saludo,

Rafael Andrada C.
McPegasus
Valencia (es)

[MVP - Access MS]

www.mcpegasus.com

"Rosa" escribió en el mensaje
news:
> Hola Howsser,
>
> Trata de anteponer a los campos y cuadros de texto "Me!", para hacer
> referencia al formulario que se está utilizando en el momento de la
> evaluación.
>
> Me!Texto58
> Me!peso
>
>
> Y por su puesto con una caja de texto no utilices el Value. Para


averiguar
> el contenido de una caja de texto o establecer un valor se interpreta


que
> haces referencia a su contenido.
>
> Otra posibilidad es utilizar la función SIINM, en la propiedad Origen


del
> Registro del campo de texto independiente, en tu caso TEXTO58, de esta
> manera siempre tendrías el resultado a la vista, pero veo que son muchas
> comprobaciones las que haces y puede ser "eterno".
>
> Espero te sirva la ayuda,
> Un saludo! :))
>
> "Howsser" escribió en el mensaje
> news:
> > Hola.
> >
> > Soy novato en access y necesito su ayuda ya que estoy haciendo esto de
> >
> > forma autodidacta, gracias :)
> >
> > tengo un programa que si introduces peso, edad, sexo y estatura dice
> > el
> >
> > peso ideal, lo cual ya funciona muy bien por suerte, lo que necesito
> >
> > ahora es que me escriba un mensaje en un cuadro de texto (Texto58),
> > según el
> >
> > resultado, por ejemplo, si el peso de la persona (cuadro "peso") es
> > mayor al valor que me aparece en el cuadro llamado p3DE (la tercera
> > desviación estandar) me escriba en "texto58" que tiene
> >
> > sobrepeso, que si el peso está entre la desviación estándar +1 y -1 me
> >
> > escriba que está en rango normal y así sucesivamente, me dijeron que
> > lo
> >
> > hiciera con select case pero como no entiendo utilicé el if then else
> >
> > ... y creo que está bien estructurado, solo que no funciona
> >
> > ¿Alguien sabe porqué y que debo cambiarle?
> >
> >
> > Private Sub texto58_AfterUpdate()
> > If peso.Value > p3DE.Value Then
> > Texto58 = "Obesidad, mayor de 3 D.E."
> > ElseIf peso.Value < p3DE.Value And peso.Value > p2DE.Value Then
> > Texto58 = "Obesidad, mayor de 2 D.E."
> > ElseIf peso.Value < p2DE.Value And peso.Value > p1DE.Value Then
> > Texto58 = "Sobrepeso, mayor de 1 D.E."
> > ElseIf peso.Value < p1DE.Value And peso.Value > m1De.Value Then
> > Texto58 = "Peso en rango normal"
> > ElseIf peso.Value < m1De.Value And peso.Value > m2DE.Value Then
> > Texto58 = "Desnutrición leve, mayor a 1 D.E."
> > ElseIf peso.Value < m2DE.Value And peso.Value > m3DE.Value Then
> > Texto58 = "Desnutrición moderada, mayor a 2 D.E."
> > ElseIf peso.Value < m3DE.Value Then
> > Texto58 = "Desnutrición severa, mayor a 3 D.E."
> > Else
> > Texto58 = "algo anda muy mal"
> > End If
> > End Sub
> >
> >
> > me dijeron que el ".value" solo se usa cuando es "si/no", pero sin él
> >
> > igual tampoco me funciona, les agradezco si saben la respuesta.
> >
> > Salvador
>
>


Respuesta Responder a este mensaje
#4 McPegasus
08/07/2003 - 09:43 | Informe spam
:)) la historia se repite, en ocasiones añoro los comienzos.




Filosofía compartida: "regalamos conocimientos, no tiempo."


Un Saludo,

Rafael Andrada C.
McPegasus
Valencia (es)

[MVP - Access MS]

www.mcpegasus.com

"Rosa" escribió en el mensaje
news:
je,je,...si, si que me dado cuenta después de lanzar el mensaje, yo
generalmente utilizo el puntito porque ya me ha pasado alguna vez que al
compilar las funciones, no me lo compilaba correctamente y aún sabiendo


que
estaba bien no me quedaba otra que comentarlo pa seguir compilando, hasta
que descubrí lo de los puntitos, je,je ;). (Egque...se lo escrito de


memoria
y ma salío el signo de la admiración).

Un saludo!

"McPegasus" escribió en el mensaje
news:e0Yo7$
> Hola Rosa,
>
> ¿¿has probado a utilizar el . en lugar de !???
>
> Tenemos un par de ventajas por utilizar el puntito, al compilar en caso


de
> no estar bien escrito el nombre del control, ""error capturado", y al
> escribir Me. te salen todos los métodos y propiedades del formulario o
> informe.
>
>
>
>
>
>
>
> Filosofía compartida: "regalamos conocimientos, no tiempo."
>
>
> Un Saludo,
>
> Rafael Andrada C.
> McPegasus
> Valencia (es)
>
> [MVP - Access MS]
>
> www.mcpegasus.com
>
> "Rosa" escribió en el mensaje
> news:
> > Hola Howsser,
> >
> > Trata de anteponer a los campos y cuadros de texto "Me!", para hacer
> > referencia al formulario que se está utilizando en el momento de la
> > evaluación.
> >
> > Me!Texto58
> > Me!peso
> >
> >
> > Y por su puesto con una caja de texto no utilices el Value. Para
averiguar
> > el contenido de una caja de texto o establecer un valor se interpreta
que
> > haces referencia a su contenido.
> >
> > Otra posibilidad es utilizar la función SIINM, en la propiedad Origen
del
> > Registro del campo de texto independiente, en tu caso TEXTO58, de esta
> > manera siempre tendrías el resultado a la vista, pero veo que son


muchas
> > comprobaciones las que haces y puede ser "eterno".
> >
> > Espero te sirva la ayuda,
> > Un saludo! :))
> >
> > "Howsser" escribió en el mensaje
> > news:
> > > Hola.
> > >
> > > Soy novato en access y necesito su ayuda ya que estoy haciendo esto


de
> > >
> > > forma autodidacta, gracias :)
> > >
> > > tengo un programa que si introduces peso, edad, sexo y estatura dice
> > > el
> > >
> > > peso ideal, lo cual ya funciona muy bien por suerte, lo que necesito
> > >
> > > ahora es que me escriba un mensaje en un cuadro de texto (Texto58),
> > > según el
> > >
> > > resultado, por ejemplo, si el peso de la persona (cuadro "peso") es
> > > mayor al valor que me aparece en el cuadro llamado p3DE (la tercera
> > > desviación estandar) me escriba en "texto58" que tiene
> > >
> > > sobrepeso, que si el peso está entre la desviación estándar +1 y -1


me
> > >
> > > escriba que está en rango normal y así sucesivamente, me dijeron que
> > > lo
> > >
> > > hiciera con select case pero como no entiendo utilicé el if then


else
> > >
> > > ... y creo que está bien estructurado, solo que no funciona
> > >
> > > ¿Alguien sabe porqué y que debo cambiarle?
> > >
> > >
> > > Private Sub texto58_AfterUpdate()
> > > If peso.Value > p3DE.Value Then
> > > Texto58 = "Obesidad, mayor de 3 D.E."
> > > ElseIf peso.Value < p3DE.Value And peso.Value > p2DE.Value Then
> > > Texto58 = "Obesidad, mayor de 2 D.E."
> > > ElseIf peso.Value < p2DE.Value And peso.Value > p1DE.Value Then
> > > Texto58 = "Sobrepeso, mayor de 1 D.E."
> > > ElseIf peso.Value < p1DE.Value And peso.Value > m1De.Value Then
> > > Texto58 = "Peso en rango normal"
> > > ElseIf peso.Value < m1De.Value And peso.Value > m2DE.Value Then
> > > Texto58 = "Desnutrición leve, mayor a 1 D.E."
> > > ElseIf peso.Value < m2DE.Value And peso.Value > m3DE.Value Then
> > > Texto58 = "Desnutrición moderada, mayor a 2 D.E."
> > > ElseIf peso.Value < m3DE.Value Then
> > > Texto58 = "Desnutrición severa, mayor a 3 D.E."
> > > Else
> > > Texto58 = "algo anda muy mal"
> > > End If
> > > End Sub
> > >
> > >
> > > me dijeron que el ".value" solo se usa cuando es "si/no", pero sin


él
> > >
> > > igual tampoco me funciona, les agradezco si saben la respuesta.
> > >
> > > Salvador
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida