Visual Basic - Problemas con if ..... Cosa de locos

Life is soft - evento anual de software empresarial
   
Vista:

Problemas con if ..... Cosa de locos

Publicado por Fernando (16 intervenciones) el 21/01/2011 12:35:48
Estimados tengo este problema y me va a volver loco:

Dim iInscr, iMax As Integer

iInscr = txtCantInscriptos.Text
iMax = txtMaximo.Text

If iInscr <= iMax Then
txtSeries.Text = iInscr
Else
...................
....................
end if

Hasta aca todo fantastico, ahora supongamos que iInscr=9 y iMax=5 el condicional funciona muy bien, pero si iInscr vale 10 o mas el condicional arroja verdadero y ejecuta txtSeries.tex =Iinscr.

Que le esta pasando a esta cosa????

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con if ..... Cosa de locos

Publicado por Memos (12 intervenciones) el 21/01/2011 21:13:09
intenta lo siguiente
Dim iInscr as Interger , iMax As Integer

iInscr = val(txtCantInscriptos)
iMax = val(txtMaximo)

'Les quite la propiedad .text porque es la Propiedad por default que tomara cuando no se la poner :)

If iInscr <= iMax Then
txtSeries = iInscr
Else
...................
....................
end if

Si te explicas un poco mas lo que deseas obtener, te podria ayudar un poco mas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con if ..... Cosa de locos

Publicado por Miguel (17 intervenciones) el 24/01/2011 16:18:54
Macho, te está haciendo una comparación alfanumérica en la que 10 es menor que 5 por supuesto.

Prueba con If CInt(iInscr) <= CInt(iMax) Then
Pero ojo con que no se te quede ninguno vacío que dará error.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con if ..... Cosa de locos

Publicado por jose (2 intervenciones) el 26/01/2011 15:21:53
buena respuesta miguel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con if ..... Cosa de locos

Publicado por pepe (20 intervenciones) el 24/01/2011 19:04:01
Soluciones al problema hay muchas, pero es conveniente que alguien le explique a Fernando y al resto de lectores lo que está pasando para que no comentan el mismo error.

El error es muy simple:

Dim iInscr, iMax As Integer

Estamos definiendo iInscr como tipo Variant que es el tipo por defecto cuando no se indica. En otros lenguajes como C++ sería valido int iInscr, iMax; pero en Visual Basic no funciona asi. Hay que indicar explicitamente los tipos para cada variable:

Dim iInscr As Integer, iMax As Integer

Utilizar Val() para convertir String a Integer siempre es conveniente. Además, bueno es acostumbrarse a usar la ventana de inspecciones, donde podríamos haber detectado que iInscr tenía un valor String en vez de Integer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar