Anda mal el IF, o estoy haciendo algo mal? Visual 6.0

Iniciado por RiasChan, 12 Marzo 2018, 02:10 AM

0 Miembros y 1 Visitante están viendo este tema.

RiasChan

Eso, tan simple como eso, No entiende la sentencia IF, no anda! ya probe con varias combinaciones y no anda, que puedo hacer?

La idea es la siguiente, yo tengo un stock y un punto de reposicion

Por ejemplo,

Stock 50
Punto de reposición 20

Si yo tengo más de 20, deberia decirme "Stock normal"
si tengo menos de 20, "Faltante de stock"
y si tengo 0 "Sin Stock"

bueno la cosa, es que el IF que hice es este:



Private Sub Command1_Click()
If Text1.Text = 0 Then
MsgBox "Stock 0 !!!!!"
Else
If Text1.Text > Text2.Text Then
MsgBox "Stock mayor"
Exit Sub
Else
MsgBox "Stock menor"
Exit Sub
End If
End If
End Sub


Pero que rayos, el if no anda! si por ejemplo

en el txt de stock pongo 2
y en el txt de reposicion pongo 10, deberia decirme "Stock menor" ya que hay pocas unidades, hay menos unidades de las que deberia tener para avisarme (10)

Y deberia ponerme "Stock menor", Pero no! me pone stock mayor! y encima eso pasa asi le ponga cualquier numero, mayor o menor a 10, siempre sale por el lado del mayor, WTF?

Seguramente tengo algunos errrores menores en el codigo, pero por que sale por el positivo cuando es negativo?


engel lex

estás comparando el texto de las cajas, para comparar el valor debes usar Val(Text1.Text)

por otro lado por qué VB6? es decir, ya vb6 se daba como obsoleto cuando entró windows vista... debía morir con XP, deberías aprender VB.NET que es su versión "moderna" que hacer uso de la .NET framework
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

RiasChan

Mi objetivo ahora es terminar este proyecto que tenog colgado desde el 2006 cuando aprendi a programar por 1ra vez... mi 2do objetivo es domnar .net, y si me hace falta, Java. Pero con saber .net y para ampliar sabiduria en otros lenguajes java, ya estaria conforme en esta vida con los lenguajes que quisiera saber. Muchas gracias por esto, ahora lo pruebo,

Eleкtro

#3
¿"Text1 es mayor que Text2"?, sí, lo es mientras lo sigas comparando como texto, es decir, como una ordenación alfanumérica clásica donde "2" es mayor que "10"... como puedes comprobar en la siguiente imagen aleatoria de ejemplo:

Cita de: https://blog.codinghorror.com/sorting-for-humans-natural-sort-order/

( en Wikipedia tienes otro ejemplo para apreciar la diferencia: https://en.wikipedia.org/wiki/Natural_sort_order )

Si lo que necesitas es tratar tipos de datos numéricos pues entonces debes hacer eso, convertir el valor del tipo String al tipo primitivo Integer, no comparar directamente strings. Puedes utilizar la función Val() para ese propósito como ya te ha explicado el compañero @Engel Lex, aunque lo cierto es que no es la solución más estable si por descuido tu programa permite evaluar cualquier string que no sea numérico y no controlas ese escenario de error, y también por que el tipo de retorno si no recuerdo mal en VB6 era Double... lo cual no es el más adecuado (aunque cumpla su funcionalidad igualmente).

Saludos.








RiasChan

Hola, justamente por eso último que dices bloquié en el txt cualquier ingreso de palabras, puntos o simbolos, sólo dejé la coma y numeros. Pero me surigó otro problema, y cree el otro topic, tal vez puedas ayudarme ahi tambien, gracias!