Manual Visual Basic .NET: Guía Completa
Manual Visual Basic .NET: Guía Completa
TEMÁTICA DE DESARROLLO
SESIÓN I: EL IDE DEL VISUAL BASIC .NET
Conceptos Generales....................................................................................6
MICROSOFT NET FRAMEWORK......................................................................6
Entorno NET FRAMEWORK............................................................................7
Visual Studio NET..........................................................................................9
Elementos del Entorno de VISUAL STUDIO 2008........................................12
Primera Aplicación......................................................................................23
Variables y Operadores...............................................................................34
Uso de Operadores
Operadores de Asignación.................................................38
Operadores de Comparación.............................................38
Instrucciones Condicionales........................................................................41
Instrucción SELECT CASE..............................................................48
Laboratorio…......................................................................................................50
ComboBox...................................................................................................56
ListBox........................................................................................................ 61
CheckBox....................................................................................................64
Radio Button..............................................................................................67
Tab Page.....................................................................................................72
Laboratorios........................................................................................................................74
For/Next...................................................................................................... 70
For Each......................................................................................................71
While/End While..........................................................................................71
Do/Loop.......................................................................................................72
Estructuras..................................................................................................73
Laboratorio…......................................................................................................................74
PROCEDIMIENTOS Y FUNCIONES.................................................................81
ARREGLOS.................................................................................................. 81
ARREGLOS TIPO LISTA....................................................................82
Semestre 2025 - I 1
2 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Control de Excepciones................................................................................97
Menús en Visual Basic NET y 2008.............................................................101
Laboratorios........................................................................................................................110
ADO NET.....................................................................................................135
Objeto de acceso a datos...........................................................................155
Acceso a Datos..........................................................................................160
Semestre 2025 - I 2
3 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
INTRODUCCIÓN
La siguiente guía pretende ilustrar al estudiante sobre las características más importantes del
lenguaje, el FRAMEWORK que lo soporta y los distintos tipos de aplicaciones que podemos lograr
con él.
Semestre 2025 - I 3
4 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
SESIÓN I EL
IDE DEL VISUAL BASIC .NET
CONTENIDO
Conceptos Generales
MICROSOFT NET FRAMEWORK
Entorno NET FRAMEWORK
Visual Studio NET
Elementos del Entorno de VISUAL STUDIO 2008
PRÁCTICA DE REFORZAMIENTO
Semestre 2025 - I 4
5 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
CONCEPTOS GENERALES
MICROSOFT .N
ET
[Link] es una nueva tecnología que responde a la necesidad de
comunicación total entre negocios de sistemas heterogéneos y con gran capacidad de
procesamiento.
Las aplicaciones creadas en la plataforma .NET podrán ser usadas por un gran
número de clientes, tales como PC, PC de bolsillo (Palm PC), celulares digitales, PC
de juegos (PC Games), PC de auto (Auto PC), PC Televisor (Ultimate TV), etc.
".NET Framework es un entorno para construir, instalar y ejecutar servicios Web y otras
aplicaciones. Se compone de tres partes principales: el Common Language Runtime, las
clases Framework y [Link]"
"El .NET Framework es una nueva plataforma diseñada para simplificar el desarrollo de
aplicaciones en el entorno distribuido de Internet."
Basándose en la definición de Microsoft sobre que es el .NET FRAMEWORK podemos decir que
“.NET Framework es un entorno para construir, instalar y ejecutar servicios Web y otras
aplicaciones. Se compone de tres partes principales: El conjunto de lenguajes de programación,
La Biblioteca de Clases Base o BCL y El Entorno Común de Ejecución para Lenguajes o CLR por
sus siglas en inglés”.
Semestre 2025 - I 5
6 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
La siguiente figura muestra un diagrama con la distribución de elementos dentro del entorno de .NET
Framework.
En la base del entorno de ejecución, se encuentra el CLR, que constituye el núcleo de .NET
Framework, encargándose de la gestión del código en cuanto a su carga, ejecución, manipulación
de memoria, seguridad, etc. En el nivel intermedio, se sitúa la jerarquía de clases básicas del
entorno de ejecución, que constituyen un sólido API de servicios a disposición del programador,
para multitud de tareas como, gestión del sistema de ficheros, manipulación multihebra, acceso a
datos, etc. Finalmente, en el nivel superior, encontramos las clases que permiten el diseño del
interfaz de usuario de nuestras aplicaciones. Si necesitamos desarrollar aplicaciones para Internet,
utilizaremos [Link], que nos provee de todo lo necesario para crear aplicaciones para la Red:
WEB FORMS, WEB SERVICES, etc. Además la plataforma provee de un motor capaz de desarrollar
aplicaciones para escritorio (similar a las que se puede obtener con Visual Basic). Estas
aplicaciones de escritorio son los llamados WINDOWS FORMS, la nueva generación de formularios,
con características avanzadas y muy superiores a las del motor de generación de formularios de
obtenidos con versiones anteriores de Visual Basic.
Visual Studio no es el único IDE para desarrollar aplicaciones .net, existen otros entornos
alternativos entre los cuales podemos SHARPDEVELOP.
Semestre 2025 - I 6
que ofrecen funcionalidades para el trabajo con
Semestre 2025 - I 7
7 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Visual Studio ofrece todo lo necesario para crear visualmente este tipo de programas, de un modo
similar aunque más rico al que ofrecía el entorno de desarrollo integrado de Visual Basic.
Al contrario de Visual Basic 6, [Link] ofrece control sobre cada control que se incorpore al Windows Form.
Los formularios (ventanas) son clases que heredan de la clase base Form, cada control que se
incorpore en la clase form será miembro de esta.
Tipos de ejecutables.
Con Visual Basic .NET puedes crear básicamente estos dos tipos de ejecutables: de consola, no
gráfico, al estilo del viejo MS-DOS, y gráficos, como los que normalmente estamos
acostumbrados a ver en Windows. Existen otros tipos de aplicaciones que se pueden crear con
Visual Basic .NET: aplicaciones [Link], las cuales serán tratadas en otra guía.
Visual Basic .NET ([Link]): Es un lenguaje de programación orientado a objetos que se puede
considerar una evolución de Visual Basic implementada sobre el framework .NET. Su introducción
resultó muy controvertida, ya que debido a cambios significativos en el lenguaje [Link] no es
compatible hacia atrás con Visual Basic, cosa que causó gran división en la comunidad de
desarrolladores de Visual Basic.
La gran mayoría de programadores de [Link] utilizan el entorno de programación Microsoft Visual
Studio .Net en alguna de sus versiones (Visual Studio .NET, Visual Studio .NET 2003 o Visual
Studio .NET 2008), aunque existen otras alternativas, como SharpDevelop (que además es libre).
Como pasa con todos los lenguajes de programación basados en .NET, los programas escritos en
[Link] requieren el Framework .NET para ejecutarse.
Semestre 2025 - I 8
9 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Cuando se Iniciar el Visual Basic Net conocerá el Entorno de Desarrollo Integrado (IDE) del Visual
Basic 2008 es decir todas las ventanas y componentes que permitan el desarrollo de aplicaciones.
Visual Studio .NET es un entorno de desarrollo integrado que nos ayuda a diseñar, desarrollar,
depurar e implantar con rapidez soluciones basadas en el .NET Framework. Podemos acceder a un
conjunto común de herramientas, diseñadores y editores desde cualquiera de los lenguajes de
programación de Visual Studio .NET. Podemos crear aplicaciones Windows Forms y Web Forms que
integren datos y lógica de negocio.
Al ingresar por primera vez al Visual Basic Net observara la siguiente pantalla
En esta pantalla se muestra principalmente la página de inicio con los proyectos reciente y as
opciones para abrir o crear un nuevo proyecto. También se muestra las opciones para Abrir o Crear
un nuevo proyecto. También se muestra el cuadro de herramientas y el explorador de soluciones
pero vacíos porque no hay ningún proyecto activo.
Semestre 2025 - I 9
10 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Para visualizar todos los componentes de Visual Basic Net debe crear una aplicación.
Semestre 2025 - I 10
11 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Visual Studio .NET ofrece varias plantillas de aplicaciones para soportar el desarrollo de
diferentes tipos de aplicaciones y componentes. Antes de iniciar un nuevo proyecto, debemos
escoger el tipo de plantilla que deseamos utilizar.
Una plantilla de aplicación proporciona archivos de inicio y una estructura de proyecto, y contiene
los objetos básicos del proyecto y la configuración del entorno que necesitamos para crear el tipo
de aplicación que deseamos.
Esta plantilla proporciona las herramientas, estructura y código de inicio para crear una aplicación
estándar basada en Windows. Añade automáticamente las referencias básicas del proyecto y los
archivos a utilizar como punto de partida para nuestra aplicación.
Semestre 2025 - I 11
12 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Al crear una nueva aplicación se visualiza la siguiente ventana que consisten en el IDE del Visual
Basic .Net. En el ejemplo se ha creado una aplicación llamada Windows Application1
Ventana
Propiedad
es
Semestre 2025 - I 12
13 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Barra de Título
Contiene el nombre del proyecto y su estado. Cuando estamos en estado de diseño, es decir
dibujando los controles o escribiendo las instrucciones, la barra sólo muestra el nombre del
proyecto.
Durante este estado la aplicación solo ejecutara las instrucciones indicadas y no se podrá
modificar las ni alterar el diseño de la aplicación.
Los siguientes botones que s encuentran en la barra estándar permiten iniciar, interrumpir,
detener o depurar una aplicación.
Semestre 2025 - I 13
13 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
La Barra de Menú
El Cuadro de Herramientas
El Formulario
El formulario es el objeto principal de cada aplicación porque aquí se construye la interfaz del
usuario, es decir, la comunicación del usuario con la aplicación que se desarrolla.
El desarrollo de una aplicación consiste en agregar los formularios necesarios y asignarles sus propiedades
Semestre 2025 - I 14
luego
Semestre 2025 - I 15
14 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Otra forma de agregar formularios a una aplicación es haciendo clic en el nombre del proyecto del
explorador de soluciones y eligiendo la opción Agregar Windows Forms.
En la ventana que se visualiza selecciones Windows Forma y luego clic en el botón Agregar, si
desea, antes de hacer clic en el botón Agregar puede asignarle un nombre diferente al
predeterminado del nuevo formulario. En el siguiente ejemplo se está agregando un nuevo
Semestre 2025 - I 16
17 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Barra de Menús
Menú principal
Guardar [Link]
Nuevo proyecto Deshacer
La Ventana de Propiedades
Esta ventana, como su nombre lo indica, contiene todas las propiedades o características que
se les pueden asignar a los controles que se dibujan en el formulario.
Como en casi todas las ventanas, en la barra de título se visualizan los botones que permiten:
Permiten lo siguiente:
Semestre 2025 - I 17
18 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Ventana de Código
Semestre 2025 - I 18
19 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Explorador de soluciones
Ventana de Diseño
Si desea configurar el Visual Basic Net como por ejemplo cambiar el tipo, tamaño, color de la letra
de las instrucciones que escriba o el color del texto de cada comentario, etc. debe elegir la opción
Herramientas Opciones. Se visualiza una ventana con 2 opciones.
Semestre 2025 - I 19
20 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Observe lo siguiente:
Semestre 2025 - I 20
21 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Propiedad
es
Text Mi Primer Formulario
Backcolor InactiveCaptionText
BackgroundImage Imagen1
Cuadro de Herramientas
Semestre 2025 - I 21
22 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
PROCESO Tecla
Rápida
Código F7
Diseñador Shift + f7
Ventana de Propiedades F4
Examinador de Objetos F2
Ejecutar Application F5
Semestre 2025 - I 22
21 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
SESIÓN II
INSTRUCCIONES CONDICIONALES
CONTENIDO
Primera Aplicación
Variables y Operadores
Uso de Operadores
Operadores de Asignación
Operadores de Comparación
Instrucciones Condicionales
Instrucción SELECT CASE
PRÁCTICA DE REFORZAMIENTO
Semestre 2025 - I 23
22 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Figura 1
Figura 2
Procedimiento
Semestre 2025 - I 24
23 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Pulse shift +F7 para pasar del formulario ala venatna de código
[Link] =
[Link] [Link] =
"UCV SE MAS"
[Link] =
[Link]
End
Sub End
Class
Explicación
En este ejemplo se aplica el evento clic al objeto Button1, el cual activa las propiedades de los 2
objetos: Label1 y Label 2 de la siguiente forma:
Objeto propiedad
Semestre 2025 - I 25
23 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Semestre 2025 - I 26
24 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
[Link] [Link]()
End Sub
Segunda Aplicación
Otra aplicación será un simple formulario con algunos elementos de escritorio comunes para ir
familiarizando con el entorno.
Semestre 2025 - I 27
28 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
En el cuadro de dialogo Name escriba “alumnos” y pinche el botón OK. El IDE inmediatamente
creara el proyecto y nos mostrará una esto:
En la cual se mostrará como página principal una pestaña que contendrá el diseñador visual con un
formulario el cual el sistema habrá llamado Form1. En la ventana de propiedades cambie el
nombre a form_alumnos
Semestre 2025 - I 28
29 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Además cambie la propiedad text a “Registro de Alumnos” y el tamaño (size) a 800,[Link] que
acabamos de hacer es ajustar las propiedades del objeto form mediante el diseñador. Agregando
controles a nuestro formulario.
9 Etiquietas (Label)
6 cuadros de texto (TextBox)
1 cuadro de lista desplegable (combo box)
1 Calendario (DateTimePicker)
RUN
Nombre
Ap. Paterno
[Link]
Dirección
Teléfono
Email
Carrera
Fecha de Ingreso
Text_run
Semestre 2025 - I 29
30 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Text_nombre
Text_ap_pat
Text_ap_mat
Text_direccion
Text_telefono
Text_email
Presione el botón para ejecutar la aplicación y ver cómo quedará nuestro formulario, debería
ver algo similar a esto:
Semestre 2025 - I 30
31 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Hagamos algo más interesante, agreguemos dos botones al formulario para utilizarlo como
disparador de un eventos, para ello iremos nuevamente al toolbox y busquemos el control Button,
ubiquemos uno debajo del combobox de carrera y cambiemos su nombre a “btn_grabar” y la
propiedad text a “Grabar”, el otro botón ubiquémoslo al costado derecho del botón Grabar y
cambie su propiedad nombre a “btn_Salir” y su text a “Salir”.
Como comentario aparte, ¿Se han fijado que para dar el nombre a los controles hemos utilizado
una nomenclatura común?, por ejemplo Textbox1 lo llamamos Text_run, Combobox1 lo llamamos
cmb_carrera, bueno, utilizar nomenclaturas comunes que identifiquen claramente el tipo de control
y el campo o dato con el cual se esté trabajando es una buena idea ya que nos permitirá fácilmente
identificar estos cuando estemos trabajando con código.
Sigamos con nuestra aplicación, hasta ahora no hemos utilizado nada de código, así que ya es hora
de utilizar nuestras neuronas . Haga doble clic en el botón btn_salir. ¿Qué ha pasado?, se ha
activado la pestaña de código y auto-mágicamente el cursor se ha ubicado entre estas líneas:
End Sub
Se trata de un procedimiento cuyo nombre, btn_salir_Click, compuesto del nombre del control y del
evento, lo proporciona automáticamente el IDE. Recibe dos parámetros: sender y e, con
información adicional proporcionada por el entorno. Pero lo verdaderamente importante está al
final de la declaración: “Handles btn_salir_Click”. La palabra clave Handles, seguida del nombre de
un control, un punto y el nombre de un evento
Semestre 2025 - I 31
32 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
[Link]()
Presiona para ejecutar el programa, presiona el botón cerrar y observa que sucede.
Agreguemos algo de estilo a nuestro formulario. Para ello pondremos una imagen en el top de
formulario con el Titulo de la aplicación.
Primero debemos “hacer espacio” para nuestra imagen, seleccione todos los controles y muévalos
hacia abajo. Para ello mantenga presionado el botón derecho del mouse y seleccione los controles
de formulario.
Agregamos un Label a nuestro Formulario, y le agregamos las siguientes propiedades (en tiempo diseño):
Dock = Top
Autosize = False
En la propiedad Image, importamos una nueva imagen, yo ocupé el logo de Ceduc ,
ustedes elijan el que gusten.
y aceptamos:
ImageAlign = MiddleLeft
Text = [Titulo]
Semestre 2025 - I 32
33 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
TextAlign = MiddleRight
Font = Microsoft Sans Serif, 18pt, style=Bold
BackColor = Window
Modifiers = Public
Semestre 2025 - I 33
34 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
DialogResult = Ok
Y en el control btnCancelar:
DialogResult = Cancel
Y en el control txtPassword:
UseSystemPasswordChar
= Trae
PasswordChar = *
Y en el propio formulario cambiamos las siguientes propiedades:
AcceptButton = btnAceptar
CancelButton = btnCancelar
Ahora debemos hacer que nuestro formulario de autentificación sea el principal en nuestro
proyecto, para ello vamos nuevamente a la ventana del explorador de soluciones y seleccionamos
nuestro proyecto haciendo doble clic en el. En este instante se abrirá el cuadro de propiedades de
la aplicación. En el cuadro de opciones “startup form” selecionaremos el formulario frmLogin:
Semestre 2025 - I 34
35 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Vamos nuevamente al formulario frmLogin y hacemos clic en el botón aceptar para acceder al
código del evento. Instanciaremos el formulario form_alumnos para llamarlo de la siguiente forma.
[Link]()
Semestre 2025 - I 35
36 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Variables y Operadores
Variable
Tipos de Datos
Object
Decimales 64 bits
Decimales de coma flotante 32 bits Decimales con coma como enteros 128 bits
True o False números de 16 bits
signo Alfanuméricos
Declaración de Variables
Ejermplos:
Dim NumVar As
As String
Semestre 2025 - I 36
37 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Integer %
Long &
Single !
Double #
Decimal @
String $
Nomenclatura de variables
Debe ser exclusivo dentro del mismo ámbito (procedimiento, formulario o modulo).
Inicialización de variables
De manera predeterminada una variable contienen un valor cuando se declara. Por ejemplo, una variable
False.
Ejemplo
Semestre 2025 - I 37
35 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Ejemplos
‘Declaraci
‘Creación b)
datos. Ejemplo
0 Declaraciones implícitas y
explicitas
Se puede declarar variables implícita que permiten utilizar variables sin declararlas y
explícitamente.
Ejemplo:
La instrucción Option Explicit garantiza que las variables se declaren antes de utilizarlas.
Sintaxis
Option Explicit On
On
Semestre 2025 - I 38
36 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
El ámbito determina su accesibilidad. En función a ello, una variable puede ser variable local o
de nivel de modulo.
Ejemplos
Conversión de Tipos
Nota: Cuando se define la instrucción Option Strict On, es necesario declarar las variables explícitamente.
Constante
Semestre 2025 - I 39
37 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Uso de Operadores
Un operador es una unidad de código que realiza una operación en una variable(s) o
Aritméticos
Asignación
Comparación
Lógicos/ de bits
Concatenación
Operadores Aritméticos
Exponent
Numero2
Numero2
Numero2
Expresion2
Números Numero2
Semestre 2025 - I 40
38 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Operadores de Asignación
expresión a una =
variable o propiedad
Expresio Costo = Precio
+=
Expresion
Expresion
Expresion
división de enteros =
Expresion
de &= =
ón
Cadena &=”
^= Asignación de potencia Numero Numero1 = 2
^=
Exponent
Semestre 2025 - I 41
39 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Operadores de Comparación
Semestre 2025 - I 42
40 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
INSTRUCCIÓN CONDICIONAL
Estas instrucciones nos permiten tomar decisiones, permiten evaluar una expresión y ejecutar unas
instrucciones en caso contrario ejecuta otras series de instrucciones
Sintaxis:
Primera
Forma:
Verdadero)> Ejemplo:
Segunda Forma:
Verdadero)> End If
Ejemplo:
If b <> 0 Then
Res = a / b
End If
Esta segunda forma, lo utilizamos cuando tengamos que hacer mas de una instrucción si la
expresión a evaluar resulta verdadera, en este caso si es mayor que b, si es verdadero este hará la
siguiente instrucción de a dividir entre b y el resultado guardarlo en una variable llamada Res, que
después la mostraremos en pantalla.
Tercera Forma:
Else
Semestre 2025 - I 43
41 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
End If
Ejemplo:
If b <> 0 Then
Res = a / b
[Link]("El Resultado de La División es: {0}", Res)
Else
Cuarta Forma:
If <expresión a evaluar> Then <Instrucción (si la expresión evaluada devuelve Verdadero)> Else
<Instrucción (si la expresión evaluada devuelve Falso)> (todo en una misma línea)
Esta forma no tan muy usada, solo en los casos cuando hay que hacer una sola instrucción en cada
tipo de respuesta de la expresión evaluada, por ejemplo, si a es igual b nos mostrará un mensaje
de Números Iguales, pero si es falso nos mostrara otro mensaje diciéndonos que No son Números
iguales, y recuerden que
Quinta Forma:
If b = 0 Then
[Link]("Error: División Entre
Cero") ElseIf a <> b Then
Res = a / b
[Link]("El Resultado de La División es: {0}", Res)
Else
If
Semestre 2025 - I 44
42 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
su promedio
BackColor
BackgroundImage
BackgroundImageLayout
Font
Font
ForeColor
Button1 (Name)
BackColor
BackgroundImage
BackgroundImageLayout
Font
Semestre 2025 - I 45
43 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Clic en el primer botón, escriba el siguiente código dentro del procedimiento que permite llamar a
un formulario. Si queremos llamar a los formulario en modo Modal es decir, que solo se active el
formulario priincipal,cuando cerramos el formulario secundario,debemos utilizar el metodo
ShowDialog.
Las siguientes instrucciones muestran el formulario form2 en modo Modal.
[Link]()
End Sub
Declaración de Variables
Se Requiere lo siguiente:
Semestre 2025 - I 46
44 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
FORMULARIO
Cuando se inicia el formulario el cursor debe ubicarse en el primer cuadro , en este aplicaremos al
formulario el evento activated.
Las Notas deben cambiar de color si es aprobatorio color azul, en caso contrario color rojo.
Aplicando Consistencia:
Private Sub TextBox1_TextChanged_1(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Las Notas deben ser de valor
If Val([Link])
Evento:KeyPress >= 11
Then [Link]
Private Sub TextBox1_KeyPress1(ByVal sender As Object, ByVal e As
= [Link]
[Link]) Handles [Link]
Else
If (Asc([Link]) < 48 Or Asc([Link]) > 57) And Asc([Link]) <> 8 Then
[Link] =
[Link] = True
[Link] End If
End Sub
Semestre 2025 - I 47
45 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
CALCULOS
Obtener el promedio escriba sub y la palabra promedio pulse enter luego digite
Sub promedio()
n1 =
Val([Link]) n2
= Val([Link])
n3 =
Val([Link])
/3
[Link] =
[Link] =
[Link]
MsgBox("Desaprobado")
Else
[Link] =
[Link]
MsgBox("Aprobado")
End
If End If
End Sub
En el botón
Semestre 2025 - I 48
evaluar.
Semestre 2025 - I 49
46 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Sub evaluar()
"verifique") [Link]()
[Link]()
También existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en
estos casos o se usa una condición compuesta muy grande o se debe intentar convertir el problema
a uno que se pueda resolver usando la instrucción SELECT CASE. Esta instrucción es una instrucción
de decisión múltiple donde el compilador prueba o busca el valor contenido en una variable
ENTERA, CHARACTER, STRING contra una lista de constantes apropiadas, es decir enteras, carácter
o astringes, cuando el computador encuentra el valor de igualdad entre variable y constante
entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de
igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un
default, aunque este último es opcional. El
formato en visual BASIC net de
esta instrucción es el siguiente;
capturar o asignar variable de condición
Select Case
variableopcion case
const1 instruccion(es)
case const2
instruccion(es) case
const3 Instruccion(es)
…
Case Else
instruccion(es) End
Select
Semestre 2025 - I 50
46 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
13
[Link] =
"NIÑEZ" Case 15, 16,
17
Semestre 2025 - I 51
47 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
[Link] = "ADOLESCENCIAZ"
Case 18 To 59
[Link] =
"ADULTEZ" Case Is >=
60
[Link] =
"ANCIANO" Case Else
[Link] = "NO
End Sub
End Class
Semestre 2025 - I 52
48 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
LABORATORIOS
LABORATORIO - 001
1. Elaborar una aplicación que permita ingresar el nombre de un usuario y que luego permita
saludarlo en un Label.
Semestre 2025 - I 53
49 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
LABORATORIO - 002
Elaborar una aplicacion que permita obtener el promedio de tres notas, mostrandome los puntos
obtenidos (suma de las notas) y el promedio del mismo.
Semestre 2025 - I 54
""
[Link]()
End Sub
End
Class
Semestre 2025 - I 55
50 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
LABORATORIO - 003
Elaborar una aplicación que permita mostrar el promedio de dos notas, este promedio se mostrara
en un cuadro de mensaje, de la siguiente manera:
Semestre 2025 - I 56
50 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
[Link] =
False
End Sub
Sub habilitabotones()
[Link] = True
Semestre 2025 - I 57
51 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
[Link] = True
End Sub
Function calculopromedio(ByVal N1 As Integer, ByVal N2 As Integer) As Integer
Return (N1 + N2) / 2
End
Function
End Class
LABORATORIO - 004
2. Elaborar una aplicacion que permita ingresar el nombre de un cliente asi como el monto
consumido, luego al hacer click debera mostrar el importe del mismo acompañado del igv,
mostrandose en los labels respectivos.
Semestre 2025 - I 58
52 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
SESIÓN III
TRABAJANDO CON CONTROLES
CONTENIDO
ComboBox
ListBox
CheckBox
RadioButton
TabPage
PRÁCTICA DE REFORZAMIENTO
Semestre 2025 - I 59
53 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Semestre 2025 - I 60
El control ComboBox de Visual Basic 6.0 se ha reemplazado por el control ComboBox de
Windows Forms en Visual Basic 2008. Los nombres de algunas propiedades, métodos, eventos y
constantes son diferentes y, en
Semestre 2025 - I 61
54 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Locked (Propiedad)
En Visual Basic 6.0, la propiedad Locked de un control ComboBox determina si se puede editar la
sección del cuadro de texto del control.
En Visual Basic 2008, la propiedad Locked impide que un control se mueva en tiempo de diseño.
No existe un equivalente directo para la propiedad Locked de Visual Basic 6.0; sin embargo, puede
conseguir el mismo efecto si establece la propiedad DropDownStyle del control ComboBox en
DropDownList.
Nota En Visual Basic 6.0, si se establece la propiedad Locked en True, también se impedirá que
se modifique la selección. Para duplicar este comportamiento, puede cancelar la selección en el
evento MouseDown.
NewIndex (Propiedad)
En Visual Basic 6.0, la propiedad NewIndex se usaba para recuperar el índice del último
elemento agregado a un control ComboBox.
En Visual Basic 2008, la propiedad NewIndex ya no existe. Puede utilizar el valor devuelto desde el
método
[Link] para recuperar el índice de un elemento cuando éste se agrega.
Semestre 2025 - I 62
55 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
TopIndex (Propiedad)
En Visual Basic 6.0, la propiedad TopIndex se utilizaba para devolver o establecer un valor que
especificara el elemento del control ComboBox o ListBox que debía mostrarse en la posición
superior. Esta propiedad solía utilizarse para desplazarse por la lista sin seleccionar ningún
elemento.
Scroll (Evento)
El evento Scroll de Visual Basic [Link] utiliza junto con la propiedad TopIndex para llevar a cabo
acciones cuando se desplaza por la lista. Visual Basic 2008 no admite el evento Scroll; sin
embargo, en la mayoría de los casos, el evento SelectedIndexChanged constituye un sustituto
válido.
Otras diferencias
Existen numerosas diferencias conceptuales que se aplican a todos los controles, como diferencias
en los enlaces de datos, control de fuentes, operaciones de arrastrar y colocar, compatibilidad con
Ayuda, y otras. Para obtener más información, vea Conceptos de formularios Windows Forms para
usuarios de Visual Basic 6.0.
En los ejemplos siguientes se muestran las diferencias que existen entre las técnicas de
codificación de Visual Basic 6.0 y Visual Basic 2008.
El código se modifica para hacer que un control ComboBox sea de sólo lectura
El código siguiente muestra cómo impedir que un usuario agregue nuevos elementos a un control
ComboBox.
Copiar código
Copiar código
Semestre 2025 - I 63
El código siguiente muestra cómo se establece la selección en un elemento que se ha agregado
mediante
Semestre 2025 - I 64
56 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Copiar código
Copiar
código
Semestre 2025 - I 66
57 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Visual Basic
Control ListBox
El control ListBox permite añadir elementos en forma de lista y también poder seleccionar
elementos de la misma para trabajar los datos. Este control permite seleccionar un elemento solo o
varios de ellos, utilizando la propiedad Multiselect. La imagen de la izquierda muestra un ListBox en
el que se selecciona un solo elemento y a la derecha se seleccionan varios:
Algunas de sus propiedades.
[Link]: Sirve para agregar información al control
[Link]: Indica los elementos que han sido seleccionado en el control, (ojo) esta
propiedad es una de las más funcionales que tiene este control, ya que, no da una perspectiva
completa de la información que tenemos almacenada en el mismo.
[Link]: Remueve o elimina la información seleccionada en el mismo.
[Link]: Esta propiedad es de tipo Boolean (Verdadero o Falso), nos sirve para ordenar
alfabéticamente (A hasta Z) la información contenida en el control.
[Link] [Link]("DIGITADOR")
[Link]("PROGRANAD
OR")
Semestre 2025 - I 67
[Link]("ANALISTA")
Semestre 2025 - I 68
58 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
End Sub
Select Case
[Link]
Case 0
[Link] = 1200
Case 1
[Link] = 2500
Case 2
[Link] =
End
Sub End
Class
Ejercicio 2
Semestre 2025 - I 69
59 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Semestre 2025 - I 71
60 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Else
[Link]("Debe seleccionar para poder borrar", "Seleccione el dato")
End If
End
Sub
Semestre 2025 - I 72
73 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
CONTROL CHECKBOX
PROPIEDADES
- Se utiliza un control CheckBox para dar al usuario una opción del tipo verdadero/falso o sí/no.
- El control de la casilla de verificación puede mostrar una imagen o texto o ambos.
- Se utiliza la propiedad Checked para obtener o establecer el valor de un control de casilla
de verificación de dos estados.
MÉTODOS
Refresh Obliga al control a invalidar su área cliente y, acto seguido, obliga a que vuelva
a dibujarse el control y sus controles secundarios.
Semestre 2025 - I 73
74 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
[Link]) [Link]()
End Sub
[Link]) [Link]()
End Sub
Semestre 2025 - I 74
75 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
If [Link] = True
[Link] =
bon Else
bon = 0
[Link] =
bon
End
If End
Sub
If [Link] = True
[Link] =
descuento Else
descuento = 0
[Link] =
descuento
End
If End
Sub
[Link] =
Semestre 2025 - I 75
64 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
End
Sub End
Class
Control Radiobutton
- Ofrece opciones que el usuario puede activar o desactivar, pero solamente una opción si
existe un grupo de RadioButton.
- El control RadioButton puede mostrar texto, Imagen o ambos.
- Cuando el usuario selecciona un botón de opción en un grupo, los demás se
desactivan automáticamente.
- Se utiliza la propiedad Checked para obtener o establecer el estado de un RadioButton.
- Ofrece opciones que el usuario puede activar o desactivar, pero solamente una opción si
existe un grupo de RadioButton.
- El control RadioButton puede mostrar texto, Imagen o ambos.
- Cuando el usuario selecciona un botón de opción en un grupo, los demás se
desactivan automáticamente.
- Se utiliza la propiedad Checked para obtener o establecer el estado de un RadioButton.
Semestre 2025 - I 76
65 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
PROPIEDADES
MÉTODOS
Semestre 2025 - I 77
66 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
If [Link] = True
[Link] =
SUELDO End If
End Sub
If [Link] = True
[Link] =
SUELDO End If
End Sub
If [Link] = True
Semestre 2025 - I 78
67 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
[Link] =
SUELDO End If
End
Sub End
Class
TAB PAGE
Call visibilidad()
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
End Sub
Semestre 2025 - I 79
68 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
[Link]()
End Sub
[Link] = False
[Link] = False
[Link] = False
[Link] = False
[Link] = False
[Link] = False
[Link]("DIGITADOR")
[Link]("PROGRAMADOR")
[Link]("ANALISTA")
[Link] = "DATOS
PERSONALISIMOS"
[Link] = "ESTUDIOS"
[Link] = "RESUMEN"
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
End Sub
Sub visibilidad()
[Link] = True
[Link] = True
[Link] = True
[Link] = True
Semestre 2025 - I 80
69 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
[Link] = True
[Link] = True
End Sub
Semestre 2025 - I 81
70 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
LABORATORIOS
LABORATORIO
- 001
Se desea elaborar una aplicación que me permita mostrar el Neto a Pagar en el sueldo de
un empleado para ello debemos tomar en cuenta lo siguiente:
Si hacemos click en el Check de Bon Mov, se debera tomar en cuenta:
El basico va a Depender del Cargo:
Cargo Basico
Analista 2800
Programador 2000
Operador 1600
Digitador 1250
Secretaria 1000
Semestre 2025 - I 82
71 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
LABORATORIO -
Elaborar una aplicación que permita ingresar el Nombre, Edad y Estado Civil asi como su
Turno, cuando presionemos Agregar este se visualizara en las Listas respectivas.
Luego si deseamos eliminar a uno de los elementos de la lista, debemos seleccionarla y
luego hacer clic en el botón Quitar. Del mismo modo cuando se haga clic en Limpiar todos
Semestre 2025 - I 83
71 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Else
Semestre 2025 - I 84
72 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Casado =
"No" End If
If RbMañ[Link] = True
Then Turno = "Mañana"
ElseIf [Link] = True
Then Turno = "Tarde"
Else
Turno =
"Noche" End If
[Link](Nombre
)
[Link]([Link]
ing)
[Link](Turno)
[Link](Casado)
[Link]()
[Link] = 18
[Link] = False
RbMañ[Link] = False
[Link] = False
[Link] = False
[Link]()
End Sub
Private Sub LbNombre_SelectedIndexChanged(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Seleccionar([Link])
End Sub
Private Sub LbEdad_SelectedIndexChanged(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
Seleccionar([Link])
End Sub
Private Sub LbTurno_SelectedIndexChanged(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
Seleccionar([Link])
End Sub
Private Sub LbCasado_SelectedIndexChanged(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
Seleccionar([Link])
End Sub
Private Sub BtnQuitar_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
If [Link] < 0 Then
[Link]("Seleccione un elemento", "Para Quitar",
[Link], [Link])
Semestre 2025 - I 85
73 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Else
Quitar([Link]
dex) End If
End Sub
Private Sub BtnLimpiar_Click(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
[Link]
ar()
[Link](
)
[Link]()
[Link]
r()
End Sub
Semestre 2025 - I 86
87 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
LABORATORIO - 003
Cuando se ingresa la Edad y se presiona ENTER, se mostrara la informacion ingresada y seleccionada en las
listas respectivamente, y al mismo tiempo se debera mostrar Los Nros que solicitan en la parte inferior.
List:
Masculi
no
List:
Soltero
Casado
Viudo
Divorciad
o
Convivie
Semestre 2025 - I 87
88 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
LABORATORIO - 004
ESPECIALIDADE
Turn Ciclo S
o Turism Contabilida Computacio Secretariad
o d n o
I , II y III 280 290 290 285
Mañana
IV, V ,VI 300 310 320 315
I , II y III 250 260 270 265
Tard
IV, V ,VI 270 280 280 270
e
I , II y III 284 295 295 290
Noche
IV, V ,VI 320 340 340 325
Los precios se mostrara en la Caja de Texto Mensualidad, asi mismo cuando seleccionamos un dato
Adicional esta se acumulara en la caja de texto Pago Adicional.
El Descuento sera de la siguiente manera :
Turno Descuent
o
Mañan 2% de la Suma (Mensualidad + Adicional)
a
Tarde 3% de la Suma (Mensualidad + Adicional)
Noche 4% de la Suma (Mensualidad + Adicional)
List :
I II III IV V VI
Semestre 2025 - I 88
89 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
SESIÓN IV
PROCESOS REPETITIVOS
CONTENIDO
For/Next
For Each
While/End While
Do/Loop
Estructuras
PRÁCTICA DE REFORZAMIENTO
Semestre 2025 - I 89
77 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
PROCESOS REPETITIVOS
Los procesos repetitivos o llamados bucles, se utilizan para repetir el o los códigos, un
número determinado de veces, para esto usaremos el For, que nos permitir· repetir un
número determinado de veces el código.
For / Next
Con este tipo de bucle podemos repetir un código un número determinado de veces.
Sintaxis:
Next
For i = 1 To 10
'contar· de 1 hasta 10
Next
Segunda Forma: Esta forma se utiliza para decirle como va a incrementar, ya sea
como el ejemplo de 2 en 2.
etc. Next
Tercera Forma: Cuando queremos que un bucle sea en decreciente solo bastar· darle
un valor negativo, al n˙mero, como en el ejemplo, queremos que en vez que avance
del 1 al 10 queremos que este vaya del 10 al 1.
For i = 10 To 1 Step -1
Next
Semestre 2025 - I 90
78 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
For Each
Este bucle repetir· o iterar· por cada uno de los elementos contenidos en una colección.
Sintaxis:
el bucle
Next
Ejemplo:
Dim s As String
Next
[Link]
()
Este bucle recorre cada uno de los caracteres de una cadena, en este caso recorrer·
cada carácter de la cadena s (Hola Mundo). Comenzando por la H y de ahí la o y así hasta
la última o de la palabra Mundo.
Las estructuras repetitivas o llamados también bucles, se utilizan para repetir el o los
códigos, hasta que la expresión evaluada de un valor de Falso.
Sintaxis:
While <expresión>
Ejemplo: While i
< 10
[Link]
(i) i = i + 1
Semestre 2025 - I 91
End While
Semestre 2025 - I 92
79 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
de 10
Do / Loop
Este tipo de bucle es muy parecido al anterior. Si se utiliza solo con esas dos instrucciones,
este tipo de bucle no acabar· nunca y repetir· todo lo que haya entre Do y Loop. Pero este
tipo de bucle se puede usar con dos instrucciones que nos permitirán evaluar
expresiones lógicas: While y Until Pero no debemos confundir este While con el
While/End While que acabamos de ver anteriormente. La ventaja de usar While o Útil con
los bucles Do/Loop es que estas dos instrucciones podemos usarlas tanto junto a Do
como junto a Loop, la diferencia está en que si los usamos con Do, la evaluación se hará
antes de empezar el bucle, mientras que si se usan con Loop, la evaluación se hará
después de que el bucle se repita al menos una vez.
Sintaxis:
Primera Forma: Este bucle evalúa al principio, mejor dicho realizara el código o las
instrucciones un numero que digamos que sea n veces.
Do While <expresión>
Instrucción
Loop
Segunda Forma: Este bucle evalúa al final, mejor dicho realizara el código o las
instrucciones n veces.
Do
Instrucción
Tercera Forma: Este bucle evalúa al principio, a diferencia que el primero realizara el código
siempre y cuando la expresión sea falsa, mejor dicho realizara el código o las instrucciones n
veces.
Do Until <expresión>
Instrucción
Loop
Cuarta Forma: Este bucle evalúa al final, a diferencia que el segundo realizara el
código siempre y cuando la expresión sea falsa, mejor dicho realizara el código o las
instrucciones n 1 veces
Do
Instrucción
Semestre 2025 - I 93
80 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Public Class
Form10 Dim I
As Integer
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
I=0
While (I <=
20) I = I +
1
[Link]
(I) End While
End Sub
I=0
Semestre 2025 - I 94
81 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Do
I=I+1
[Link]
(I) Loop While (I <=
20)
End Sub
Private Sub Button3_Click(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link] I = 0
Do While (I <
20) I = I + 1
[Link]
(I) Loop
End Sub
Semestre 2025 - I 95
82 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
ESTRUCTURA S
Salario As Decimal
End Structure
As String Public
Modelo As String
Public PrecioCompra As
Single Public
FechaCompra As Date
2. Asignar valores a los miembros de la estructura. Podemos utilizar los siguientes valores o
[Link] = "Cherokee"
[Link] = 27999
[Link] = #06/23/2000#
Semestre 2025 - I 96
83 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Establezca las propiedades TextBox para visualizar la estructura CarInfo estructura en cuadros de texto
en el formulario. El código debería ser parecido a:
[Link] = [Link]
[Link] = [Link]
[Link] =
[Link]
[Link] =
[Link]
Ejecutar la aplicación y hacer clic en Display Car Structure. El formulario que se ejecute
debería tener un aspecto parecido a éste
Semestre 2025 - I 97
98 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
LABORATORIOS
LABORATORIO
Elaborar - 001que permita ingresar :
una aplicación
Semestre 2025 - I 98
99 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
LABORATORIO - 002
Crear una aplicación que permita agregar los datos de sus amigos en las listas que se muestran
en el diseño, para ello debera tomar en cta lo siguiente:
El codigo debera estar creado de la siguiente manera: (Primer carácter del Apellido
Paterno + Primer carácter del Apellido Materno + Año + Mes del Nacimineto).
Se debe agregar en la Lista Apellido Los Apellidos y Nombres.
Asi como en la Lista signo debe mostrar el signo de la Persona de acuerdo a su fecha de nacimiento.
Semestre 2025 - I 99
100 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
LABORATORIO - 003
Crear una aplicación que me permita adicionar a un grupo de datos que son ingresados desde
ciertos controles, estos controles estan distribuidos de la siguiente manera :
SESIÓN V
PROCEDIMIENTOS Y ARREGLOS
CONTENIDO
PROCEDIMIENTOS Y FUNCIONES
ARREGLOS
ARREGLOS TIPO LISTA
ARREGLOS TIPO TABLA
ARREGLOS CON PARAMETROS
ARREGLOS DE CONTROLES
PRÁCTICA DE REFORZAMIENTO
PROCEDIMIENTOS
Son pequeños programas que son invocados desde cualquier parte de un
programa Se usa de la siguiente forma:
Sub nombre_procedimiento(Byval argumento1 as tipo1,Byval argumento2 as tipo2 )
Sentenci
a1
Sentenci
a2
……
End sub
Se les llama de la siguiente forma:
Call nombre_procedimiento(argumento1,argumento2..................)
FUNCIONES
Son pequeños programas que son invocados desde cualquier parte de un programa pero que
devuelven
un valor
Se usa de la siguiente forma:
Sub nombre_funcion(Byval argumento1 as tipo1,Byval argumento2 as tipo2 )
Sentenci
a1
Sentenci
a2
…
End sub
Se les llama de la siguiente forma:
variable=nombrefuncion(arg1,arg2,arg3…......)
EJEMPLO CON PROCDEMIENTOS Y FUNCIONES
ARREGLOS
Uno de los problemas más comunes en los diversos sistemas de información es el tratamiento o
procesamiento de una gran volumen de datos o de información.
Las variables usadas hasta ahora reciben propiamente el nombre de variables escalares porque
solo permiten almacenar o procesar un dato a la vez.
Por ejemplo si se quiere almacenar nombre y edad de 15 personas con el método tradicional se
ocuparan 30 variables y solo es nombre y edad de 15 personas, agreguen más datos y más
personas y ya es tiempo de empezar a analizar otro tipo de variables.
Es decir, en problemas que exigen manejar mucha información o datos a la vez, variables escalares
no son suficientes ya que su principal problema es que solo permiten almacenar y procesar un dato
a la vez.
Se ocupan entonces variables que sean capaces de almacenar y manipular conjuntos de
datos a la vez. Variables de tipo arreglo si permiten almacenar y procesar conjuntos de
datos del mismo tipo a la vez.
Cada dato dentro del arreglo se le conoce como elemento del arreglo y se simboliza y procesa
(captura, operación, despliegue) usando el nombre del arreglo respectivo y un subíndice indicando
la posición relativa del elemento con respecto a los demás elementos del arreglo, solo recordar
que en VISUAL BASIC 2008 la primera posición, elemento o renglón es el 0 (cero), ej.
NOMBRES
Juan –>nombres(0)
Pedro →
nombres(1)
Rosa –>
nombres(2)
Jose –>
nombres(3)
Sin embargo sus problemas son similares a los de variables normales es decir hay que declararlos,
capturarlos, hacer operaciones con ellos, desplegarlos, compararlos, etc.
En programación tradicional siempre se manejan dos tipos de arreglos los arreglos tipo listas,
vectores o unidimensionales y los arreglos tipo tablas, cuadros, concentrados, matrices o
bidimensionales en ambos casos son variables que permiten almacenar un conjunto de datos del
mismo tipo a la vez, su diferencia es en la cantidad de columnas que cada uno de estos tipos
contiene, como en los siguientes ejemplos:
a) LISTAS DE EDADES
18
34
22
15
B) TABLAS DE SUCURSALES
SUC A 10 20 30 40
SUC B 50 60 70 80
SUC 90 100 11 12
D 0 0
Como se observa la diferencia principal entre un arreglo tipo lista y un arreglo tipo tabla son las
cantidades de columnas que contienen.
Un arreglo tipo lista se define como una variable que permite almacenar un conjunto de datos
del mismo tipo organizados en una sola columna y uno o más renglones.
También reciben el nombre de vectores en algebra o arreglos unidimensionales en programación.
Los procesos normales con una lista o con sus elementos incluyen declarar toda la lista, capturar sus
elementos, desplegarlos, realizar operaciones con ellos, desplegarlos, etc.
Para declarar una lista se usa el siguiente formato;
SHARED DIM NOMLISTA (CANT ELEMENTOS -1) AS TIPODATO
Shared(compartido), se usa cuando la lista se tenga que compartir entre varias subrutinas,
observar que cada botón de comando en un programa empieza con sub-end sub, si un programa
tiene varias subrutinas que compartan la misma lista, dicha lista deberá ser SHARED.
La cantidad de elementos-1, significa que si se quiere una lista de 5 ciudades por ejemplo su
declaración será shared dim ciudad (4) as string, la razón de esto es que visual basic empieza una
lista por el elemento o renglón cero (0), por tanto cuando se pide crear una lista de 4 ciudades,
visual basic net le agrega el renglón o elemento 0, que en total darían 5 ciudades.
Es también importante recordar que un arreglo en visual basic net es realmente un objeto derivado
de la clase [Link].
Recordar también que como objeto arreglo, también puede usar una serie de métodos
pertenecientes a dicha clase [Link], los metodos principales de dicha clase y por tanto de
los arreglos derivados de la misma son: Public Methods
BinarySearch Overloaded. Searches a one-dimensional sorted Array for a value, using a binary
search algorithm. Clear Sets a range of elements in the Array to zero, to false, or to a null
reference (Nothing in Visual Basic), depending on the element type.
Clone Creates a shallow copy of the Array.
Copy Overloaded. Copies a section of one Array to another Array and performs type casting
and boxing as required.
CopyTo Copies all the elements of the current one-dimensional Array to the specified one-
dimensional Array starting at the specified destination Array index.
CreateInstance Overloaded. Initializes a new instance of the Array class.
Equals (inherited from Object) Overloaded. Determines whether two Object
instances are equal. GetEnumerator Returns an IEnumerator for the Array.
hash table. GetLength Gets the number of elements in the specified dimension of
the Array
[Link] [Link]()
End Sub
[Link] [Link]()
End Sub
[Link]
r()
[Link]
r()
[Link](EDADARR(RENG))
Next
' A MESES Y Y
= 0 To 4
EDADARR(RENG) = EDADARR(RENG)
* 12
[Link](EDADARR(RENG))
Next
End
Sub
[Link]()
[Link]([Link]
EDADARR(RENG) =
+1
[Link] = ""
End If
[Link] =
False RENG = 0
End
If End
Sub
End Class
Notas:
Observar que en el programa el arreglo edad y la variable renglón se declararon de tipo GLOBAL
porque los dos métodos el de captura y el de operación-despliegue, las están compartiendo.
Además observar que se declararon antes de los eventos “clickButton”, para crearlos como objetos
globales. Para el caso de operaciones y comparaciones con todos los elementos de la
lista a la vez se deberá usar un ciclo for con una variable entera llamada renglón,
misma que también se usa como índice de la lista.
Recordar que todos los datos internos de la lista estarán almacenados en la memoria ram del
computador, para despliegues se usa un componente visual que permite manipular un conjunto de
datos a la vez, el ListBox con sus métodos apropiados pero se tiene que usar un ciclo for para ir
añadiendo o agregando elemento por elemento como se observa en el problema ejemplo que se ha
venido desarrollando, en este caso se quiere desplegar las cinco edades convertidas a meses.
La ultima instrucción y muy importante es poner en cero las variables de control de ciclos o índice
de arreglos, esto es porque el servidor mantiene el programa ejecutándose continuamente en
memoria y si se vuelve a pedir la ejecución del programa, en cuento se intente capturar un nuevo
dato va a marcar el error arreglo fuera delimite o arrayofbound, están avisados.
Para inicializar una lista se debe usar el siguiente formato:
shared dim nomlista() as tipodato={lista de valores separados
por comas} ej;
Semestre 2025 - I 112
113 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o
más columnas y uno o más renglones.
Para procesar (recordar solo operaciones y comparaciones) internamente todos los elementos
de la tabla se ocupan dos ciclos for uno externo para controlar renglón y uno interno para
controlar columna.
Los elementos de la tabla se deberán simbolizar con el nombre de la tabla y 2 subíndices, el
primer subíndice referencia al renglón y el siguiente subíndice referencia la columna los dos dentro
del mismo corchete.
La declaración de una tabla será de acuerdo al siguiente formato:
SHARED DIM NOMTABLA (RENG-1,COL-1) AS TIPODATO
Ej: SHARED DIM SUELDO (3,4) AS DOUBLE ← RECORDAR QUE VA A GENERAR UNA MATRIZ QUE
TENDRA CUATRO RENGLONES Y CINCO COLUMNAS EMPIEZA EN SUELDO (0,0)
Para capturar sus elementos, usaremos un textbox y un botón de captura, solo tener cuidado o
mucho control sobre los índices rEN y col como lo muestra el ejemplo.
Para efectuar otros procesos tales como operaciones, despliegues con todos los elementos de la
tabla se deberán usar 2 ciclos un for externo para controlar renglón y un for interno para controlar
columna.
' desplegando
For R = 0 To
2
TEMP = CALIFICACION(R, 0) & " " & CALIFICACION(R, 1) & " " & CALIFICACION(R, 2) &
" "
& CALIFICACION(R, 3)
[Link](TEMP)
' limpiando temporal antes de otro
renglon TEMP = " "
Next
End
Sub
End
Class
Notas:
Observar el formato de declaración y como se controlan los índices de
captura r, c Para procesar los elementos se usan dos ciclos for y el
formato tabla (reng,col).
En este problema se usa el objeto LISTBOX para presentar el resultado más adelante se usara un
objeto más apropiado.
Corrida:
Para inicializar tablas, se usa el siguiente formato:
Dim nomarreglo() As tipodato = {lista valores}
Dim ciudades() as String = {“tijuana', “tecate”, “ensenada”}
Recordar que no se pueden inicializar arreglos de tamano fijo, para inicializar tablas aquí
está el ejemplo: Dim alfa(,) As Integer = {{1, 2}, {3, 4} {5,6} }
1.- CONSTRUIR UN CUADRO QUE CONTENGA LOS COSTOS FIJOS DE CUATRO PRODUCTOS
CUALESQUIERA, QUE SE PRODUCEN EN TRES PLANTAS DIFERENTES DE UNA EMPRESA
MAQUILADORA (2 prog uno capturado y
otro inicializado).
2.- CONSTRUIR UN CUADRO QUE CONTENGA LOS INGRESOS MENSUALES POR VENTAS DURANTE
LOS TRES PRIMEROS MESES DEL ANO DE CUATRO SUCURSALES DE UNA CADENA DE AUTO
REFACCIONES, AGREGAR AL FINAL UNA LISTA QUE MUESTRE LOS INGRESOS MENSUALES
TOTALES POR MESES Y UNA SEGUNDA LISTA
QUE MUESTRE LOS INGRESOS MENSUALES TOTALES POR SUCURSAL(2 progs uno capturado y otro
inicializado). 3.-CONSTRUIR UN CUADRO QUE CONTENGA LAS COMISIONES GANADAS POR TRES
VENDEDORES, DE LOS 5 TIPOS DE LINEA BLANCA DE CONOCIDA MUEBLERIA, ADEMAS LISTAS DE
COMISIONES TOTALES Y PROMEDIOS GANADAS POR LOS VENDEDORES, ASI COMO LISTAS DE
COMISIONES TOTALES Y PROMEDIOS POR TIPO DE LINEA BLANCA
FOR R = 0 TO 3
FOR C = 0 TO 2
TOTRENG(R) = TOTRENG(R) +
TABLA(R,C) NEXT C
PROMRENG(R) =
TOTRENG(R)/3 NEXT R
COLUMNA FOR C = 0 TO 2
FOR R = 0 TO 3
TOTCOL(C)=TOTCOL(C) +
TABLA(R,C) NEXT R
PROMCOL(C) =
TOTCOL(C) / 4 NEXT C
se encuentra en la lista.
[Link](dato): Regresa el índice del objeto dentro del listbox.
[Link](indice,dato):
Inser ta el dato en la posicion
indicada.
[Link](dato): Elimina el dato de el listbox.
[Link](indice): Elimina el dato que está en la posición
indicada. Items[indice]: get or set el dato en la posición indicada (ver
primera nota abajo). Notas:
GET y SET son propiedades asociadas a todos los objetos o controles y sus propiedades en
microsoft net, por ejemplo para un textbox, si en un programa se dice alfa = [Link]; se está
usando get, si se dice [Link]=500; se está usando set.
Otro ejemplo alfa=[Link](2); se está
usando (get) [Link](4)=“mama”; se está
usando (set).
OBSERVAR QUE NO SE USA PROPIEDAD TEXT.
Esto de get-set se puede usar para cualquier propiedad, por ejemplo alfa = [Link]; se
está usando get, pero si se codifica [Link]=amarillol; se está usando set, como se
observa es importante entender y aplicar este GET-SET en todos los programas.
Capturas: Solo se ocupara un TextBox, el evento click del button y el metodo Add
Pero si se quiere pasar de un ListBox a otro ListBox, entonces ciclo for, count, etc.
Ejemplo prog
[Link] [Link]([Link])
[Link] = ""
End Sub
cant = [Link]
For r = 0 To cant - 1
meses =
[Link](r) meses
= meses * 12
[Link](r) =
meses Next r
End Sub
Recordar que el primer indice en un ListBox es el cero por eso el ciclo va desde el cero hasta la
cantidad de elementos menos uno.
Corrida:
1.- CAPTURAR EN UNA LISTA LOS SUELDOS DE 6 EMPLEADOS Y DESPLEGARLOS EN UNA SEGUNDA LISTA
AUMENTADOS EN UN 30%.
2.- CAPTURAR EN UNA LISTA LOS PESOS EN KILOGRAMOS DE 6 PERSONAS DESPLEGARLOS EN UNA
SEGUNDA LISTA CONVERTIDOS A LIBRAS Y ADEMAS SOLO LOS MAYORES DE 100 LIBRAS.
Para pasar un arreglo completo como parámetro a un procedimiento o a una función solo se
manda el nombre del arreglo sin corchetes e índices, en el procedimiento o función que recibe solo
se declara un arreglo del mismo tipo y se puede usar el mismo o diferente nombre del arreglo sin
corchetes e índices.
Sin embargo es conveniente aclarar, que a diferencia de variables escalares normales visual basic
2008 no genera una nueva variable en memoria ni tampoco copia los datos al arreglo que recibe,
en su lugar visual basic sigue usando los datos que están en el arreglo original, es por esta razón
que cambios que se le hagan a los datos del arreglo que recibe realmente se está haciendo al
arreglo original como lo muestra el siguiente ejemplo:
4, 5} ' pasandola a un
procedimiento
[Link](lista1(
r)) Next r
vector + 100
Dim r As
Integer For r =
0 To 4
vector(r) = vector(r) +
100 Next r
End Sub
ARRAYS DE CONTROLES
Visual Basic cuenta con el concepto de array de controles, en el que varios controles comparten el
mismo conjunto de procedimientos de suceso, incluso aunque cada uno de los elementos
individuales en el array pueda tener asignados diferentes valores para sus propiedades. Sólo podrá
crear un array de control en tiempo de diseño y, como mínimo, al menos un control debe
pertenecer al array. Podrá crear un array de controles utilizando cualquiera de los siguientes
métodos:
Inherits [Link]
Dim T(7) As
TextBox Dim
Lb(7) As Label
Dim Titu() As String = {"Nombre:", "Domicilio:", "Localidad:", "Partido:", "Teléfono:", "País:", "Código
Postal:"}
For i = 0 To 6
T(i) = New
TextBox() Lb(I) =
New Label()
Lb(I).Text = Titu(I)
For i = 0 To 6
[Link](T(i
))
[Link](Lb(
I)) Lb(I).Top = Y + 3
T(I).Top = Y
Y = Y + 30
T(I).Text = Rnd() *
200 T(I).Left = 80
Next
End
Sub
T(0).text =
End Class
LABORATORIOS
Elaborar una aplicacion que me permita llamar a dos cuadros de dialogo (Fuente y Color) los
cuales al ser activado van alterar el contenido de la caja de texto donde se ingreso la informacion.
SESIÓN VI
CONTROL DE EXCEPCIONES Y MENUES
CONTENIDO
Control de Excepciones
Minués Principal y Contextual
PRÁCTICA DE REFORZAMIENTO
CONTROL DE EXCEPCIONES
Una excepción es un error inesperado que puede ocurrir durante la ejecución de un programa,
lo que genera que la ejecución se detenga o funciones en forma incorrecta.
En Visual Basic .NET existe la clase Excepción que permite controlar las excepciones dentro de
un aplicación. Para empezar a controlar las excepciones debe definir una variable con esta
Dim Ex As Exception
La variable que se define con la clase Exception tendrá toda la información de la excepción o error
que se produce. Por ejemplo:
Cuando ocurre una excepción dentro de un programa y no se controla la ejecución del programa,
se deetiene y se visualiza una ventana similar a la siguiente, dependeiendo del tipo de excepción:
Try Catch
Esta instrucción permite controlar las excepciones o errores inesperados que pueden ocurrir en
Try
Bloque de Instrucciones Nº 01
Catch Variable As Exception
Bloque de Instrucciones Nº 02
Finally
Bloque de Instrucciones Nº 03
End
Try
Bloque de Instrucciones Nº 01
Bloque de Instrucciones Nº 02
Es el bloque de instrucciones que se debe ejecutar cuando ocurra una excepción durante la
ejecución de la aplicación.
En este bloque de instrucciones debemos reconocer la excepción o el error producido para enviar
un mensaje adecuado al usuario y evitar que nuestra aplicación deje de funcionar.
En la parte inicial de este bloque de instrucciones y después de la palabra Catch, se debe definir
una variable de tipo Excepción, la cual almacenara en sus propiedades la información de la
excepción producida. La variable también se puede definir al inicio de programa.
Bloque de Instrucciones Nº 03
Si en una parte del bloque Try Catch desea salir de él, puede utilizar Exit Try.
Exit Try es una palabra clave que permita salir del bloque Try Catch y ejecuta la instrucción o
instrucciones que se encuentran después de End Try.
La palabra clave Exit Try no se puede utilizar el bloque de instrucciones Nº 03, es decir, después de
la palabra Finally.
Dim Ex As
Exception Dim
Dato As String
Dim Nota1, Nota2, Promedio As Double
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link] Try
'Ingrea la Primera Nota
Dato = InputBox("Ingresa la nota Nº 01", "Por
Favor", 0) 'PREGUNTA SI ESTA NULA O VACIA
If [Link](Dato) = False
Then Nota1 = [Link](Dato)
Else
'Si esta vacia o nula le asigna
el 0 Nota1 = 0
End If
'ingresa la primera Nota
Dato = InputBox("Ingresa la nota Nº 02", "Por
Favor", 0) 'pregunta si esta nula o vacia
If [Link](Dato) = False
Then Nota2 = [Link](Dato)
Else
'Si esta vacia o nula le asigna
el 0 Nota2 = 0
End If
'Calcual el promedio
Promedio = (Nota1 + Nota2)
/ 2 'MUESTRA SU PROMEDIO
MsgBox("Su promedio es:" & [Link]("#0.00") & "Puntos",
[Link], "resultado")
Catch ex As Exception
MsgBox([Link], [Link],
[Link]) End Try
End
Sub End
Class
Utilizando Finally
...................................................................................................
.................................................................................................
'ingresa la primera Nota
Dato = InputBox("Ingresa la nota Nº 02", "Por
Favor", 0) 'pregunta si esta nula o vacia
If [Link](Dato) = False Then
Nota2 = [Link](Dato)
Else
'Si esta vacia o nula le asigna
el 0 Nota2 = 0
End If
'Calcual el promedio
Promedio = (Nota1 + Nota2) / 2
Catch ex As Exception
MsgBox([Link], [Link], [Link])
Finally
'MUESTRA SU PROMEDIO
MsgBox("Su promedio es:" & [Link]("#0.00") & "Puntos",
[Link], "resultado")
End Try
Hay dos tipos de menús que se pueden poner en aplicaciones hechos en Visual Basic .NET: el
menú principal (MenuStrip) y el contextual (ContextMenuStript).
MenuStrip
El menú principal es el que aparece en las aplicaciones abajo de la barra de la ventana (o sea, la
tirita que dice "Archivo, Edición, etc."). Para crear uno, se tiene que arrastrar el objeto MenuStrip a
la ventana. El ambiente de diseño cambia un poco: el "control" aparece en la parte inferior, fuera
de la ventana y en la parte superior de la ventana (o forma) que estás creando, aparece una cajita
que dice "Escriba aquí". La pantalla se ve algo así:
Al darle clic sobre ese mensaje, te permite escribir un texto (el letrero del primer menú) y
aparecen "huecos" para escribir más opciones. Las siguientes imágenes muestran el efecto que
tiene ir tecleando opciones del menú.
End
Sub End
Class
Menú contextual
Arrastre el icono del Menú Contextual y se puede escribir los nombres de las opciones.
Para activar estas opciones se debe insertar un objeto y programar un evento para el menú contextual.
Ejecute la aplicación y cuando se haga click sobre la etiqueta observe que aparece el menu contextual
LABORATORIOS
LABORATORIO - 001
Elaborar una aplicacion que permita registrar los datos de los Empleados de una Empresa, estas
seran mostradas en un ListView llamado LvPersonal, esta lista estara controlada por un Combo
llamado CboModo el cual mostrara los estados del ListView (Iconos
Grandes,Detalle,Lista,Iconos Pequeños,Tìtulos), tambien podran ser mostraos algunos
'Llena el Personal
Dim Personal As ListViewItem
Personal = New
ListViewItem("001", 0)
[Link]("Julio
Dávila")
[Link]("2,500.00"
) [Link](Personal)
[Link]("Oscar
Ruiz")
[Link]("850.00"
)
[Link](Personal)
[Link]
Dim Codigo, Nombre, Sueldo As
String Dim Personal As
ListViewItem
'Asigna los datos ingresados a
Variables Codigo = [Link]
Nombre =
[Link] Sueldo
= [Link]
'Agrega al control ListView los datos
ingresados Personal = New
ListViewItem(Codigo, 0)
[Link](Nombre)
[Link](Sueldo)
[Link](Personal)
'Llama al procedimiento
NoIngresar NoIngresar()
End Sub
Private Sub BtnIgnorar_Click(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
[Link] =
"" [Link]
= ""
[Link] =
"" NoIngresar()
End Sub
Sub NoIngresar()
[Link] =
True [Link]
= True 'Activa el botón
Nuevo [Link]
= True
'Desactiva los botones Grabar e
Ignorar [Link] = False
[Link] = False
End Sub
End
Class
LABORATORIO - 002
[Link]("ChinchaAlta
") Hijo =
[Link]("Pisco")
[Link]("El Tonel")
[Link]("El Puerto")
Hijo =
[Link]("Ica")
[Link]("Paracas")
[Link]("Ica")
[Link]("Nazca")
'**** ZONA CENTRO****
Padre = New
TreeNode("Centro")
[Link](Padr
e) 'Elementos Centro
Hijo =
[Link]("Huancayo")
Hijo =
[Link]("Cuzco")
End Sub
Private Sub TvElementos_AfterSelect(ByVal sender As [Link], ByVal e As
[Link]
.Forms. TreeViewEventArgs) Handles
[Link] [Link] =
[Link] [Link]
= [Link] [Link]
= [Link]
End
Sub End
Class
LABORATORIO - 003
Elaborar una aplicacion que permita registrar los datos de los Empleados de una Empresa, estas
seran mostradas en un ListView llamado LvPersonal, esta lista estara controlada por un Combo
llamado CboModo el cual mostrara los estados del ListView (Iconos
Grandes,Detalle,Lista,Iconos Pequeños,Tìtulos), tambien podran ser mostraos algunos
'Llena el Personal
Dim Personal As ListViewItem
Personal = New
ListViewItem("001", 0)
[Link]("Julio
Dávila")
[Link]("2,500.00"
) [Link](Personal)
Personal = New
ListViewItem("002", 0)
[Link]("Oscar
Ruiz")
[Link]("850.
00")
[Link](Person
al)
LABORATORIO - 003
[Link]("ChinchaAlta
") Hijo =
[Link]("Pisco")
[Link]("El Tonel")
[Link]("El Puerto")
Hijo =
[Link]("Ica")
[Link]("Paracas")
[Link]("Ica")
[Link]("Nazca")
'**** ZONA CENTRO****
Padre = New
TreeNode("Centro")
[Link](Padr
e) 'Elementos Centro
Hijo =
[Link]("Huancayo")
Hijo =
[Link]("Cuzco")
End Sub
Private Sub TvElementos_AfterSelect(ByVal sender As [Link], ByVal e As
[Link]
.Forms. TreeViewEventArgs) Handles
[Link] [Link] =
[Link] [Link]
= [Link] [Link]
= [Link]
End
Sub End
Class
LABORATORIO - 004
Elaborar una aplicación que permita obtener el factorial y si es un numero primo de un numero
atravez de la creacion de una clase, donde la clase debera validar el ingreso de los numeros y
debera calcular el factorial y si el numero es primo.
CLASE INFORME
Public Class Informe
Dim m_Numero As
Long 'Constructor de
la clase
Public Sub New(ByVal Numero As
Integer) m_Numero = Numero
End Sub
'Propiedad de la clase
Public Property Numero() As
Integer Get
Return
m_Numero End
Get
Set(ByVal value As
Integer) m_Numero =
value
End Set
End
Property
'Métodos de la clase
Public Function Factorial() As
Integer Dim X, F As Integer
If Numero > 11 Then
[Link]("Ingrese Valores entre 0 y 11", "Por
Favor") Exit Function
End
If F =
1
For X = 1 To
Semestre 2025 - I 154
126 HERRAMIENTAS DE DESARROLLO DE SOFTWARE
m_Numero F = F *
X
Next
Return F
End
Function
Public Function Primo() As
String Dim X As Integer
Dim Sw As Boolean = False
If m_Numero < 3 Then Sw =
False For X = 2 To m_Numero
-1
If m_Numero Mod X = 0
Then Sw = True
End
If Next
If Sw = True
Then Return
"No"
Else
Return
"Si" End If
End
Function End
Class
EN EL FORMULARIO
Public Class Form1
Private Sub BtnVer_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]
If [Link] = [Link] Then
[Link]("Ingrese Número", "Por
Favor") [Link]()
Exit
Sub End
If
Dim Numero As Integer
'Almacena el numero
ingresado
Numero =
[Link]([Link]) 'Crea
una instancia de la clase Informe
Dim Num As New Informe(Numero)
'Muestra los resultados
[Link] =
[Link] [Link]
= [Link]
End
Sub End
LABORATORIO - 005
Elaborar una aplicación que usando una clase nos permita obtener en el primer formulario el Total
vendido a un cliente, y en el formulario dos el total vendido al cliente con descuentos asi como el
total a pagar.
Get
Return
m_Cantidad End
Get
Set(ByVal value As Integer)
m_Cantidad =
value End Set
End Property
'Metodo de la clase
Public Function Total() As
Double Dim Utilidad,
PrecioVenta As Double Select
Case m_Cantidad
Case 1 To 10
Utilidad = 50
Case 11 To 20
Utilidad = 35.8
Case 20 To 40
Utilidad =
10 Case Is >
40
Utilidad =
5.5 End Select
PrecioVenta = m_PrecioCompra * (1 +
Utilidad / 100) Return PrecioVenta *
m_Cantidad
End Function
End Class
Public Class TotalPago
Inherits TotalCompra
Dim m_Descuento As
Double 'Constructor de la
clase
Sub New(ByVal Pc As Double, ByVal Cant As Integer, ByVal Des As Double)
[Link](Pc,
Cant) m_Descuento
= Des
End Sub
Return Pago
End
Function End
Class
En el
Formulario1
Public Class
Form1
En el
Formulario2
Public Class
Form2
Private Sub BtnCalcular_Click(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
Dim Precio, Utilidad As
Double Dim Cantidad As
Integer
Precio = [Link]([Link])
Cantidad =
[Link]([Link])
Utilidad =
[Link]([Link])
Dim R As New TotalPago(Precio, Cantidad,
Utilidad) [Link] =
[Link]("#,##0.00") [Link] =
LABORATORIO - 006
Elaborar una aplicación que use una clase para validar las notas al ingresar y que permita obtener
el promedio la Condicion (Aprobado o Desaprobado) la cualidad (Excelente o Bueno) de un
determinado alumno.
SESIÓN VII
BASE DE DATOS
CONTENIDO
Concepto
Una base de datos relacional es percibida por el usuario como una colección de
relaciones o tablas bidimensionales.
Ejemplo
405
GOMEZ JOSE 12
378
JOHNSON LUCY 25
tabla (relación)
fila (tupla)
columna (atributo)
El origen de la teoría relacional viene de la teoría de conjuntos. Una tabla debe ser vista como un
conjunto y para satisfacer un requerimiento de información se aplican operadores de conjunto
como unión, intersección, producto cartesiano, join, proyección, select, etc.
Ejemplo
Para seleccionar a todos los empleados que trabajan en el Departamento 10, use la siguiente instrucción SQL.
2 FROM empleado
3 WHERE num_dpto = 10;
relacionales. Discusión
El ANSI (American National Standards Institute) ha establecido a SQL como el lenguaje estándar
para operar sobre bases de datos relacionales.
Una base de datos relacional puede soportar un completo conjunto de operaciones
relacionales. Las operaciones relacionales manipulan conjuntos de valores de datos. Las tablas
pueden ser operadas para crear otras tablas. Las operaciones relacionales pueden ser
anidadas.
CLAVE PRIMARIA
Ejemplo
La clave primaria para la tabla EMPLEADOS consiste en la columna NUM_EMP. Cada fila en la tabla
es únicamente identificada por su valor NUM_EMP.
Clave Primaria
Discusión
No se permiten los duplicados en una Clave Primaria. La clave primaria debe ser única.
Las claves primarias generalmente no pueden ser cambiadas.
El UID de una entidad se mapeará a una Clave Primaria en su correspondiente tabla.
CLAVES PRIMARIAS COMPUESTAS
Una Clave Primaria que se conforma de múltiples columnas se llama Clave Primaria
Compuesta. Ejemplo
La clave primaria compuesta para la tabla CUENTA consiste en la combinación de las columnas
NUM_BANCO y NUM_CUENTA. Cada fila es únicamente identificada por sus valores de NUM_BANCO y
NUM_CUENTA.
Clave Primaria
Discusió
n
Las columnas de una clave primaria compuesta debe ser única en la combinación. Las
columnas individuales pueden tener duplicados, pero en la combinación, no se permiten
duplicados.
(nula). Ejemplo
NUM_EMP es la clave primaria de la tabla EMPLEADOS. Por lo tanto NUM_EMP debe ser definido
como NOT NULL.
Clave Primaria
Ejemplo
Clave Primaria
Dos de las filas contienen valores NULL en parte de la clave primaria compuesta. Tanto NUM_BANCO
como NUM_CUENTA deben ser definidos como NOT NULLS.
Una tabla puede tener más de una columna o combinación de columnas que pueden
servir como la clave primaria de la tabla. Cada una de ellas se llama Clave Candidata.
Ejemplo
Seleccione una clave candidata para ser la Clave Primaria para la tabla. Las otras
candidatas se convierten en Claves Alternas.
Ejemplo
Tabla
NUM-EMP APELL NOM NUM-DPTO ID-PLASUELD
EMPLEADOS
100 SMITH JOHN 10 9710
310 ADAMS JANE 15 8730
210 BROWN JIM 10 1157
405 GOMEZ JOSE 3394
378 JOHNSON LUCY 05 4477
Discusión
Una Clave Foránea (FK) es una columna o combinación de columnas en una tabla que es clave
primaria en la misma u otra tabla.
Ejemplo
Tabla
NUM-EMP APELL NOM NUM-DPTO ID-PLASUELD
EMPLEADOS
100 SMITH JOHN 10 9710
310 ADAMS JANE 15 8730
210 BROWN JIM 10 1157
405 GOMEZ JOSE 3394
378 JOHNSON LUCY 05 4477
Clav e Primaria
NUM-DPTONOM-DPTO
Tabla
10FINANZAS
15OPERACIONES DEPARTAMENTO
12MANUFACTURAS
25VENTAS
Discusión
Las claves foráneas son la implementación de las relaciones de un modelo de datos conceptual.
Las claves foráneas se basan en los valores de los datos y son puramente lógicas.
Ejemplo
NUM-DPTONOM- DPTO
NUM-EMP APELL NUM-DPTO
10FINANZAS
100 SMITH 10 15OPERACIONES
310 ADAMS 15 20MANUFACTURAS
210 BROWN 10 25VENTAS
405 GOMEZ
Tabla Tabla
EMPLEADOS DEPARTAMENTO
En la tabla CUENTA, la FK NUM_BANCO debe ser NOT NULL porque es parte de la PK.
Tabla Tabla
BANCO CUENTA
LENGUAJE SQL
SQL (Structured Query Language) es el lenguaje que se utiliza para comunicarse con la base de datos
Orden SQL
Base de Datos
Resultado
Lenguaje SQL
SELECT
Sintaxis:
offset]
Ejemplo:
Obtiene las noticias del día con un tope máximo de 10, ordenadas de la más reciente a la más antigua
Operadores Lógicos
Operador Uso
Es el "y" lógico. Evalua dos condiciones y devuelve un valor de verdad sólo si
AND ambas son
ciertas.
Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna
OR de las dos
es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión.
Operadores de Comparación
Operado Uso
r
< Menor que
> Mayor que
<> Distinto de
<= Menor ó Igual que
>= Mayor ó Igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparación de un modelo
Utilizado para especificar registros de una base de datos
In
COMANDO DESCRIPCIO
N
CREATE Utilizados para crear nuevas tablas, campos e índices DROP. empleado para eliminar
tablas o índices
ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los
campos
COMANDO DESCRIPCION
DELETE Utilizados para eliminar los registros de una tabla de una base de datos.
Permite generar consultas para ordenar, filtrar y extraer datos de la base de datos.
Cláusulas
Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o
manipular.
CLAUSUL DESCRIPCIO
A N
FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros.
WHERE Utilizadas para especificar las condiciones que deben reunir los registros que
se van a seleccionar.
HAVING Utilizada para expresar la condición que debe satisfacer cada grupo
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden
especifico.
AGRUPACION DE DATOS
Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para
devolver un único valor que se aplica a un grupo de registros.
Funció Descripció
n n
AVG Utilizada para calcular el promedio de los valores de un campo determinado
COUNT Utilizada para devolver el número de registros de la selección
SUM Utilizada para devolver la suma de todos los valores de un campo determinado
MAX Utilizada para devolver el valor más alto de un campo especificado
MIN Utilizada para devolver el valor más bajo de un campo especificado
GROUP BY
Combina los registros con valores idénticos, en la lista de campos especificados, en un único
registro. Para cada registro se crea un valor sumario si se incluye una función SQL agregada, como
por ejemplo Sum o Count, en la instrucción SELECT. Su
sintaxis es: SELECT campos FROM tabla WHERE criterio
GROUP BY campos del grupo GROUP BY es opcional. Los valores de resumen se omiten si no existe
una función SQL agregada en la instrucción SELECT. Los valores Null en los campos GROUP BY se
agrupan y no se omiten. No obstante, los valores Null no se evalúan en ninguna de las funciones
SQL agregadas. Se utiliza la
cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláusula HAVING para filtrar
los registros una vez
agrupados. A menos que contenga un dato Memo u Objeto OLE , un campo
de la lista de campos GROUP BY puede referirse a cualquier campo de las tablas que aparecen en
la cláusula FROM, incluso si el campo no está incluido en la instrucción SELECT, siempre y cuando
la instrucción SELECT incluya al menos una función SQL agregada. Todos los campos de la lista
de campos de SELECT deben o bien incluirse en la cláusula GROUP BY o como argumentos de
una función SQL
agregada. SELECT Id_Familia, Sum(Stock) FROM
Productos GROUP BY Id_Familia; Una vez que GROUP BY ha combinado los
registros, HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que
satisfaga las condiciones de la cláusula HAVING. HAVING es similar a
WHERE, determina qué registros se seleccionan. Una vez que los registros se han agrupado
utilizando GROUP BY, HAVING determina cuáles de ellos se van a
mostrar. SELECT Id_Familia Sum(Stock) FROM Productos GROUP BY
Id_Familia HAVING Sum(Stock) > 100 AND NombreProducto Like BOS*;
AVG
Calcula la media aritmética de un conjunto de valores contenidos en un campo especificado de una consulta.
Su
sintaxis es la siguiente
Avg(expr)
En donde expr representa el campo que contiene los datos numéricos para los que se desea
calcular la media o una expresión que realiza un cálculo utilizando los datos de dicho campo. La
media calculada por Avg es la media aritmética (la suma de los valores dividido por el número de
valores). La función Avg no incluye ningún campo Null en el
cálculo. SELECT Avg(Gastos) AS Promedio FROM
Pedidos WHERE Gastos > 100; Count
Calcula el número de registros devueltos por una consulta. Su sintaxis es la
siguiente Count(expr)
En donde expr contiene el nombre del campo que desea contar. Los operandos de expresión
pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser
intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL). Puede contar
cualquier tipo de datos incluso texto. Aunque expr puede realizar un cálculo sobre un campo, Count
simplemente cuenta el número de registros sin tener en
cuenta qué valores se almacenan en los registros. La
función Count no cuenta los registros que tienen campos null a menos que expr sea el carácter
comodín asterisco (*). Si utiliza un asterisco, Count calcula el número total de registros, incluyendo
aquellos que contienen campos null. Count(*) es considerablemente más rápida que Count(Campo).
No se debe poner el asterisco entre dobles comillas ('*'). SELECT
Count(*) AS Total FROM
Pedidos; Si expr identifica a múltiples campos, la función Count cuenta un registro sólo
si al menos uno de los campos no es Null. Si todos los campos especificados son Null, no se cuenta
el registro. Hay que separar los nombres de los campos con
ampersand (&). SELECT Count(FechaEnvío &
Transporte) AS Total FROM Pedidos; Max,
Min
Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de
una consulta. Su sintaxis
es: Min(expr)
Max(expr)
En donde expr es el campo sobre el que se desea realizar el cálculo. Expr pueden incluir el nombre
de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por
el usuario pero no otras de las funciones agregadas de
SQL). SELECT Min(Gastos) AS ElMin
FROM Pedidos WHERE Pais = 'España'; SELECT Max(Gastos) AS ElMax
FROM Pedidos WHERE Pais = 'España'; StDev,
StDevP
Devuelve estimaciones de la desviación estándar para la población (el total de los registros de la
tabla) o una muestra de la población representada (muestra aleatoria) . Su
sintaxis es: StDev(expr)
StDevP(expr)
En donde expr representa el nombre del campo que contiene los datos que desean evaluarse o una expresión
que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir
el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o
definida por el usuario pero no otras de las funciones
agregadas de SQL) StDevP evalúa una población, y StDev evalúa
una muestra de la población. Si la consulta contiene menos de dos registros (o ningún registro
para StDevP), estas funciones devuelven un valor Null (el cual indica que la desviación
estándar no puede calcularse).
SELECT StDev(Gastos) AS Desviacion FROM Pedidos WHERE Pai = 'España';
s
SELECT StDevP(Gastos AS Desviacio FROM Pedido WHER Pais 'España';
) n s E =
Sum
Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su
sintaxis es: Sum(expr)
En donde expr respresenta el nombre del campo que contiene los datos que desean sumarse o
una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr
pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser
intrínseca o definida por el usuario pero no otras de las
funciones agregadas de SQL). SELECT Sum(PrecioUnidad *
Cantidad) AS Total FROM DetallePedido; Var,
VarP
Devuelve una estimación de la varianza de una población (sobre el total de los registros) o una
muestra de la población (muestra aleatoria de registros) sobre los valores de un campo.
Su sintaxis es: Var(expr)
VarP(expr)
VarP evalúa una población, y Var evalúa una muestra de la población. Expr el nombre del campo
que contiene los datos que desean evaluarse o una expresión que realiza un cálculo utilizando los
datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una
tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario
pero no otras de las funciones agregadas de SQL) Si la consulta contiene menos de dos
registros, Var y VarP devuelven Null (esto indica que la varianza no puede calcularse). Puede
utilizar Var y VarP en una expresión de consulta o en una Instrucción SQL. SELECT
Var(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'España'; SELECT
VarP(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'España'.
COMANDOS DML
(definicion_de_columna [,definicion_de_columna ]
...) donde la definición de columna es de la forma :
También se puede definir una clave primaria sobre una columna, usando la
palabra clave KEY o PRIMARY KEY.
Solo puede existir una clave primaria en cada tabla, y la columna sobre la que
se define una clave primaria no puede tener valores NULL, Si esto no se
especifica de forma explícita, SQL lo hará de forma automática.
Por ejemplo, si queremos crear un índice en la columna nombre de la tabla alumno crearemos
la tabla de la siguiente manera.
Ejemplo:
nomalum varchar(20) not null, diralum varchar(40) not null, disalum varchar(40) not null);
DROP TABLE
nombre_de_tabla; Ejemplo :
ALTER TABLE: Permite modificar la estructura de una tabla existente. Por ejemplo, se pueden
añadir o eliminar columnas, crear y destruir índices, cambiar el tipo de una columna existente o
renombrar columnas o la propia tabla. También es posible modificar el comentario y el tipo de la
tabla
Warnings: 0 Ejemplo
NULL)
COMANDOS DLL
INSERT
Sintaxis:
DEFAULT),...), (...),...
SET nombre_columna=(expresión |
INSERT INTO noticias (id, titulo, texto, categoria, fecha) VALUES (37, “Nueva promoción en
SESIÓN VII
ADO .NET
CONTENIDO
ADO NET
Objeto de acceso a datos
Acceso a Datos
PRÁCTICA DE REFORZAMIENTO
Fuente: [Link]
El problema es comunicar un programa o aplicación aspx con una base de datos y mas que
comunicar se pretende que el programa o aplicación realice una serie de procesos u operaciones
con la base de datos o mejor aun con el conjunto de tablas que contiene una base de datos.
La primera nota a recordar es que una base de datos puede estar físicamente en el servidor y en
algún folder o directorio del disco duro de dicha maquina servidora, por ejemplo, c:\DATOS\
[Link], como se observa la base que se construyo en MICROSOFT access ([Link]) se
almaceno en el disco c en el folder DATOS.
Sin embargo también es necesario conocer que así como existen servidores de páginas ( web
server ), servidores de correo ( mail server ), servidores de ftp ( ftp server ), etc, también existen
servidores de bases de datos ( database server ), los más comunes son el sqlserver de microsoft,
oracle, mysql, etc, estos servidores también pueden crear, administrar y procesar una base de
datos, por supuesto que el procedimiento que se dio para crearla en access en el tema anterior no
se puede usar para crear y cargar una base de datos en un servidor de bases de datos.(esperar
libros de bases de datos en programación fácil en un próximo futuro).
El modo de comunicarse entre nuestro programa o aplicación y la base de datos (ya sea física o un
dbserver), implica que ambos manejen un lenguaje de programación común, es decir no se puede
mandar una instrucción en csharp, o en basic o pascal a la base de datos y además esperar que
esta ultima la entienda ( para entender esto, una razon muy sencilla es que la base de datos
tendría que conocer o comprender todos los lenguajes de programación), para resolver este
La pregunta es ahora como mandamos las instrucciones sql a la base de datos, la respuesta son los
OBJETOS ADO NET que estamos analizando en orden y propósito de uso, los estaremos
explicando.
OBJETO CONNECTION:- OBJETO QUE SE UTILIZA PARA ESTABLECER UNA CONECCION O ENLACE A
LA BASE DE DATOS.
Este objeto primero se tendrá que crear en el programa y luego se tendrá que cargar con dos
parámetros (ver ejemplo más abajo), el primer parámetro es el proveedor o la fuente que
proporcionara los datos, los proveedores o fuentes de datos que existen son:
NOTA: Este es el que se usa en los ejemplos siguientes, observar que aunque VISUAL BASIC 2008
trae por default los controles SQL, en este capitulo se usaran los objetos OLEDB, lo malo es que se
tendrán que crear, cargar y codificar a mano y no olvidar incluir en la parte de arriba del programa
la instrucción using [Link];
ODBC NET .- BASES DE DATOS QUE USAN ODBC COMO MEDIO DE COMUNICACION CON OTRAS
BASES DE DATOS Y APLICACIONES COMO NOTA A CONSIDERAR ODBC NET NO ESTA INCLUIDA POR
DEFAULT EN MICROSOFT NET, SE TIENE QUE BAJAR DE MICROSOFT, AUNQUE SI SE INSTALO
CORRECTAMENTE EL COMPULDARO VISUAL BASIC 2008 YA ESTARA INCLUIDA
connection = NEW
OLEDBCONNECTION(“Provider=[Link].4.0;Data Source=c:\
progfacil\lauro\[Link]”)
Es una sola string y los dos parámetros mencionados van separados por el
advertidos.
//Provider=[Link].4.0;
Data Source=c:\bin\[Link];
SQLCONNECTION
Este objeto es el encargado de la conexión a una base datos SQL Server .Este objeto está
diseñado y optimizado para conectarse a base de datos SQL Server en las versiones indicadas.
SQLDATAADAPTER
Los requerimientos pueden ser el contenido de una tabla de una base de datos o parte de ella,así
como la actualización, adición o eliminación de la información.
SQLCOMMAND
Este objeto se utiliza para almacenar el comando con el requerimiento para la conexión
establecida. El comando consiste en una instrucción SQL que depende del requerimiento deseado y
puede ser Select, Update, Insert ó Delete.
DATASET
Este objeto se encarga de recibir el conjunto de datos que devuelve la conexión a través de
objeto DataAdapter,según el comando establecido por el objeto Command.
Procedimiento,-
Propiedad Valor
Connecction String SqlConecction1
Command Text
Propiedad Valor
Connecction String SqlConecction1
SelectCommand SqlCommand1
Clic en Conjunto de
datos sin tipo, clic en
Aceptar
TabControl1
TabPage1 Text Lista de Productos
TabPage2 Text Lista de Categorías
En el DataGrid se presentan los datos provenientes del conjunto de datos (DataSet) asignando en
la propiedad DataSoirce lo siguiente:
Propiedad Valor
Datasource Dataset1
Código [Link]()
[Link](Dataset1)
Ejemplo(sqladapter2,sqlcommand2,dataset2,datagrid2…)
VISUAL NET
(Acceso a Datos)
Imports [Link]
Imports [Link]
Public Class Form28
Private Sub Button1_Click(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
Try
Dim cn As New SqlConnection("Data Source=(local);Initial Catalog=Northwind;uid=sa;pwd=")
Dim sql As String, nivel As Integer
sql = "select * from usuario where iduser='" & [Link] & "' and " & " pwd='" & [Link]
&
"'"
[Link] = sql
Dim cmd As New SqlCommand(sql, cn)
Dim dato As SqlDataReader, acceso As Boolean
[Link]()
dato =
[Link]
[Link]()
Dim usuario, contraseña As
String usuario = dato(0)
contraseña = dato(2)
nivel = Val(dato(3))
[Link]("El usuario es :" & usuario, "Prueba")
[Link]("La Contraseña es1 :" & contraseña,
"Prueba") [Link]("El Nivel es " & nivel, "Prueba")
MsgBox("hay
conexion")
[Link]()
If nivel = 1 Then
[Link] =
True
[Link] =
True
[Link] =
True
[Link] =
True
Else
If nivel = 2 Then
[Link] =
False
[Link] =
True
[Link] =
True
[Link] =
True
Else
[Link] =
False
[Link] =
False
[Link] =
False
[Link] =
True
End If
End If
[Link]
()
Catch ex As SqlException
MsgBox("no hay
conexion")
End
Try End
Semestre 2025 - I 159
Sub
End Class