You are on page 1of 40

Capitulo XI

INDICE

CAPITULO XI

MessageBox Variables de Tipo MsgBoxResult Tipos Funciones Tipo Cadena IF – THEN - ELSE Ejercicio 71 Ejercicio 72 InputBox Ejercicio 73 Format Ejercicio 74 Ejercicio 75 SELECT CASE Ejercicio 76 Ejercicio 77 Ejercicio 78 Ejercicio 79 Funciones Públicas Ejercicio 80 Clases y NameSpace en un Modulo Ejercicio 81 Ejercicio 82 Función Shell Ejercicio 83 Despedida 38 36 35 34 30 30 28 28 26 23 21 19 19 17 16 15 12 11 06 03 03 02 01 02

01

Lenguaje de Programación – Capitulo XI

Programando con Visual Basic 2005

MSGBOX

El MSGBOX es una ventana que nos muestra un mensaje en el centro de la pantalla. Su sintaxis es la siguiente:

MsgBox(Mensaje, Tipo de Mensaje, Titulo)

Por ejemplo:

MsgBox("¿Desea Salir de la Aplicación?", MsgBoxStyle.YesNo, "Sistema")

El mensaje que nos mostrara será el siguiente:

Tipo de Mensaje No No Abortar, Reintentar, Ignorar (Desactivado) Aceptar (Activado) Aceptar (Activado) Aceptar (Activado) Aceptar (Activado) Aceptar (Activado) Aceptar (Activado) Aceptar (Activado) Aceptar, Ayuda (Activado) Aceptar (Activado) Aceptar (Activado y al lado Izquierdo) Aceptar (Activado) Aceptar, Cancelar (Activado) Aceptar (Activado) Aceptar (Activado) Reintentar, Cancelar (Activado) Aceptar (Activado) Icono en el Titulo Si, No (Desactivado) Si, No, Cancelar (Activado)

Icono

Botones (Botón Cerrar)

No No No

No No No No No

No No No No No

Joel Martin Chuco Marrufo 1

Lenguaje de Programación – Capitulo XI

Programando con Visual Basic 2005

Variable tipo MsgBoxResult

La variable tipo MsgBoxResult, almacena los resultados que se obtenga mediante un Message Box, que después no sirva compararala y ejecutar instrucciones, por ejemplo:

Dim Resp As MsgBoxResult Resp = MsgBox("¿Desea Salir?", MsgBoxStyle.YesNo, "Sistema") If Resp = MsgBoxResult.Yes Then Me.Close() End If

Explicación:

Primero declaramos una variable Resp de tipo MsgBoxResult, esta variable almacena el valor devuelto del mensaje, si el usuario responde SI, este valor que es verdadero (True) va a ser comparado con la siguiente instrucción IF que compara la variable Resp, que seria mas o menos así: Si la variables Resp tienes almacenado el valor SI, cerrara la ventana, sino, no hará ninguna instrucción.

FUNCIONES TIPO CADENA

Una cadena es un dato de tipo String (Carácter); es decir se refiere a letras o letras y números, ahora veremos las funciones de cadenas mas utilizadas y posteriormente realizaremos una aplicación para que les quede mas claro, sobre las funciones de cadena.

  

Right: Obtiene de una cadena, una cantidad de caracteres empezando por la derecha: Sintaxis; Microsoft.VisualBasic.Right(Cadena,N) Left: Obtiene de una cadena, una cantidad de caracteres empezando por la izquierda: Sintaxis; Microsoft.VisualBasic.Left(Cadena,N) Mid: Obtiene de una cadena, una cantidad de caracteres a partir de una posición determinada: Sintaxis; Microsoft.VisualBasic.Mid(Cadena,N) Len: Obtiene la longitud de una cadena, es decir la cantidad de caracteres que contiene incluyendo los espacios en blanco: Sintaxis; Len(Cadena) Trim: Quita los espacios en blanco al final de una cadena: Sintaxis; Trim(Cadena) RTrim: Quita los espacios en blanco al final de una cadena: Sintaxis; RTrim(Cadena) LTrim: Quita los espacios en blanco al inicio de una cadena: Sintaxis; LTrim(Cadena) UCase: Convierte una cadena en mayúsculas: Sintaxis; UCase(Cadena) LCase: Convierte una cadena en minúsculas: Sintaxis; LCase(Cadena) StrConv: Convierte una cadena en 3 formas diferentes, en mayúsculas = 1, minúsculas = 2, la primera letra de cada palabra en mayúsculas = 3 : Sintaxis; StrConv(Cadena,Valor) InStr: Obtiene un número que indica la posición de una subcadena dentro de una cadena: Sintaxis; InStr(Cadena,SubCadena)

Joel Martin Chuco Marrufo 2

Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 IF . txtNombre txtDireccion txtTelefono txtCE txtObservaciones btnNuevo btnFinalizar Joel Martin Chuco Marrufo 3 . ahora veremos en las aplicaciones de ventanas. en las consolas de aplicación.ELSE Como ya hemos visto antes esta instrucción condicional. que por cierto no cambian nada. ahora veremos unos cuantos ejercicios usando el IF y el MessageBox. Ahora desarrollaremos nuevamente el ejercicio anterior (62). 71.THEN .

