PDF de programación - Curso de VB - Capítulo 4

Imágen de pdf Curso de VB - Capítulo 4

Curso de VB - Capítulo 4gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 7 de Febrero del 2018)
646 visualizaciones desde el 7 de Febrero del 2018
278,1 KB
18 paginas
Creado hace 11a (24/09/2012)
CURSO DE VB

CAPÍTULO 41

Índice de contenido
BLOQUES DE DECISIÓN..................................................................................................................2
BLOQUE IF...THEN...ELSE...END IF...........................................................................................2
UN CASO ESPECIAL: EL ELSEIF...........................................................................................3
LA FUNCIÓN IIF............................................................................................................................4
IIF ANIDADOS..........................................................................................................................5
BLOQUE SELECT CASE...END SELECT...................................................................................6
VALOR DIRECTO.....................................................................................................................6
VALOR CON COMPARADOR LÓGICO.................................................................................8
BLOQUE FOR...NEXT...................................................................................................................9
BLOQUE FOR EACH...NEXT.....................................................................................................12
BLOQUE WHILE...WEND..........................................................................................................13
BLOQUE DO...LOOP Y SUS VARIACIONES............................................................................14
DO WHILE... LOOP.................................................................................................................14
DO UNTIL... LOOP.................................................................................................................16
OTRAS VARIACIONES DE ESCRITURA DEL BLOQUE DO............................................17
UN BLOQUE ESPECIAL: WITH...END WITH..............................................................................17

1

La BD donde están los ejemplos de este capítulo os la podéis bajar aquí.

Visítame en http://siliconproject.com.ar/neckkito/

1

BLOQUES DE DECISIÓN

BLOQUE IF...THEN...ELSE...END IF

Ya hemos visto en capítulos anteriores el uso de esta
función, pero vamos a detenernos brevemente en ella dado
que hablamos de bloques de decisión.

Evidentemente, el esquema de funcionamiento de este bloque es el siguiente:

SI se cumple una condición
Realiza unas acciones
SI NO se cumple la condición
Realiza Otras acciones

ACABA

Lo anterior es la versión “extensa” del IF. La segunda parte, la SI NO, se puede omitir.

Incluso hay una versión “súper-reducida”, que representa una sola línea de código, en la cual
no necesitamos decirle que ACABE.

Vamos a ver las tres posibilidades a través de un ejemplo.

1.- En una base de datos nueva creamos un formulario en blanco. En él insertamos tres
cuadros de texto.

2.- Sacamos las propiedades del primer cuadro de texto y nos vamos a la pestaña Otras →
Nombre, y le escribimos txt1. El segundo será txt2 y el tercero txtResultado

3.- Añadimos un botón de comando, al que pondremos de nombre cmdSuma. En el evento “Al
hacer click” le generamos el siguiente código:


Private Sub cmdSuma_Click()
'Bloque If super-reducido
If IsNull(Me.txt1.Value) Then Exit Sub
If IsNull(Me.txt2.Value) Then Exit Sub

'Bloque if reducido
If Not IsNumeric(Me.txt1.Value) Then
MsgBox "El valor introducido debe ser un número", vbExclamation, "INCORRECTO"
Exit Sub
End If

If Not IsNumeric(Me.txt2.Value) Then
MsgBox "El valor introducido debe ser un número", vbExclamation, "INCORRECTO"
Exit Sub
End If

'Bloque if extenso
If CInt(Me.txt1.Value) + CInt(Me.txt2.Value) > 11 Then
'Lanzamos un aviso y situamos el resultado en txtResultado
MsgBox "El valor introducido es mayor que 10", vbExclamation, "MAYOR QUE 10"

Visítame en http://siliconproject.com.ar/neckkito/

2

Me.txtResultado = CInt(Me.txt1.Value) + CInt(Me.txt2.Value)
Else
MsgBox "El valor introducido es menor que 10", vbExclamation, "MENOR QUE 10"

Me.txtResultado.Value = CInt(Me.txt1.Value) +
CInt(Me.txt2.Value)
End If
End Sub


Si analizamos el código veremos que:

En el bloque if súper-reducido la única línea que hay lo que hace es comprobar si se ha

introducido algún valor. Si no hay valor sale del proceso. Como podemos ver, aquí no hemos
utilizado el End If
En el If reducido comprobamos que el valor introducido sea un valor numérico. Aquí hay

implícitas dos opciones: que sea numérico o que no. Sin embargo, si es numérico nos interesa
que se siga ejecutando el código (esa sería la acción de un hipotético ELSE). Para solventar la
mecánica anterior lo que hacemos es introducir una interrupción en el proceso si se comprueba
que el valor introducido no es numérico. Por ello utilizamos un IF... End If, de manera que sólo
actúa si se cumple la condición (que no sea numérico).
En el If extenso sí evaluamos dos condiciones: que sea mayor que 10 o no. En ambos

casos nos interesa escribir el resultado en txtResultado. De ahí que necesitemos esta
estructura: IF... se cumple la condición haz esto; SI NO (ELSE) haz esto otro. Evidentemente
en este caso sí debemos cerrar el bloque con un END IF.

