Inicio > Visual Basic > kieleze > Expresiones con Or y And

Expresiones con Or y And

Experto:
Usuario:
Fecha: 13/10/2008
Valoración: (3,00 sobre 5) Categoría: Visual Basic
13/10/2008
kingdiamond, usuario preguntando en Visual Basic
Usuario
¿Se puede en Visual Basic 6.0 que si en una expresión con un Or si la primera de las condiciones es Verdad que no evalúe la segunda ya que va a ser una expresión con valor Verdad? Lo mismo para el And, que cuando la primera de las condiciones valga Falso que no evalúe la segunda ya que va a ser una expresión que vale Falso. MUCHAS GRACIAS EXPERTOS!!!
13/10/2008
kingdiamond, experto respondiendo en Visual Basic
Experto
No sé si se puede hacer directamente porque en un bloque de condiciones se evaluan todas las que estén...
No veo el problema en que evalue las 2 condiciones ya que eso no hace es mucha carga para el procesador...
Y si están las 2 supongo que debe ser que necesitas que alguna de las 2 sean verdadero en el OR y que alguna de las 2 sea falsa en el AND...
Pero si no queres que lo haga igualmente..
Tenes que hacerlo con distintos IF
IF (condicion1) THEN
' que esperamos sea verdadera por el OR para no evaluar la condicion2.
Instrucciones
ELSEIF (condicion2) THEN
'si la primera es falsa entra en esta opción, es parecido al SELECT CASE'
instrucciones
ELSE
'si no es ninguna de las 2 condiciones anteriores y es necesario. Si no, se pone END IF en lugar del ELSE'
END IF

Aunque sigo sin entender porque no queres que se evaluen las 2 condiciones del OR o del AND.

Espeeo haberte ayudado, Desde ya un saludo
Ezequiel
13/10/2008
kingdiamond, usuario preguntando en Visual Basic
Usuario
Aunque no lo parezca la razón para hacerlo es lógica... Te voy a poner un ejemplo:
- Imaginate que estás haciendo un proceso con ruptura sobre un recordset en el cual la primera condicion del while sea el EOF y en la segunda una comparación con un campo del recordset. En el caso de que llegue a EOF el programa peta porque también compara la segunda condición y como está en EOF no puede acceder a un campo del Recordset y entonces peta.
13/10/2008
kingdiamond, experto respondiendo en Visual Basic
Experto
Pero que yo sepa la unica forma de lograrlo es con distintos if.
A ver si entiendo
vos necesitas que en un while, si es distinto de eot que compare un campo eso se hace asi...
While not(rs.eof) do
if rs.campo = variable then
instrucciones endd if
end while

Espero haberte ayudado
para lograrlo vas a tener que anidar while o las condiciones

saludos, Ezequiel


13/10/2008
kingdiamond, usuario preguntando en Visual Basic
Usuario
Si es la única manera...
Enlaces patrocinados