btnNuevo.txtTelefono.Focus() End If frmEjercicio71 (Evento FormClosing) Dim Resp As MsgBoxResult Resp = MsgBox("¿Desea Salir de la Aplicación?".No Then e. Sólo se debe activar cuando comience a ingresar el nombre del alumno. txtNombre (Evento KeyPress) If Asc(e. Al hacer clic en el botón finalizar se debe mostrar un mensaje de advertencia. "Sistema") If Resp = MsgBoxResult.Focus() End If txtCE (Evento KeyPress) If Asc(e. Las instrucciones de este botón se deben ejecutar cuando el usuario pulse la tecla Esc. el cursor debe pasar automáticamente al siguiente campo.KeyChar) = 13 Then Me. Cuando el usuario ingrese un campo y pulse Enter.Focus() End If txtDireccion (Evento KeyPress) If Asc(e.txtObservaciones.Focus() End If txtTelefono (Evento KeyPress) If Asc(e.YesNo.KeyChar) = 13 Then Me.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 Esta aplicación deberá tener las siguientes características:    Al ejecutar la aplicación el botón Nuevo Alumno debe estar desactivado.txtDireccion. MsgBoxStyle.Cancel = True End If frmEjercicio71 (Evento Load) Me.KeyChar) = 13 Then Me.txtCE.KeyChar) = 13 Then Me.Enabled = False Joel Martin Chuco Marrufo 4 .

porq?.Text) = "" Then Me.txtNombre. por ejemplo si estamos cerrando el formulario.Text = "" Me. wueno el valor de “a” en código ASCII es 97.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 btnFinalizar (Evento Click) Me.Cancel: Esta instrucción nos permite cancelar cualquier evento que se este realizando.txtCE.Cancel.txtObservaciones.Enabled = False Else Me.Close() btnNuevo (Evento Click) Me. con solo presionar Esc.KeyChar tiene el carácter de “a”.txtNombre.KeyChar. para la cancelación del evento.KeyChar). Asc: Esta función convierte cualquier carácter enviado en un código ASCII . si esto lo enviamos a la función Asc. e. podemos indicarle que lo cancele.btnNuevo.Text = "" Me. ya que e. Explicación Seguro se estarán haciendo algunas preguntas como lo son: e.Text = "" Me. e. ahora les explico:    e. siguiendo del ejemplo anterior.txtNombre. por ejemplo si digitamos la letra “a”.KeyChar: Esta instrucción nos devuelve el carácter que ha sido digitado en ese momento.txtDireccion. quedaría mas o menos así: Asc(e.btnNuevo.Text = "" Me. Asc.Enabled = True End If Para que se active o realice las instrucciones que se encuentren en el botón Finalizar.Text = "" Me. indicando el botón btnFinalizar. Joel Martin Chuco Marrufo 5 . esta instrucción nos devuelve el valor de a pero como carácter.Focus() txtNombre (Evento TextChanged) If Trim(Me. enviándole o instan ciándole un valor verdadero. tendrán que especificar CancelButton en la propiedad del formulario.txtTelefono. esta instrucción nos devolvería el valor de 97. así de simple.

Este programa debe contar con las siguientes características:      El primer carácter de cada nombre o apellido debe convertirse en mayúsculas y el reto en minúsculas. fecha de ingreso. turno y promedio de un alumno. Se debe de verificar que la fecha ingresada sea correcta En el turno solo se debe aceptar las letras M. Function Minuscula(ByVal v As Integer) As Boolean If v >= 97 And v <= 122 Then Minuscula = True Else Minuscula = False End If End Function Joel Martin Chuco Marrufo 6 . txtApeNom txtFecNac btnNuevo txtTurno btnSalir txtPromedio Función Mayúscula Esta función indica si la letra ingresada esta en mayúscula. Los botones Nuevo y Salir deben permanecer desactivados hasta que se ingresen todos los datos correctos.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 72. La siguiente aplicación nos ingresar los apellidos y nombres. T y N. Function Mayuscula(ByVal v As Integer) As Boolean If v >= 65 And v <= 90 Then Mayuscula = True Else Mayuscula = False End If End Function Función Minúscula Esta función indica si la letra ingresada esta en minúscula. El promedio debe ser un número entre 0 y 20.

Enabled = True Else Me.txtApeNom.Enabled = False Me.btnNuevo.Enabled = False End If End Sub Función Limpiar Esta función limpia los controles TextBox.Enabled = False Me. la barra espaciadora o de retroceso (BackSpace).btnSalir.Text = "" Me. la letra ñ o Ñ o pulso ENTER.Focus() End Sub Joel Martin Chuco Marrufo 7 .btnSalir. Sub Limpiar() Me.Text = "" Me.Text = "" Me.Enabled = True Me.txtPromedio.Text) <> "" Then Me.btnSalir. Function Especial(ByVal v As Integer) As Boolean If v = 13 Or v = 32 Or v = 8 Or v = 225 Or v = 233 Or v = 237 Or v = 243 Or v = 250 Or v = 241 Or v = 209 Then Especial = True Else Especial = False End If End Function Función Ingresados Esta función verifican si todos lo datos han sido ingresados correctamente.txtFecNac.Text) And Trim(Me. Sub Ingresados() If Trim(Me.txtPromedio.Text) <> "" And IsDate(Me.txtTurno.Text = "" Me.Enabled = False Me.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 Función Número Esta función indica si el carácter ingresado es un número.txtFecNac.txtApeNom.Text) <> "" And Trim(Me. Function Numero(ByVal v As Integer) As Boolean If v < 48 Or v > 57 Then Numero = False Else Numero = True End If End Function Función Especial Indica si a ingresado una vocal con tilde.btnNuevo.btnNuevo.txtApeNom.txtTurno.

txtFecNac.KeyChar)) Or Especial(Asc(e. "Cuidado") e.KeyChar) End If anteriorespacio = False Else MsgBox("Debe de Ingresar sólo Letras".btnSalir.txtFecNac.Text) Me.txtFecNac.Enabled = False End If End If txtFecNac (Evento KeyPress) If Asc(e.txtTurno.txtFecNac. "Cuidado") Me.txtApeNom.KeyChar)) Or Minuscula(Asc(e. MsgBoxStyle.Information.KeyChar = LCase(e.txtFecNac.Text) Then Ingresados() Else MsgBox("Debe de Ingresar una Fecha Correcta".Focus() End If txtFecNac (Evento LostFocus) If IsDate(Me.btnNuevo.SelectionLength = Len(Me.KeyChar = ChrW(0) Me.Text = Me. MsgBoxStyle.Text Me.Enabled = False Me.KeyChar) Else REM Convierte a Minuscula e.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 txtApeNom (Evento KeyPress) Static anteriorespacio As Boolean If Asc(e.Text) = "" Or anteriorespacio Then REM Convierte a Mayuscula e.Focus() End If If Asc(e.KeyChar) = 32 Then anteriorespacio = True Else If Mayuscula(Asc(e.SelectionStart = 0 Me.Information.KeyChar = UCase(e.Focus() End If Joel Martin Chuco Marrufo 8 .txtFecNac.txtFecNac.KeyChar)) Then If Trim(Me.KeyChar) = 13 Then Me.txtFecNac.KeyChar) = 13 Then Me.

Cancel = True End If frmEjercicio72 (Evento Load) Limpiar() txtTurno (Evento KeyPress) Dim Letra As String If Asc(e.KeyChar = ChrW(0) Me.KeyChar) If Letra = "M" Or Letra = "T" Or Letra = "N" Or Asc(e.KeyChar)) Or Asc(e.btnNuevo. "Cuidado") If Resp = MsgBoxResult.Enabled = False End If End If txtPromedio (Evento KeyPress) If Numero(Asc(e.No Then REM Si respondio que NO e.Focus() Else Letra = UCase(e.Information.btnSalir.Enabled = False Me.KeyChar = ChrW(0) Me. "Cuidado") e.YesNo. MsgBoxStyle. "Error") REM Ignora el Carácter Ingresado e.KeyChar) Else MsgBox("Debe Ingresar sólo las Letras M.KeyChar) = 13 Then Me.KeyChar = UCase(e.Information. MsgBoxStyle.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 frmEjercicio72 (Evento FormClosing) Dim Resp As MsgBoxResult Resp = MsgBox("Esta Seguro de Salir".txtPromedio.KeyChar) = 8 Or Asc(e. MsgBoxStyle.Enabled = False Me.KeyChar) = 13 Then Ingresados() Else MsgBox("Debe Ingresar Sólo Números".Enabled = False End If Joel Martin Chuco Marrufo 9 .btnNuevo.btnSalir.KeyChar) = 8 Then REM Convierte la Letra a Mayusculas e.T o N".

ú = 250.txtPromedio.txtPromedio.SelectionStart = 0 Me.txtPromedio.txtPromedio.Enabled = False Else Ingresados() End If txtApeNom. "Error") Me.btnNuevo.Text) > 20 Then MsgBox("El Valor Debe Estar Entre 0 y 20". ñ = 241.Text) Me. MsgBoxStyle.Close() En este ejercicio no casi nada que explicar en el código.txtPromedio. Ñ = 209 De 0 al 9 = del 48 al 57 ENTER = 13 BACKSPACE = 8 ESC = 27 Barra Espaciadora = 32 Joel Martin Chuco Marrufo 10 .Enabled = False Me. txtTurno (Evento TextChanged) Ingresados() btnNuevo (Evento Click) Limpiar() btnSalir (Evento Click) Me.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 txtPromedio (Evento TextChanged) If Val(Me. í = 237.Information.Focus() Me.Text) < 0 Or Val(Me. é = 233.txtPromedio.txtPromedio.txtPromedio.SelectionLength = Len(Me. ó = 243. ya que es casi lo mismo que hemos usado en el ejercicio anterior.Text = Me.btnSalir. De A a la Z = del 65 al 90 De a a la z = del 97 al 122 á = 255.SelectedText Me. solo me queda dejarle una pequeña tabla de código ASCII que hemos usado.

Titulo. "Nuevo Registro".. donde se desea que se muestre la ventana. Joel Martin Chuco Marrufo 11 . donde se desea que se muestre la ventana. Columna Es un valor que indica la posición horizontal del formulario. Titulo Es el titulo de la ventana. Ejemplo: Dim resp As String resp = InputBox("Ingrese el Nombre de la Persona". fecha. Fila)      Mensaje Es el mensaje que se desea mostrar cuando se pida el dato a ingresar. Su sintaxis es la siguiente: InputBox(Mensaje. Fila Es un valor que indica la posición vertical del formulario. "Joel Martin Chuco Marrufo") En este ejemplo hemos declarado una variable resp de tipo cadena. también se puede obtener otro tipo de dato. Columna.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 INPUTBOX El INPUTBOX es una ventana que permite que el usuario pueda ingresar un dato. para poder almacenar el nombre que el usuario ingrese. ya sea número. Valor Pred. Valor Predeterminado Es el valor que se muestra en forma automática para ser ingresado.

Este ejercicio cuenta el número de depósitos y retiros realizados por un cliente.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 73. txtCliente btnOk txtMonto btnDeposito btnRetiro lblCantDep lblTotalDep btnNuevo lblCantRet lblTotalRet btnSalir lblSaldo Joel Martin Chuco Marrufo 12 . además almacena el total de los montos tanto de retiros como de depósitos efectuados incluyendo el saldo actual.

ReadOnly = True Me. tr.Visible = True Me.Text = "" Me.lblSaldo.txtMonto.lblTotalRet.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 Variables a nivel del formulario Dim cd.btnRetiro.btnOk.No Then e.Enabled = False Me.lblCantRet.txtCliente.txtCliente. cr As Integer Dim td.lblCantDep.Focus() End Sub frmEjercicio73 (Evento FormClosing) Dim Resp As MsgBoxResult Resp = MsgBox("Desea Salir de la Aplicacion".Text = "" Me.Cancel = True End If frmEjercicio73 (Evento Load) Call Limpia() Joel Martin Chuco Marrufo 13 .lblTotalDep. MsgBoxStyle.txtCliente.Text = "" Me.Text = "" Me.Text = "" Me.Enabled = False Me. saldo As Single Funcion Limpia Sub Limpia() cd = 0 cr = 0 td = 0 tr = 0 saldo = 0 Me.Text = "" Me.btnDeposito.txtMonto.ReadOnly = False Me. "Banco El Amigo") If Resp = MsgBoxResult.YesNo.Text = "" Me.

Text) Me.btnRetiro. MsgBoxStyle.SelectionStart = 0 Me.Enabled = True Me.lblSaldo.Focus() Joel Martin Chuco Marrufo 14 .ReadOnly = False Me.Text = CStr(td) Me.txtMonto.btnOk.Text = CStr(tr) Me.SelectionLength = Len(Me.txtMonto.Focus() Else tr = tr .lblSaldo.Text) saldo = CSng(Me.Focus() btnDeposito (Evento Click) Dim deposito As Single deposito = CSng(Me.txtMonto.btnDeposito.txtMonto.txtMonto.lblTotalDep.Text) If saldo < retiro Then MsgBox("La cantidad que desea retirar excede su saldo actual".lblSaldo.Visible = False Me.lblCantDep.txtMonto.lblSaldo.Text) Me.Text) Me.Text = "" Me.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 btnOk (Evento Click) Me.txtMonto.txtMonto.lblTotalRet.retiro) End If Me. "Disculpe") Me.ReadOnly = True Me.Text = CStr(saldo) td = saldo cd = 1 Me.Text = CStr(td) saldo = CSng(Me.Text) td = td + deposito cd = cd + 1 Me.txtMonto.txtMonto.lblTotalDep.lblCantRet.lblSaldo.lblCantDep.txtMonto.Text = CStr(cd) Me.Enabled = True REM Utilizamos un InputBox para ingresar el saldo inicial saldo = Val(InputBox("Monto de Apertura " + Chr(13) + Chr(13) + "La Cuenta se Apertura con cualquier monto ".txtCliente.Text = CStr(cr) Me.retiro cr = cr + 1 Me. 350)) Me.SelectionLength = Len(Me. "Nueva Cuenta".Text = CStr(saldo .Text = CStr(saldo + deposito) Me.txtMonto.txtMonto.Text = CStr(cd) Me.Critical.SelectionStart = 0 Me.Focus() btnRetiro (Evento Click) Dim retiro As Single retiro = CSng(Me.txtMonto.

hora.##0.00 dd – MMM . número.Close() FORMAT Esta función format nos permite darle un formato a un dato.yyyy dd/mm/yy dddd.Text = Format(Numero.32 04 . MMM d yyyy hh:mm:ss tt HH:mm:ss Formato Su sintaxis seria la siguiente: Format(Variable.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 btnNuevo (Evento Click) Call Limpia() btnSalir (Evento Click) Me.33 Joel Martin Chuco Marrufo 15 .Label1. ya sea una fecha.##0.”Formato”) Ejemplo: Dim Numero As Double Numero = 100000/3 Me.00") Y lo que nos mostraría el Label en la pantalla seria lo siguiente 33. Sus formatos mas utilizados son: Formato devuelto 152. etc.May .125. May 04 2006 02:49:35 pm 14:49:35 ###. "###.2006 04/05/06 Jueves.333.

El alza en porcentaje es igual al alza en soles por 100 entre precio anterior.lblAlzaS.Text = "" Me. "Cuidado") If Resp = MsgBoxResult.Text = "" Me.txtPrecAnt.txtProducto.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 74.txtProducto. luego nos permite calcular el alza en soles y el alza en porcentajes.YesNo. MsgBoxStyle.Text = "" Me.lblAlzaP.Text = "" Me.Cancel = True End If Joel Martin Chuco Marrufo 16 .Text = "" Me. txtProducto txtPrecAn txtPrecAct lblAlzaS lblAlzaP btnNuevo btnCalcular btnSalir Funcion Limpia Sub Limpia() Me.txtPrecAct. precio anterior y precio actual. Esta aplicación nos permite ingresar el nombre del producto.Focus() End Sub frmEjercicio74 (Evento FormClosing) Dim Resp As MsgBoxResult Resp = MsgBox("Desea Salir de la Aplicacion".No Then e.

"###.Text). "###. el total por horas extras y el total a pagar.00") Me. Esta aplicación nos permite ingresar el nombre del profesor.00 soles y S/.lblAlzaP.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 frmEjercicio74 (Evento Load) Call Limpia() btnCalcular (Evento Click) Me.lblAlzaP.txtPrecAct.##0. 8.Text) * 100 / Val(Me.Close() 75.lblAlzaP.Text + " %" btnNuevo (Evento Click) Call Limpia() btnSalir (Evento Click) Me. el número de horas normales que ha trabajado y el número de horas extras.lblAlzaS.Text).Val(Me.00") Me. txtNomProf txtHT txtHE lblPH btnCalcular lblTHN btnNuevo lblTHE btnSalir lblTP Joel Martin Chuco Marrufo 17 .Text)) Me. 9.Text) .lblAlzaS.Text = Format(Val(Me.lblAlzaP.lblAlzaS.Text = Format(Val(Me.Text)) Me.Text = Me.50. luego se debe calcular el total que se le debe pagar por el número de horas normales. Si trabajo mas de 48 horas su pago por hora es de S/.txtPrecAnt.Text = CStr(Val(Me. 7.Text = CStr(Val(Me.lblAlzaP.00 en caso contrario.##0.txtPrecAnt. Por hora extra S/.lblAlzaS.

lblTHN.Text = Format(PHN.Text = Format(Val(Me.lblTHN.Text = "" Me.##0.lblTP.lblTP.lblTHN.txtHT. 7.Text) * PHN.Text) * 9.00") btnNuevo (Evento Click) Call Limpia() btnSalir (Evento Click) Me.Close() Joel Martin Chuco Marrufo 18 .Text) + Val(Me.Text = "" Me.txtNomProf.Text = "" Me.0.Text = "" Me.txtHT.txtHE. "##0.txtHT.00") Me.Text = Format(Val(Me. 8.lblTHE.00") Me.##0.5. "###. "###.Text = "" Me.Focus() End Sub frmEjercicio75 (Evento Load) Call Limpia() btnCalcular (Evento Click) Dim PHN As Single PHN = IIf(Val(Me.Text = "" Me.lblTHE.lblPH.0) Me.Text).00") Me.txtNomProf.Text) > 48.lblPH.txtHE. "###.lblTHE.Text = Format(Val(Me.##0.Text = "" Me.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 Funcion Limpia Sub Limpia() Me.

CASE Como ya hemos visto antes esta instrucción de selección.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 SELECT . SUBTOTAl 100 ó 101 De 101. el descuento en porcentaje. ahora veremos en las aplicaciones de ventanas. el descuento en soles y el total a pagar. junto con funciones. que por cierto no cambian casi nada. su precio unitario y la cantidad comprada de dicho producto. en las consolas de aplicación. En esta aplicación se debe de ingresar el nombre del un producto.1 a 500 A partir de 500 2% 4% 6% 10 % DESCUENTO % txtProducto txtPrecUnit txtCantComp btnCalcular lblSubTotal btnNuevo lblDescP btnSalir lblDescS lblTotal Joel Martin Chuco Marrufo 19 . de acuerdo a la siguiente tabla. El descuento en porcentaje se depende del sub total. y utilizaremos las diversas sintaxis que existen. luego se debe calcular y visualizar el sub Total.1 a 200 De 200. clases etc 76.

lblSubTotal. "###.lblSubTotal.lblDescS.00") btnNuevo (Evento Click) Call Limpia() btnSalir (Evento Click) Me.lblSubTotal.1 To 500 : Desc = 6 Case Is > 500 : Desc = 10 Case Else : Desc = 0 End Select Me.txtProducto.Text) * Desc / 100.1 To 200 : Desc = 4 Case 200.Text = Format(Val(Me. 101 : Desc = 2 Case 101.Text).Text = "" Me.00") Me.txtProducto.lblDescS.Text = "" Me.Text = "" Me.txtPrecUnit.Text = "" Me.lblSubTotal.Text = "" Me.txtCantComp.lblDescP.Text = "" Me.Text = CStr(Desc) Me.Text)) Select Case Val(Me.Text = "" Me.##0.Text) * Val(Me.00") Me.Close() Joel Martin Chuco Marrufo 20 .Text) . "###.lblSubTotal.Text = CStr(Val(Me.Text = Format(Val(Me. "###.lblTotal.txtCantComp.##0.lblSubTotal.lblDescS.Focus() End Sub frmEjercicio76 (Evento Load) Call Limpia() btnCalcular (Evento Click) Dim Desc As Integer Me.Text) Case 100.Val(Me.Text).Text = Format(Val(Me.lblSubTotal.##0.lblDescP.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 Funcion Limpia Sub Limpia() Me.lblTotal.txtPrecUnit.

5 y 14.5 y 20 Pésimo Malo Regular Bueno Excelente DESCUENTO % txtAlumno txtCurso txtN1 btnOtro txtN2 btnObtener lblPromedio btnSalir lblObservacion lblPuntos lblCualidad Joel Martin Chuco Marrufo 21 . una observación que indica si el alumno esta aprobado o desaprobado. SUBTOTAl Entre Entre Entre Entre Entre 0y5 5. su nota número 1 y su nota número 2.4 10. la cantidad de puntos que le faltan para aprobar. si esta desaprobado o los puntos para llegar a veinte en caso que este aprobado.4 14. En este programa se debe de ingresar el nombre del alumno. al hacer clic en el botón obtener promedio se debe de visualizar: el promedio del alumno.4 17.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 77. También se debe visualizar la nota cualitativa del alumno de acuerdo al promedio.1 y 10. Se debe de controlar que solo se ingresen notas entre 0 y 20.5 y 17.

"Cuidado") Me. Sub Limpiar() Me.Text = "" Me.lblPuntos.txtN1. MsgBoxStyle.Text = "" Me.Text) < 0 Or Val(Me.txtN2.txtN2.Text) txtN2 (Evento GotFocus) Me.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 Función Limpiar Esta función limpia los controles TextBox.SelectionLength = Len(Me.txtN1.Information.txtN2.txtCurso.Information.Text) > 20 Then MsgBox("Solo Debe Ingresar Notas Entre 0 y 20".txtN1.Text = "" Me.txtAlumno.Text) > 20 Then MsgBox("Solo Debe Ingresar Notas Entre 0 y 20".txtN2.txtN1.SelectionStart = 0 Me.txtN1.Text = "" Me. MsgBoxStyle.txtN2.Text = "" Me.txtN2.lblCualidad.txtN2.Focus() End If Joel Martin Chuco Marrufo 22 .Text) < 0 Or Val(Me.Text) txtN1 (Evento LostFocus) If Not IsNumeric(Me.lblObservación.Focus() End If txtN2 (Evento LostFocus) If Not IsNumeric(Me.Text = "" Me.Text) Or Val(Me.lblPromedio.txtAlumno.Text = "" Me. "Cuidado") Me.Focus() End Sub frmEjercicio77 (Evento Load) Limpiar() txtN1 (Evento GotFocus) Me.txtN1.Text) Or Val(Me.txtN1.txtN1.SelectionLength = Len(Me.SelectionStart = 0 Me.txtN2.Text = "" Me.

lblCualidad.Text)) + " puntos para aprobar" End If Select Case Val(Me.lblCualidad.Text) >= 10.1 To 10.Text = "Le faltan " + CStr(20 .lblPromedio.Text = "Malo" Case 10.lblPuntos.Text)) + " puntos para tener 20" Else Me.4 : Me.lblCualidad.lblCualidad.Text = "Regular" Case 14.lblPromedio.Text = "Le faltan " + CStr(11 .Text = "Aprobado(a)" Me.4 : Me. También se debe mostrar la etapa de la persona teniendo en cuenta lo siguiente.txtN2.Text)) / 2) If Val(Me.Text) + Val(Me. una observación que indica si es mayor o menor de edad.lblPromedio.txtN1.Val(Me.Val(Me.5 To 14.4 : Me.Text = "Excelente" End Select btnOtro (Evento Click) Limpiar() btnSalir (Evento Click) Me. Edad 0 y 12 13 y 17 18 y 30 31 y 70 70 a mas Niño Adolescente Joven Adulto Anciano Etapa Joel Martin Chuco Marrufo 23 .Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 btnObtener (Evento Click) Me.Text) Case 0 To 5 : Me.Text = "Bueno" Case 17.Text = "Desaprobado(a)" Me.5 To 17.lblCualidad.5 Then Me.Text = CStr((Val(Me.lblObservación. Si es menor de edad se debe mostrar cuantos años le faltan para se mayor de edad y si es mayor de edad se debe mostrar hace cuantos años es mayor de edad.lblPromedio.lblObservación.5 To 20 : Me. En esta aplicación se debe de ingresar el nombre y el año de nacimiento de una persona y se tiene que visualizar: su edad.Text = "Pésimo" Case 5.lblPuntos.Close() 78.lblPromedio.

txtNombre.txtNombre.lblObservacion.Focus() End Sub frmEjercicio78 (Evento Load) Call Limpia() btnNuevo (Evento Click) Call Limpia() Joel Martin Chuco Marrufo 24 .Text = "" Me.Text = "" Me.Text = "" Me.lblAños.lblEdad.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 txtNombre btnResultados txtAñoNac lblEdad btnNuevo lblObservacion btnSalir lblAños lblEtapa Funcion Limpia Sub Limpia() Me.lblEtapa.Text = "" Me.txtAñoNac.Text = "" Me.Text = "" Me.

Val(Me.txtAñoNac.Information.lblEdad.Text = "Adolescente" Case 18 To 30 : Me.lblEtapa.Text = "Adulto" Case Is > 70 : Me.txtAñoNac.txtAñoNac.lblEtapa.Text = CStr(Val(Year(Now())) .Text) < 18 Then Me.lblObservacion. "Error") Me.Focus() Exit Sub End If Me.txtAñoNac.18) + " años" End If Select Case Val(Me.Text = "Es mayor de edad " + CStr(Val(Me.Text = "Niño" Case 13 To 17 : Me.Close() Joel Martin Chuco Marrufo 25 .SelectionStart = 0 Me.lblObservacion.Text) Case 0 To 12 : Me.Text) Me.lblEdad.SelectionLength = Len(Me.Text = "Le Falta " + CStr(18 .txtAñoNac.Text = "Es Mayor de Edad" Me. MsgBoxStyle.lblEtapa.Text)) If Val(Me.lblEdad.txtAñoNac.lblAños.lblEdad.Text) Then MsgBox("Ingrese un año correcto".Text) .Text = "Es Menor de Edad" Me.lblEdad.Text = "Anciano" End Select btnSalir (Evento Click) Me.lblEtapa.Val(Me.Text = "Joven" Case 31 To 70 : Me.lblEtapa.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 btnResultados (Evento Click) If Not IsNumeric(Me.Text)) + " años para ser mayor de edad" Else Me.lblAños.

lblSoloPrim.Text = "" Me.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 79.Text = "" Me.lblMinusculas.Text = "" Me.txtFrase.Text = "" Me.lblLongitud.lblUltimo.lblPosA.lblSegSex.Text = "" Me.Text = "" Me. Esta aplicación es un ejemplo del uso de las funciones de cadena que ya hemos visto el concepto.txtFrase. txtFrase lblLongitud btnMuestra lblPrimero btnNuevo lblUltimo lblSegSex btnSalir lblPosA lblMinusculas lblMayusculas lblSoloPrim Funcion Limpia Sub Limpia() Me.lblPrimero.Text = "" Me.lblMayusculas.Text = "" Me.Text = "" Me.Focus() End Sub frmEjercicio79 (Evento Load) Call Limpia() Joel Martin Chuco Marrufo 26 .

Text = LCase(Me.txtFrase.lblSoloPrim. 5) Me.Close() Joel Martin Chuco Marrufo 27 .txtFrase.txtFrase.Text)) Me.lblMinusculas.Text = Len(Trim(Me. 3) btnSalir (Evento Click) Me.lblPrimero.Text = UCase(Me.Text).Text = Microsoft.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 btnNuevo (Evento Click) Call Limpia() btnMuestra (Evento Click) Me.Text = Microsoft.lblSegSex.txtFrase.VisualBasic.Text = InStr(Me.VisualBasic.Text = Microsoft.Text).txtFrase.txtFrase.Right(Trim(Me.Text).lblMayusculas.txtFrase.Text) Me.Text.Mid(Trim(Me. 2.lblUltimo.txtFrase.lblLongitud. 1) Me. 1) Me.Text) Me. "a") Me.Text.lblPosA.Left(Trim(Me.VisualBasic.Text = StrConv(Me.

mes. la fecha en letras y la fecha y hora actual. En esta aplicación se debe de ingresar el nombre y la fecha de nacimiento de una persona y se debe de visualizar por separado: el día. número del día de la semana. CLASES Y NAMESPACE Funciones Públicas en un Módulo 80. txtNombre txtFecNac lblDia btnOk lblMes btnSalir lblAño lblDiaSem lblFecIng lblFecAct Joel Martin Chuco Marrufo 28 . año. Utilizando dos funciones publicas codificadas en un modulo.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 UTILIZANDO FUNCIONES DE FECHA Y PUBLICAS Y TAMBIEN MODULOS.

Text = Dia(Val(Me.lblDiaSem. MsgBoxStyle.VisualBasic.Text)) Me. igualmente la función mes.txtFecNac.lblDia.txtFecNac.Text) Me. "Sabado") End Function Public Function Mes(ByVal nmes As Integer) As String Select Case nmes Case 1 : Mes = "Enero" Case 2 : Mes = "Febrero" Case 3 : Mes = "Marzo" Case 4 : Mes = "Abril" Case 5 : Mes = "Mayo" Case 6 : Mes = "Junio" Case 7 : Mes = "Julio" Case 8 : Mes = "Agosto" Case 9 : Mes = "Setiembre" Case 10 : Mes = "Octubre" Case 11 : Mes = "Noviembre" Case 12 : Mes = "Diciembre" End Select End Function End Module La función día nos hallara el día de la semana según el número de día enviado a esta función.VisualBasic.txtFecNac.Text)) Me.Month(CDate(Me. "Miercoles".Focus() Exit Sub End If Me.txtFecNac.Text = Microsoft.txtFecNac.Text + " de " + Mes(Val(Me. "Error") Me.txtFecNac.lblMes.txtFecNac.Text = Year(CDate(Me.SelectionLength = Len(Me.lblAño. "Martes".lblMes. btnOk (Evento Click) If Not IsDate(Me.Weekday(CDate(Me.Text Joel Martin Chuco Marrufo 29 .txtFecNac. "Jueves". " + Me.VisualBasic.txtFecNac.Text) Then MsgBox("Ingrese una Fecha Correcta".Text = Microsoft.Text)) + " de " + Me.Day(CDate(Me.lblAño.lblDia.Information. "Viernes".Text)) + ".lblFecIng.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 Primero agregaremos un modulo llamado mdFecha y codificaremos lo siguiente: Module mdFecha Public Function Dia(ByVal ndia As Integer) As String Dia = Choose(ndia.Text)) Me. "Lunes". "Domingo".SelectionStart = 0 Me.Text = Microsoft.Text)) Me.lblDiaSem.

los meses transcurridos desde el año que nació y la fecha actual después de tres semanas.Close() frmEjercicio80 (Evento Load) Me. Para esto crearemos un NameSpace que contendrá la clase y las funciones para hallar la estación y el signo zodiacal. su signo zodiacal la semana del año en que nació. En esta aplicación se debe de ingresar la fecha de nacimiento de una persona y se debe de visualizar por separado: la estación de la fecha en que nació.lblFecAct. txtNombre txtFecNac lblDia btnOk lblMes btnSalir lblAño lblDiaSem lblFecIng lblFecAct Joel Martin Chuco Marrufo 30 .Text = "Hoy es " + CStr(Now) Clases y NameSpace en un Módulo 81.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 btnSalir (Evento Click) Me.

Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 Primero agregaremos un modulo llamado Informacion y codificaremos lo siguiente: Primero borramos todo el código que aparece y cambiamos por lo siguiente: Namespace Informacion Public Class FecNac Public Function Estacion(ByVal dia As Integer. ByVal mes As Integer) As String Select Case mes Case 1 If dia < 21 Then SignoZodiacal = "Capricornio" Else SignoZodiacal = "Acuario" End If Case 2 If dia < 20 Then SignoZodiacal = "Acuario" Else SignoZodiacal = "Piscis" End If Case 3 If dia < 21 Then SignoZodiacal = "Piscis" Else SignoZodiacal = "Aries" End If Case 4 If dia < 21 Then SignoZodiacal = "Aries" Else SignoZodiacal = "Tauro" End If Case 5 If dia < 21 Then SignoZodiacal = "Tauro" Else SignoZodiacal = "Geminis" End If Case 6 Joel Martin Chuco Marrufo 31 . ByVal mes As Integer) As String If (dia >= 23 And mes = 12) Or mes = 1 Or mes = 2 Or (dia <= 22 And mes = 3) Then Estacion = "Verano" If (dia >= 23 And mes = 3) Or mes = 4 Or mes = 5 Or (dia <= 22 And mes = 6) Then Estacion = "Otoño" If (dia >= 23 And mes = 6) Or mes = 7 Or mes = 8 Or (dia <= 22 And mes = 9) Then Estacion = "Invierno" If (dia >= 23 And mes = 9) Or mes = 10 Or mes = 11 Or (dia <= 22 And mes = 12) Then Estacion = "Primavera" End Function Public Function SignoZodiacal(ByVal dia As Integer.

Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 If dia < 22 Then SignoZodiacal Else SignoZodiacal End If Case 7 If dia < 23 Then SignoZodiacal Else SignoZodiacal End If Case 8 If dia < 23 Then SignoZodiacal Else SignoZodiacal End If Case 9 If dia < 23 Then SignoZodiacal Else SignoZodiacal End If Case 10 If dia < 23 Then SignoZodiacal Else SignoZodiacal End If Case 11 If dia < 22 Then SignoZodiacal Else SignoZodiacal End If Case 12 If dia < 22 Then SignoZodiacal Else SignoZodiacal End If End Select End Function = "Geminis" = "Cancer" = "Cancer" = "Leo" = "Leo" = "Virgo" = "Virgo" = "Libra" = "Libra" = "Escorpio" = "Escorpio" = "Sagitario" = "Sagitario" = "Capricornio" End Class End Namespace La función Estacion nos hallara la estación del año en que nació. Joel Martin Chuco Marrufo 32 . igualmente la función SignoZodiacal que nos hallara el signo zodiacal correspondiente.

Text) Then MsgBox("Ingrese una Fecha Correcta".Text = "" Me.Text = Microsoft. nmes) Me.Text = "" Me. nmes) Me.SignoZodiacal(ndia.txtFecNac. lo importamos para poder utilizar sus clases. "dd / MMMM / yyyy")) btnOk (Evento Click) Dim ndia.Month. CDate(Me.Text = "" Me.txtFecNac.Text)) Me.Text = "" Me.lblFecAct. funciones que hemos creado. escribiremos el siguiente código que nos permite importar el espacio de nombre que hemos creado.WeekOfYear.lblEstacion.Text).DatePart(DateInterval. Signo As New Informacion.Text = "La Fecha Actual es: " + CStr(Format(Now.txtFecNac.Text)) nmes = Microsoft. Para que lo importamos?.txtFecNac.VisualBasic.lblMesesTrans.lblNumSem. Now) Me.Text = Signo. CDate(Me.txtFecNac.txtFecNac.VisualBasic. 3.Text = "" Me.lblFecAct.Text = Microsoft. Imports Ejercicio81.Informacion Función Limpia Sub Limpia() Me. MsgBoxStyle.DateAdd(DateInterval.Text = Microsoft.Close() Joel Martin Chuco Marrufo 33 .Text = "" Me.FecNac If Not IsDate(Me.lblSigno.Focus() End Sub frmEjercicio81 (Evento Load) Call Limpia() Me. Now) btnSalir (Evento Click) Me.lblSigno. nmes As Integer Dim Estacion.lblEstacion.txtFecNac.Estacion(ndia.Day(CDate(Me.Month(CDate(Me.VisualBasic.lblNumSem.VisualBasic.Information.lblMesesTrans.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 Al principio de la ventana de codificación del formulario.Text = Estacion.VisualBasic.WeekOfYear.Text)) Me.DateDiff(DateInterval. "Error") Exit Sub End If ndia = Microsoft.

Focus() End Sub frmEjercicio82 (Evento Load) Call Limpia() Joel Martin Chuco Marrufo 34 .txtNumero.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 82. txtNumero lblEntero lblDecimal btnMuestra lblValAbs btnNuevo lblRaiz btnSalir lblSigno lblValOct lblValHex Función Limpia Sub Limpia() Me.lblEntero.Text = "" Me.Text = "" Me.lblValHex.lblValAbs.Text = "" Me.lblDecimal.Text = "" Me.txtNumero.Text = "" Me.lblValOct.Text = "" Me.Text = "" Me.lblSigno.lblRaiz. Esta aplicación nos muestra un ejemplo de la utilidad de las funciones de tipo numéricas.Text = "" Me.

lblValHex.txtNumero.txtNumero.lblDecimal.txtNumero.Text))) Me.lblValOct.Val(Me.Text = CStr(Val(Me.Text))) Else Me.Text) Then MsgBox("Ingrese un Número".txtNumero.txtNumero.) desde el visual Basic.Text))) Me.lblRaiz.Sign(Val(Me.txtNumero. *. Estilo de Presentación) Joel Martin Chuco Marrufo 35 .Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 btnOk (Evento Click) If Not IsNumeric(Me.Text = "No Existe" End If Me.lblRaiz.Text = CStr(Microsoft.VisualBasic.Sqrt(Val(Me.Text) > 0 Then Me.Text = CStr(CInt(Val(Me.Close() btnNuevo (Evento Click) Call Limpia() FUNCION SHELL La función Shell se utiliza para ejecutar programas (archivos ejecutables como *.lblValAbs.Text))) btnSalir (Evento Click) Me.exe.lblSigno.txtNumero.Hex(Val(Me. MsgBoxStyle.txtNumero.Text = CStr(Math.Text = CStr(Microsoft.Text))) If Val(Me.Abs(Val(Me.Oct(Val(Me.VisualBasic.com etc.txtNumero.lblEntero.txtNumero.Text = "" Me.Information.txtNumero.lblEntero. "Error") Me. Su sintaxis es la siguiente: Shell("Ruta y Nombre del programa".Text))) Me.Text = CStr(Math.Focus() Exit Sub End If Me.Text)) Me.Text) .Text = CStr(Math.

AppWinStyle.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 83.NormalFocus) btnWord (Evento Click) Shell("C:\Archivos de programa\Microsoft Office\OFFICE11\winword. Esta aplicación nos permitirá ejecutar algunos programas desde el visual Basic. AppWinStyle.MaximizedFocus) btnExcel (Evento Click) Shell("C:\Archivos de programa\Microsoft Office\OFFICE11\excel. btnCalc btnWord btnExcel btnExplorador btnDOS btnFinalizar btnCacl (Evento Click) Shell("C:\Windows\System32\calc.exe". AppWinStyle.exe".exe".MaximizedFocus) Joel Martin Chuco Marrufo 36 .

YesNo. "Uso de Shell") = MsgBoxResult.exe".NormalFocus) btnFinalizar (Evento Click) If MsgBox("¿Deseas salir de la aplicación?". MsgBoxStyle.Yes Then Me. AppWinStyle.MaximizedFocus) btnDOS (Evento Click) Shell("C:\WINDOWS\system32\cmd.Close() Joel Martin Chuco Marrufo 37 . AppWinStyle.exe".Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 btnExplorador (Evento Click) Shell("C:\WINDOWS\explorer.

lawebdelprogramador.pe Este Manual Solo lo Puedes Descargar por la Página Oficial. 04 de mayo de 2006 Joel Martin Chuco Marrufo 38 .com Donaciones a la cuenta de Ahorros del Banco de Interbank del Perú  Cuenta en Soles: 067-3008573552  Cuenta en Dólares: 067-3008573560 www.Lenguaje de Programación – Capitulo XI Programando con Visual Basic 2005 Bueno señores con esto acaba la Séptima entrega de este manual. pero estaba con trabajo estos dos últimos meses.com Lima. www.interbank.com. aquí les dejo o mejor dicho les envío los programas elaborados hasta ahora y en la próxima entrega realizaremos lo siguiente:  Arrays  Procedimientos Cíclicos  Y mejoraremos el aspecto del formulario con métodos gráficos Bueno conmigo será hasta la próxima entrega. Joel Martin Chuco Marrufo Visual_Basic_Net_2005@hotmail. les pido disculpas por la demora.