Una última puntualización al código: hemos tenido que utilizar un conversor de valores (CInt).
Ello es así porque, por defecto, Access entiende que los valores introducidos son texto (aunque
si es un número pueda entender que es numérico en primera instancia). Si no hubiéramos
introducido ese conversor los resultados obtenidos hubieran sido sorprendentes para nosotros.
Hay que ir mucho cuidado con esto precisamente para que nuestros códigos no den resultados
“erróneos”.

Es decir, si no hubiéramos puesto el conversor el proceso del código hubiera sido el siguiente:
Valor en txt1: 1
Valor en txt2: 3
Compruebo si es numérico
salta la comprobación de IsNumeric
Operación que realiza Access: 1 + 3 = 13
Mensaje que lanza: “Es mayor que 10”
Valor en txtResultado: 13

Access entiende que es texto que puede ser numérico

Pero Access sigue considerando ese valor como texto.







No nos



Si queréis probarlo quitando los CInt veréis el comportamiento que os comentaba.

Por cierto, CInt significaría “Conversión a Integer”.

UN CASO ESPECIAL: EL ELSEIF

Aunque tenemos otros bloques de decisión que podrían considerarse más idóneos para realizar
lo que os voy a explicar a continuación, no podemos dejar el IF sin que, al menos, os mencione
el ElseIf. Esta función nos permite elegir no sólo entre dos opciones, como sería el caso del IF,
sino que podemos analizar más de dos opciones.

La función ElseIf la tenemos que incardinar dentro de un bloque If, y hablando en general
podríamos decir que el bloque diría lo siguiente:

Visítame en http://siliconproject.com.ar/neckkito/

3

Si secumplecondición ENTONCES

PERO SI secumpleotracondición ENTONCES

'Código

'Código2

ACABA

Vamos a verlo con un ejemplo. Aprovecharemos nuestro
formulario FSuma. Añadimos un botón de comando y le
ponemos de nombre cmdElseIf. Al evento “Al hacer click” le
generamos el siguiente código (no añadiremos ninguna
línea de control):


Private Sub cmdElseIf_Click()
If Me.txt1.Value > 5 Then
Me.txtResultado = Me.txt1.Value + Me.txt2.Value
ElseIf Me.txtResultado.Value < 10 Then
Me.txtResultado.Value = Me.txt1.Value * Me.txt2.Value
Else
Me.txtResultado.Value = 0
End If
End Sub

Lo que dice este código es lo siguiente:
SI el valor introducido en txt1 es mayor que cinco entonces
PERO SI el resultado es menor que 10 convertimos el resultado en una multiplicación
EN CASO CONTRARIO el resultado será cero



Resultado será igual a la suma

Tened en cuenta que en el ejemplo sólo hemos utilizado un ELSEIF, pero podríamos haber
puesto todos los ELSEIF que hubiéramos querido.

LA FUNCIÓN IIF

Aunque no corresponda a la idea de “bloque” la función IIF sí nos permite tomar una decisión
“rápida” sobre una situación en la que deba cumplirse una condición o no.

La sintaxis de esta función es la siguiente:

IIF (condición; caso verdadero, caso falso)

Es decir, supongamos que Pedro es rubio. Con el IIF analizaríamos el color de pelo de Pedro y
devolveríamos un mensaje según se cumpla o no la condición. Esto es:

IIF (Pedro=rubio, “Es rubio”, “Es moreno”)

Como se cumple la condición (Pedro es rubio) obtenemos el valor “Es rubio”. Si en ese
momento Pedro se tiñe el pelo de negro la condición no se cumple, por lo que obtendríamos
“Es moreno”.

¿Y cómo se refleja eso en el código?

El operador mod sirve para devolvernos el resto de una división. Si dividimos entre 2 y el resto
es cero se nos está indicando que ese número es par, y si no lo es es impar. La sintaxis sería:

valor mod 2



Nos da el resto de la división valor/2

Visítame en http://siliconproject.com.ar/neckkito/

4

Vamos a aplicar lo anterior a un ejemplo. En nuestro formulario FSumas añadimos un botón de
comando, al que llamaremos cmdIIf. A ese botón de comando le generamos el siguiente
código:


Private Sub cmdIIf_Click()
Dim valor As Integer, resto As Integer
Dim msg As String
valor = Me.txt1.Value
resto = valor Mod 2

msg = IIf(resto = 0, "El número es par", "El número es
impar")


MsgBox msg, vbExclamation, "RESULTADO"
End Sub


Si escribimos un número en nuestro cuadro de texto txt1 y le damos al botón recién creado
sabremos si el número introducido es par o impar.

IIF ANIDADOS

Podemos complicar un poco más la cosa y establecer lo que se denomina IIF anidados: IIF
dentro de IIF. Eso nos permitirá evaluar más de una condición.

Va
  • Links de descarga
http://lwp-l.com/pdf8659

Comentarios de: Curso de VB - Capítulo 4 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad