Vous êtes sur la page 1sur 34

VISUAL BASIC 1

VISUAL BASIC

Es una aplicación orientada a Windows que nos permite crear programas,


procesos, sistemas a través de una serie de herramientas que el Windows nos
ofrece.
Visual Basic en un lenguaje orientado a objetos a través de los cuales podemos
implementar algún o algunos formularios con controles y códigos de programa.

TERMINOS EN VISUAL BASIC:

CONTROL O OBJETO: Es un objeto que viene predeterminado con Visual


Basic y que puede ser creado a través de una herramienta que esta en la barra de
herramientas de controles.
Ejemplo:
Label, Text, Option, Check, Etc.

La Caja de herramientas contiene las herramientas que utiliza para dibujar


controles en sus formularios. Para abrir la Caja de herramientas, elija Caja de
herramientas en el menú Ver.

Puntero. Este es el único elemento de la Caja de herramientas que no


dibuja un control. Utilícelo para cambiar el tamaño o mover un control
tras haberlo dibujado en un formulario.

PictureBox (Imagen). Utilícelo para mostrar imágenes gráficas (bien


decorativas o activas), como un contenedor que recibe la salida de
métodos gráficos, o como un contenedor de otros controles.

Label (Etiqueta). Utilícelo para el texto que no desee que el usuario


cambie, como el título bajo un gráfico.

TextBox (Cuadro de texto). Utilícelo para contener texto que el


usuario pueda bien introducir o bien cambiar.

Frame (Marco). Utilícelo para crear una agrupación gráfico o funcional


de controles. Para agrupar controles, dibuje primero el Frame, y luego
dibuje los controles dentro del marco.

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 2

CommandButton (Botón de comando). Utilícelo para crear un botón


que el usuario pueda elegir para desencadenar un comando.

CheckBox (Casilla de verificación). Utilícelo para crear un cuadro que


el usuario pueda elegir fácilmente para indicar si algo es verdadero o
falso, o para mostrar múltiples alternativas cuando el usuario pude
elegir más de una.

OptionButton (Botón de opciones). Utilícelo en un grupo de botones


de opciones para mostrar múltiples alternativas de entre las que el
usuario puede elegir sólo una.

ComboBox (Cuadro combinado). Utilícelo para dibujar una


combinación de cuadro lista y cuadro de verificación. El usuario puede,
bien elegir un elemento de la lista o bien introducir un valor en el
cuadro de texto.

ListBox (Cuadro de lista). Utilícelo para mostrar una lista de los


elementos de entre los que el usuario puede elegir uno. La lista puede
ser desplazada si tiene más elementos de los que puede mostrarse en una
sola vez.

HScrollBar (Barra de desplazamiento horizontal). Utilícela para


proporcionar una herramienta gráfica para la navegación rápida a lo
largo de una larga lista de elementos o una gran cantidad de
información, para indicar la posición actual en una escala, o como un
dispositivo de entrada o indicador de velocidad o cantidad.

VScrollBar (Barra de desplazamiento vertical). Utilícela para


proporcionar una herramienta gráfica con la que se pueda desplazarse
rápidamente a lo largo de una lista de elementos o una gran cantidad de
información, para indicar la posición actual en una escala o como un
dispositivo de entrada o indicador de velocidad o cantidad.

Timer (Cronómetro). Utilícelo para generar eventos en intervalos


preestablecidos. Este control es invisible en tiempo de ejecución.

DriveListBox (Cuadro de lista de unidades). Utilícelo para mostrar


las unidades de disco válidas.

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 3

DirListBox (Cuadro de lista de directorios). Utilícelo para mostrar


directorios y rutas de acceso.

FileListBox (Cuadro de lista de archivos). Utilícelo para mostrar una


lista de archivos.

Shape (Forma). Utilícelo para dibujar una variedad de figuras en su


formulario en tiempo de diseño. Puede elegir rectángulo, rectángulo
redondeado, cuadrado, rectángulo redondeado, elipse o círculo.

Line (Línea). Utilícelo para dibujar una variedad de estilos de línea en


su formulario en tiempo de diseño.

Image (Imagen). Utilícelo para mostrar una imagen gráfica de un mapa


de bits, icono, o metarchivo en su formulario. Las imágenes mostradas
en un control Image sólo pueden ser decorativas y utilizan muchos
menos recursos que un PictureBox.

Data (Dato). Utilícelo para proporcionar acceso a datos de bases de


datos mediante controles enlazados en su formulario.

Contenedor de OLE. Utilícelo para vincular e incrustar objetos de


otras aplicaciones en su aplicación Visual Basic.

PROPIEDAD: Es una característica o atributo que toma el objeto o control


puede ser el color, tamaño, estado, los valores predeterminados, el texto del
mensaje, etc.
Ejemplo:
Caption, Name, BackColor, Font, ForeColor, Etc.

ALGUNAS PROPIEDADES COMUNES:

Name (Nombre): Especifica el nombre que se le asigne al control, u solo a


través de él se puede acceder a las propiedades y métodos de los controles.

Appearance (Apariencia): Tiene dos valores, 0 para que se vea plano, y 1 para
que se vea en tres dimensiones.

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 4

Back Color (Color de Fondo): Asigna el color de fondo sobre el que aparece el
texto o se dibujan los gráficos.

Fore Color (Color de Primer Plano): Asigna un color al primer plano (color de
la tinta o del texto).

Font (Fuente o Tipo de Letra): Asigna el tipo de letra, los atributos y el tamaño
de la fuente que se usa para un control de texto (el texto en un control TextBox,
el título de una etiqueta o de un botón de comando, etc.).

Caption (Título): Asigna el texto que aparece en muchos controles y que el


usuario no puede introducir, por ejemplo el texto de un control Label, el título de
un botón de comando, o de una cadena de caracteres que se muestran en un
cuadro de activación o en un botón de opción.

Text (Texto): Asigna el texto que se muestra en los controles y acepta que lo
introduzca el usuario, por ejemplo, el control TextBox.

Width (Ancho) y Height (Alto): Estas propiedades determinan las dimensiones


de los controles.

Left (Izquierda) Top (Arriba): Estas propiedades asignan las coordenadas de la


esquina superior izquierda del control y se expresan en las unidades del
contenedor (normalmente de un formulario).

Enabled (Activado): Su valor es True por omisión, y significa que el control se


puede usar. Si se pone False se desactiva el control, aparece en gris y no se
puede usar.

Visible: Esta propiedad se pone como False para que el control sea invisible.

METODO: Es un proceso que se ejecuta (predeterminado) según el control que


se tiene en uso. Los objetos también tienen métodos, que son las acciones que
pueden realizar. Los métodos se pueden considerar como las acciones que
realizan los objetos.

Ejemplo:
Clear, Setfocus, Refresh, Etc.

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 5

ALGUNOS MÉTODOS COMUNES:

Clear (Borrar): Algunos métodos son simples verbos que dicen al objeto la
acción que deben realizar. El método Clear le dice el control que borre su
contenido. Si el control es un ListBox, el método Clear elimina todas sus
entradas.

AddItem (Añadir Entrada), RemoveItem (Borrar Entrada): Estos métodos


se utilizan para manipular las entradas de un control ListBox o ComboBox. La
aplicación no necesita saber cómo están almacenadas las entradas en el control.
Lanza el método AddItem, y el control se encarga de añadir o insertar la nueva
entrada a la lista.

MoveFirst (Primero), MoveLast (Último), MoveNext (Siguiente),


MovePrevious (Anterior): Se sitúan en el primer, el último, el siguiente o el
anterior registro del objeto Recordset especificado y lo convierten en el registro
actual. Puede utilizar los métodos Move para desplazarse de un registro a otro
sin aplicar una condición.

Refresh (Actualizar): Fuerza que un formulario o control sea redibujado.


Generalmente, el dibujado de un formulario o control se controla
automáticamente cuando no ocurren eventos. Sin embargo, hay muchas
situaciones en las que se quiere actualizar inmediatamente un formulario o un
control.
Se puede usar el método Refresh con un control Data para abrir o reabrir la base
de datos (si han cambiado los valores de las propiedades DatabaseName,
ReadOnly, Exclusive o Connect) y reconstruir el dynaset de la propiedad
Recordset del control.

SetFocus (Enfoque): Mueve el enfoque al control o formulario especificado. El


objeto debe ser un objeto Form, un objeto MDIForm o control que pueda recibir
el enfoque. Después de invocar el método SetFocus, cualquier entrada del
usuario se dirige al formulario o control especificado.

Show: Presenta un objeto MDIForm o Form. Si el formulario especificado no


está cargado cuando se invoca el método Show, Visual Basic lo carga
automáticamente.

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 6

PROCEDIMENTOS, SUCESOS O EVENTOS: Es el proceso que se va a


ejecutar cuando se tome una acción con algún objeto o control.

EVENTO: Una acción reconocida por un objeto, como hacer clic con el Mouse
o presionar una tecla, para la que se puede escribir código para responder. Los
eventos pueden producirse como resultado de una acción del usuario o por
programa, o pueden ser disparados por el sistema.
Ejemplo:
Click encima de un botón de comando.

ALGUNOS SUCESOS COMUNES:


Los sucesos determinan la relación de los controles a las condiciones externas.
Los controles reconocen los sucesos, pero es la aplicación la que la maneja. Un
botón de comando es capaz de reconocer que alguien lo ha pulsado, pero no es
capaz de reaccionar al suceso si no se le proporciona un código que lo indique.
En otras palabras, somos nosotros los que debemos decir a Visual Basic lo que
debe hacer cuando el usuario hace clic sobre un determinado botón de comando.
Una vez que le especificamos la rutina para el suceso control Click, la subrutina
se ejecuta cada vez que se hace clic sobre este control.

Click (Clic), DblClick (Doble Clic): El suceso Click tiene lugar cuando el
usuario hace clic con el botón izquierdo del ratón; el DblClick tiene lugar
cuando el usuario hace doble clic en el botón izquierdo del ratón.

MouseDown (Ratón Abajo) MouseUp (Ratón Arriba): El suceso


MouseDown tiene lugar cuando se presiona el botón del ratón, y el MouseUp
cuando se suelta.

MouseMove (Movimientos del Ratón): Este suceso tiene lugar continuamente


mientras se mueve el ratón sobre un control.

KeyDown (Tecla Abajo), KeyUp (Tecla Arriba): El suceso KeyDown tiene


lugar cuando se pulsa una tecla, y el KeyUp cuando se suelta.

KeyPress (Pulsación de Tecla): El suceso KeyPress se usa habitualmente para


escribir gestores de teclado para cuadros de texto, porque este suceso tiene lugar
antes de que se muestre en el cuadro de texto el carácter pulsado.

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 7

VARIABLES:
En Visual Basic, como en cualquier otro lenguaje de programación, las variables
se usan para almacenar valores durante la ejecución de un programa. Las
variables son huecos en memoria en los que se puede dejar valores para
recogerlos cuando se necesiten.
En la mayoría de los lenguajes de programación, se deben definir las variables.
En otras palabras, se debe decir por adelantado al compilador las variables que se
van a usar. La razón por la que se hace así es para ayudar al compilador. Si el
compilador conoce las variables y sus tipos, puede producir un código más
optimizado.

TIPOS DE VARIABLES:

VARIABLES NUMÉRICAS: Almacenan números. Los números se pueden


almacenar con muchos formatos, dependiendo del tamaño de los números y de
su precisión. Esta es la razón por la que hay varios tipos de variables numéricas.

TIPO DE DATOS ¿QUE HACE?


Integer Almacena valores enteros entre –32768 y 32767.
Long Almacena enteros largos entre –2147483648 y
2147483647
Single Almacena números de coma flotante de precisión sencilla.
Puede representar los números negativos entre –
3.402823E38 y –1.401298E-45 y los números positivos
entre 1.401298E-45 y 3.402823E38. Observe que el tipo
Single no puede representar el número 0 con exactitud.
Double Almacena números de coma flotante de doble precisión.
Puede representar los números negativos entre –
1.79769313486232E308 y –4.94065645841247E-324 y
los números positivos entre 4.94065645841247E-324 y
1.79769313486232E308.
Currency Almacena números de coma fija con cuatro números
decimales. Este tipo puede representar números entre –
922337203685477.5808 y 922337203685477.5808

Para definir variables de cualquiera de los tipos que hemos visto, se usa la
sentencia Dim, seguida del nombre de la variable, la palabra clave As, y el tipo
de la variable.

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 8

Ejemplo;
Dim pagos As Single

VARIABLES DE TIPO STRING: Sólo almacenan texto, y se definen con la


siguiente sentencia:
Dim algúntexto As String

VARIABLES DE TIPO BOOLEAN: Almacena valores True/False


(Verdadero/Falso). Las variables Boolean son realmente enteros que tiene el
valor –1 (para True) y 0 (para False). Las variables Boolean se usan para la
comprobación de condiciones. Las variables Boolean se definen de esta manera:
Dim sexo As Boolean

VARIABLES DE TIPO DATE: Almacena fechas. Las variables tipo Date


presentan las fechas de acuerdo al formato de fecha corto reconocido por el
sistema. Se define de esta manera:
Dim fechadenacimiento As Date

SENTENCIAS DE CONTROL DE FLUJO:

If…Then…End If:
La estructura If comprueba una condición especifica y, si es verdadera, ejecuta
las sentencias que le siguen. La estructura If puede tener o una sola línea, o
varias líneas. Para ejecutar una sentencia condicional se usa la sintaxis de una
sola línea:

If condición Then sentencia


Visual Basic evalúa la condición y, si es verdadera, ejecuta la sentencia que
viene a continuación. Si la condición no es verdadera, continua con la sentencia
siguiente de la estructura.
Ejemplo:
If (sexo = “F”) or (sexo = “f”) Then resultado = (entradaestatura – 100) * 0.85

La sintaxis de varias líneas:


If condición Then
sentencias
End If

Ejemplo:

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 9

If (sexo = “F”) or (sexo = “f”) Then


resultado = (entradaestatura – 100) * 0.85
End If

If…Then…Else…End If:
Una variación de la sentencia If …Then es la sentencia If…Then…Else … End
If, que ejecuta un bloque de sentencias si la condición es verdadera, y otro
bloque si es falsa. La sintaxis de la sentencia If … Then … Else End If es:
If condición Then
Bloque de sentencias 1
Else
Bloque se sentencias 2
End If

Visual Basic evalúa la condición y, si es verdadera, ejecuta el primer bloque de


sentencias y luego salta a las sentencias que hay después de End If. Si la
condición es falsa, Visual Basic ignora el primer bloque de sentencias y ejecuta
las que hay a continuación de la palabra clave Else.
Otra variación de la sentencia If … Then … Else usa varias condiciones con la
palabra clave ElseIf:
If condición 1 Then
Bloque de sentencias 1
ElseIf condición 2 Then
Bloque se sentencias 2
ElseIf condición 3 Then
Bloque se sentencias 3
Else
Bloque se sentencias 4
End If

Podemos poner cualquier número de cláusulas desde arriba y, si una de ellas es


verdadera, se ejecuta el bloque de sentencias correspondiente. La cláusula Else
se ejecutará si ninguna de las expresiones anteriores es verdadera.
Ejemplo:
If puntuación < 50 Then
Resultado = “No admitido”
ElseIf puntuación < 75 Then
Resultado = “Pasable”
ElseIf puntuación > 90 Then

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 10

Resultado = “Muy bueno”


Else
Resultado = “Excelente”
EndIf

ESTRUCTURAS IF … THEN MÚLTIPLES:


Observamos que una vez que se ha encontrado una condición verdadera, Visual
Basic ejecuta las sentencias asociadas, salta el resto de las cláusulas y continua
con la ejecución del programa con las sentencias que hay después de End If. Por
esta razón podemos usar la siguiente estructura, más complicada, de varias
sentencias If simples:
If puntuación < 50 Then
Resultado= “No admitido”
End If
If puntuación < 75 And puntuación >= 50 Then
Resultado= “Pasable”
End If
If puntuación < 90 And puntuación >= 75 Then
Resultado= “Muy bueno”
End If
If puntuación > 90 Then
Resultado= “Excelente”
EndIf

Debido a que la estructura ElseIf puede crear código eficiente pero difícil de leer,
hay una alternativa: la sentencia Select Case.

SELECT CASE:
La estructura Select Case compara la misma expresión con diferentes valores. La
ventaja de esta sentencia sobre If … Then múltiples hace que el código sea más
fácil de leer y mantener.
La estructura Select Case comprueba una sola expresión, que se evalúa una sola
vez al principio de la estructura. El resultado de esta comprobación se compara
con varios valores y, si coincide con uno de ellos, se ejecuta el bloque de
sentencias correspondiente. Sintaxis:
Select Case expresión
Case valor 1
Bloque de sentencias 1
Case valor 2

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 11

Bloque de sentencias 2
.
.
.
Case Else
Bloque de sentencias
End Select

Ejemplo:
Select Case WeeDay(Date)
Case 1
NombreDía= “Lunes”
Mensaje= “Feliz semana”
Case 6
NombreDía= “Sábado”
Mensaje= “Feliz fin de semana”
Case 7
NombreDía= “Domingo”
Mensaje= “ ¿Has tenido un buen fin de semana”
Case Else
Mensaje= “ ¡Bienvenido de nuevo”

End Select

La variable expresión que se evalúa al principio de la sentencia, es el número de


día de la semana, tal como lo devuelve la función WeeDay(Date) (un valor en el
rango de 1 y 7). Después se compara el valor de la expresión con los valores que
tiene cada palabra clave Case. Si coincide, se ejecuta el bloque de sentencias que
viene a continuación, y después salta el programa a la sentencia siguiente al End
Select. El bloque de la sentencia Case Else es opcional y se ejecuta si no
coincide ninguno de los valores de las sentencias Case anteriores.

SENTENCIAS DE CONTROL DE BUCLE:

DO … LOOP:
Ejecuta un bloque de sentencias mientras la condición sea verdadera. Existen dos
variantes de la sentencia Do … Loop, pero ambas usan el mismo modelo básico.
Visual Basic evalúa la expresión y, si la expresión es falsa, el programa continúa
con las sentencias que van después del bucle.

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 12

El bucle se ejecuta mientras (While) la condición sea verdadera o hasta (Until)


que la condición se hace verdadera. Las dos variaciones del bucle Do usan las
palabras clave While y Until para especificar hasta cuándo se van a ejecutar las
sentencias. Para ejecutar un bloque sentencias mientras la condición sea
verdadera, se usa la siguiente sintaxis:
Do While condición
Bloque de sentencias
Loop

Para ejecutar un bloque de sentencias hasta que la condición se haga verdadera,


se usas esta otra sintaxis:
Do Until condición
Bloque de sentencias
Loop

Cuando Visual Basic ejecuta los bucles anteriores, evalúa primero la condición.
Si es falsa, se salta el bucle Do While o Do Until. Cuando se llega a la sentencia
Loop, Visual Basic evalúa de nuevo la expresión y repite el bloque de sentencias
si la expresión en el bucle Do While es verdadera, o si la expresión en el bucle
Do Until es falsa.
El bucle Do se repite todas las veces que sea necesario siempre que la condición
sea verdadera (o distinta de cero si la condición evalúa un número).

FOR … NEXT: El bucle For … Next es una de las estructuras de bucle más
antiguas dentro de los lenguajes de programación. A diferencia del bucle Do, el
bucle For … Next requiere que se conozca el número de veces que se van a
ejecutar las sentencias del bucle. Este bucle es una variable (llamada el contador
del bucle) que incrementa o disminuye su valor durante cada repetición del
bucle. Su sintaxis es:
For contador = principio To final [Step incremento]
Sentencias
Next [contador]

(las palabras entre corchetes son opcionales). Los argumentos contador,


principio, final e incremento son todos numéricos. El bucle se ejecuta hasta que
el contador llegue (o exceda) el valor final.

Cuando ejecuta un bucle For … Next, Visual Basic hace lo siguiente:


1. Pone contador con el valor de principio.

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 13

2. Comprueba si contador es mayor que final. Si lo es, sale del bucle. Si


incremento es negativo, Visual Basic comprueba si contador es menor que
final, en cuyo caso sale de bucle.
3. Ejecuta el bloque de sentencias.
4. Incrementa contador con el valor de incremento. Si no se ha especificado
incremento, el contador se incrementa en 1.
5. Repite las sentencias.

La parte más importante a tener en cuenta cuando se trabaja con bucle For Next
es que el contador del bucle se establece al principio del bucle. Si cambiamos el
valor de la variable final mediante una sentencia dentro del bucle, no se detecta
el cambio y se ejecuta como si no se hubiera producido.

WHILE … WEND: El bucle While … Wend ejecuta un bucle de sentencias


mientras una condición es verdadera. Este bucle tiene la siguiente sentencia:
While condición
Bloque de sentencias
Wend
Si condición es verdadera, se ejecuta todas las sentencias, y cuando se llega a la
sentencia Wend, se devuelve el control a la sentencia While, que evalúa de nuevo
a la condición. Si la condición sigue siendo verdadera, se repite el proceso. Si la
condición es falsa, el programa continúa con la sentencia que viene a
continuación del Wend.

PARTE PRACTICA

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 14

Objeto Propiedad Valor


Label1 BackColor (Color de relleno)
Caption (Título) Estilos de Alineación
Font (Fuente)
ForeColor (Color de letra)

Command1 Click Text1.SetFocus


Private Sub Command1_Click() End Sub
Text1.Text = "" Command3 Click
Text1.SetFocus Private Sub Command3_Click()
End Sub Text1.Text = "Bienvenido a Visual
Command2 Click Basic 4.0"
Private Sub Command2_Click() Text1.SetFocus
Text1.Text = Date( ) End Sub

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 15

Objeto Propiedad Valor


Text1 MultiLine True
ScrollBars 3-Both

Objeto Propiedad Valor


Check1 Alignment 1 – Right Justify

Command1 Click pagos = Pmt(0.01 * Text2.Text / 12,


Private Sub Command1_Click() Text3.Text, -Text1.Text, 0,
Text1.Text = "" Check1.Value)
Text2.Text = "" MsgBox Format$(pagos, "#.00")
Text3.Text = "" End Sub
Check1.Value = False
End Sub Command3 Click
Private Sub Command3_Click()
Command2 Click End
Private Sub Command2_Click() End Sub
Dim pagos As Single

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 16

Check1 Click Command1 Click


Private Sub Check1_Click() Private Sub Command1_Click()
If Text1.FontBold = True Then If Text2.Text = 16 Then
Text1.FontBold = False Text1.FontSize = 16
Else Else
Text1.FontBold = True If Text2.Text = 14 Then
End If Text1.FontSize = 14
End Sub Else
If Text2.Text = 12 Then
Check1= FontBold (Letra negrita) Text1.FontSize = 12
Check2= FontItalic (Letra cursiva) Else
Check3= FontUnderline (Letra Text1.FontSize = 10
subrayada) End If
Check4= FontStrikethru (Letra End If
tachada) End If
End Sub
Option1 Click
Private Sub Option1_Click() Command2 Click
Text1.ForeColor = RGB(0, 0, 0) Private Sub Command2_Click()
End Sub Text1.Text = ""
Text2.Text = ""
Option1=RGB(0,0,0) Check1.Value = Unchecked
Option2=RGB(255,0,0) Check2.Value = Unchecked
Option3=RGB(0,255,0) Check3.Value = Unchecked
Option4=RGB(0,0,255) Check4.Value = Unchecked
Option1.Value = True

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 17

Text1.ForeColor = RGB(0, 0, 0) Command3 Click


Text1.FontSize = 8 Private Sub Command3_Click()
Text1.SetFocus End
End Sub End Sub

Objeto Propiedad Valor


Label1 Name EtiquetaEstatura
Label2 Name EtiquetaSexo
Label3 Name EtiquetaPeso
Label1 Name PesoIdeal
BordeStyle 1 – FixedSingle
Text1 Name EntradaEstatura
Text2 Name EntradaSexo
Command1 Name CalcularPeso
Command2 Name BorrarDatos
Command3 Name Salir

CalcularPeso Click
Private Sub CalcularPeso_Click()
estatura = EntradaEstatura.Text
sexo = EntradaSexo.Text
If (sexo = "F") Or (sexo = "f") Then resultado = (estatura - 100) * 0.87
If (sexo = "M") Or (sexo = "m") Then resultado = (estatura - 100) * 0.92
PesoIdeal.Caption = Str(resultado) + " Kilos"
End Sub

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 18

BorrarDatos Click End Sub


Private Sub BorrarDatos_Click()
EntradaEstatura.Text = "" Salir Click
EntradaSexo.Text = "" Private Sub Salir_Click()
PesoIdeal.Caption = "" End
EntradaEstatura.SetFocus End Sub

Ejemplo N° 7: Realizar un programa que:


Ingrese: Nombre, Nota 1, Nota 2 y Nota 3.
Halle e Imprima: Promedio y un mensaje si esta Aprobado ó Desaprobado.

Command1 Click mensaje = "Desaprobado"


Private Sub Command1_Click() End If
Dim n1 As Integer Label8.Caption = mensaje
Dim n2 As Integer End Sub
Dim n3 As Integer Command2 Click
Dim pro As Integer Private Sub Command2_Click()
n1 = Text2.Text Text1.Text = ""
n2 = Text3.Text Text2.Text = ""
n3 = Text4.Text Text3.Text = ""
pro = (n1 + n2 + n3) / 3 Text4.Text = ""
Label7.Caption = CInt(pro) Label7.Caption = ""
If (pro >= 10.5) Then Label8.Caption = ""
mensaje = "Aprobado" Text1.SetFocus
Else End Sub

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 19

Command3 Click End


Private Sub Command3_Click() End Sub

Objeto Propiedad Valor


Combo1 List Abarrotes
Medicinas, etc.
Command1 Click End Sub
Private Sub Command1_Click()
If Command1.Caption = "Agregar" Command3 Click
Then Private Sub Command3_Click()
List1.AddItem (Text1) For x = 0 To List1.ListCount
Else List2.AddItem (List1.List(x))
List1.AddItem (Text1) Next
Command1.Caption = "Agregar" List1.Clear
End If Text1.SetFocus
Text1.Text = "" End Sub
Command1.Enabled = True
Text1.SetFocus Command4 Click
End Sub Private Sub Command4_Click()
List1.RemoveItem (List1.ListIndex)
Command2 Click Text1.SetFocus
Private Sub Command2_Click() End Sub
List2.AddItem (List1)
List1.RemoveItem (List1.ListIndex)

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 20

Command5 Click List2.AddItem (List1)


Private Sub Command5_Click() List1.RemoveItem
Text1 = List1 (List1.ListIndex)
List1.RemoveItem (List1.ListIndex) Else
Command1.Caption = "Actualizar" List1.AddItem (List2)
Text1.SetFocus List2.RemoveItem
End Sub (List2.ListIndex)
End If
Command6 Click End Sub
Private Sub Command6_Click()
List1.Clear Command3 Click
Text1.SetFocus Private Sub Command3_Click()
End Sub If Command2.Caption = ">" Then
For x = 0 To List1.ListCount
Command6 Click List2.AddItem (List1.List(x))
Private Sub Command6_Click() Next
If Command2.Caption = ">" Then List1.Clear
List1.Clear Else
Else For x = 0 To List2.ListCount
List2.Clear List1.AddItem (List2.List(x))
End If Next
Text1.SetFocus List2.Clear
End Sub End If
End Sub
List2 Click
Private Sub List2_Click() Command4 Click
Command2.Caption = "<" Private Sub Command4_Click()
Command3.Caption = "<<" If Command2.Caption = ">" Then
End Sub List1.RemoveItem
(List1.ListIndex)
List1 Click Else
Private Sub List1_Click() List2.RemoveItem
Command2.Caption = ">" (List2.ListIndex)
Command3.Caption = ">>" End If
End Sub Text1.SetFocus
End Sub
Command2 Click
Private Sub Command2_Click() Command5 Click
If Command2.Caption = ">" Then Private Sub Command5_Click()

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 21

If Command2.Caption = ">" Then Command1.Caption = "Actualizar"


Text1 = List1 Text1.SetFocus
List1.RemoveItem End Sub
(List1.ListIndex)
Else Command7 Click
Text1 = List2 Private Sub Command3_Click()
List2.RemoveItem End
(List2.ListIndex) End Sub
End If

Ejemplo N° 9: Realizar un programa que:


Ingrese: Nombre, Dirección, Cargo, Horas normales, Costo hora, Horas extras,
Costo hora extra.
Halle e Imprima: Sueldo básico, Descuento y Sueldo neto.
Sabiendo que:
Sueldo básico = (Horas normales * Costo hora) + (Horas extras * Costo hora
extra)
Descuento = 13% del Sueldo básico
Sueldo neto = Sueldo básico - Descuento

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 22

Command1 Click
Private Sub Command1_Click()
cargo = Text3.Text
If cargo = "Funcionario" Then Text5.Text = 10
If cargo = "Empleado" Then Text5.Text = 6
If cargo = "Obrero" Then Text5.Text = 8
Text7.Text = Text5.Text * 0.4 + Text5.Text
Label11.Caption = (Text4.Text * Text5.Text) + (Text6.Text * Text7.Text)
Label12.Caption = Label11.Caption * 0.13
Label13.Caption = Label11.Caption - Label12.Caption
End Sub

Command2 Click Text7.Text = ""


Private Sub Command2_Click() Label11.Caption = ""
Text1.Text = "" Label12.Caption = ""
Text2.Text = "" Label13.Caption = ""
Text3.Text = "" Text1.SetFocus
Text4.Text = "" End Sub
Text5.Text = ""
Text6.Text = ""

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 23

Command3 Click End


Private Sub Command3_Click() End Sub

Objeto Propiedad Valor


List1 Visible False
Command1 Click If Check3.Value = Checked Then
Private Sub Command1_Click() d = Check3.Caption
Dim a As String End If
Dim b As String List1.AddItem (Text1.Text + " " +
Dim c As String Combo1.Text + " " + a + " " + b + " " + c
Dim d As String + " " + d)
If Option1.Value = True Then Text1.Text = ""
a = Option1.Caption Check1.Value = Unchecked
Else Check2.Value = Unchecked
a = Option2.Caption Check3.Value = Unchecked
End If Combo1.Text = ""
If Check1.Value = Checked Then Text1.SetFocus
b = Check1.Caption End Sub
End If
If Check2.Value = Checked Then Command2 Click
c = Check2.Caption Private Sub Command2_Click()
End If List1.Clear

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 24

Text1.SetFocus List1.Visible = False


End Sub Command3.Caption = "Mostrar"
End If
Command3 Click Text1.SetFocus
Private Sub Command3_Click() End Sub
If Command3.Caption = "Mostrar"
Then Command4 Click
List1.Visible = True Private Sub Command4_Click()
Command3.Caption = "Ocultar" End
Else End Sub

Ejemplo N° 11:

Objeto Propiedad Valor


Data1 DataBaseName C:\Mis docum\René\Agenda.MDB
RecordSource Agenda
Text1 DataSource Data1
DataField Código
Text2 DataSource Data1
DataField Nombre

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 25

Command1 Click
Private Sub Command1_Click() Command2 Click
Data1.Recordset.AddNew Private Sub Command2_Click()
Text1.SetFocus On Error Resume Next
End Sub Data1.Recordset.Delete
If Not Data1.Recordset.EOF Then
Command4 Click Data1.Recordset.MoveNext
Private Sub Command4_Click() ElseIf Not Data1.Recordset.BOF Then
List1.Clear Data1.Recordset.MovePrevious
End Sub Else
MsgBox "Este era el último
Command5 Click registro de la tabla"
Private Sub Command5_Click() End If
End Data1.Refresh
End Sub End Sub

Command3 Click
Private Sub Command3_Click()
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim e As String
Dim f As String
Do While Not Data1.Recordset.EOF
If Not IsNull(Data1.Recordset(0)) Then
a = Data1.Recordset(0)
End If
If Not IsNull(Data1.Recordset(1)) Then
b = Data1.Recordset(1)
End If
If Not IsNull(Data1.Recordset(2)) Then
c = Data1.Recordset(2)
End If
If Not IsNull(Data1.Recordset(3)) Then
d = Data1.Recordset(3)
End If
If Not IsNull(Data1.Recordset(4)) Then

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 26

e = Data1.Recordset(4)
End If
If Not IsNull(Data1.Recordset(5)) Then
f = Data1.Recordset(5)
End If
List1.AddItem (a + " " + b + " " + c + " " + d + " " + e + " " + f)
Data1.Recordset.MoveNext
Loop
Data1.Refresh
List1.ListIndex = 0
Screen.MousePointer = 0
End Sub

Ejemplo N° 11 – Formulario Padre (MDIForm1)


Archivo Edición Listado
Nuevo Ctrl + U Copiar Copiar Todo Ctrl + C General Ctrl + E
Abrir Ctrl + A Mover Ctrl + X Copiar Formato Limpiar Listado
Guardar Pegar Ctrl + V Copiar Furmula Imprimir Ctrl + P
Cerrar Borrar Ctrl + B
Salir Ctrl + S

Nuevo Click Borrar Click


Private Sub Nuevo_Click() Private Sub Borrar_Click()
Form1.Data1.Recordset.AddNew On Error Resume Next
Form1.Text1.SetFocus Form1.Data1.Recordset.Delete
End Sub If Not Form1.Data1.Recordset.EOF Then
Form1.Data1.Recordset.MoveNext
LimpiarListado Click ElseIf Not Form1.Data1.Recordset.BOF
Private Sub LimpiarListado_Click() Then
Form1.List1.Clear Form1.Data1.Recordset.MovePrevio
End Sub us
Else
Salir Click MsgBox "Este era el último registro
Private Sub Salir_Click() de la tabla"
End End If
End Sub Fom1.Data1.Refresh
End Sub

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 27

General Click
Private Sub General_Click()
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim e As String
Dim f As String
Do While Not Form1.Data1.Recordset.EOF
If Not IsNull(Form1.Data1.Recordset(0)) Then
a = Form1.Data1.Recordset(0)
End If
If Not IsNull(Form1.Data1.Recordset(1)) Then
b = Form1.Data1.Recordset(1)
End If
If Not IsNull(Form1.Data1.Recordset(2)) Then
c = Form1.Data1.Recordset(2)
End If
If Not IsNull(Form1.Data1.Recordset(3)) Then
d = Form1.Data1.Recordset(3)
End If
If Not IsNull(Form1.Data1.Recordset(4)) Then
e = Form1.Data1.Recordset(4)
End If
If Not IsNull(Form1.Data1.Recordset(5)) Then
f = Form1.Data1.Recordset(5)
End If
Form1.List1.AddItem (a + " " + b + " " + c + " " + d + " " + e + " " + f)
Form1.Data1.Recordset.MoveNext
Loop
Form1.Data1.Refresh
Form1.List1.ListIndex = 0
Screen.MousePointer = 0
End Sub

Objeto Propiedad Valor


MDIform1 WindowsState 2 - Maximized
Form1 MDIChild True
WindowsState 2 - Maximized

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 28

Command1 Click If Check3.Value = Checked Then


Private Sub Command1_Click() d = Check3.Caption
Dim a As String End If
Dim b As String If Check4.Value = Checked Then
Dim c As String e = Check4.Caption
Dim d As String End If
Dim e As String List1.AddItem (Text1.Text + " " +
If Option1.Value = True Then Text2.Text + " " + Text3.Text + " " +
a = Option1.Caption Text4.Text + " " + Combo1.Text + " "
Else +a+""+b+""+c+""+d+""+
a = Option2.Caption e)
End If Text1.Text = ""
If Check1.Value = Checked Then Text2.Text = ""
b = Check1.Caption Text3.Text = ""
End If Text4.Text = ""
If Check2.Value = Checked Then Combo1.Text = ""
c = Check2.Caption Check1.Value = Unchecked
End If Check2.Value = Unchecked

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 29

Check3.Value = Unchecked Command3 Click


Check4.Value = Unchecked Private Sub Command3_Click()
Text1.SetFocus List1.Clear
End Sub Text1.SetFocus
End Sub
Command2 Click
Private Sub Command2_Click() Command4 Click
List1.RemoveItem (List1.ListIndex) Private Sub Command4_Click()
End Sub End
End Sub

Ejemplo N° 13 – Formulario Padre (MDIForm1)


Mantenimiento Producto Clientes
Producto Ctrl + P Nuevo Nuevo Ctrl + N
Clientes Ctrl + C Borrar Ctrl + B Borrar
Personal Boleta Listado Ctrl + I
Salir Ctrl + S Factura Agregar Ctrl + A
Listado Ctrl + L Calcular Parcial
Calcular Total Ctrl+T

Personal
Nuevo
Borrar Ctrl + O
Boleta de Pagos
Listado

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 30

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 31

Producto Click End Sub


Private Sub Producto_Click()
Form1.Show Personal Click
producto1.Enabled = True Private Sub Personal_Click()
clientes1.Enabled = False producto1.Enabled = False
personal1.Enabled = False clientes1.Enabled = False
End Sub personal1.Enabled = True
End Sub
Clientes Click
Private Sub Clientes_Click() Nuevo Click
Form2.Show Private Sub Nuevo_Click()
producto1.Enabled = False Form1.Data1.Recordset.AddNew
clientes1.Enabled = True Form1.Text1.SetFocus
personal1.Enabled = False End Sub

Borrar Click
Private Sub Borrar_Click()
On Error Resume Next
Form1.Data1.Recordset.Delete
If Not Form1.Data1.Recordset.EOF Then
Form1.Data1.Recordset.MoveNext
ElseIf Not Form1.Data1.Recordset.BOF Then
Form1.Data1.Recordset.MovePrevious
Else
MsgBox "Este era el último registro de la tabla"
End If
Form1.Data1.Refresh
End Sub

Listado Click
Private Sub Listado_Click()
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim e As String
Dim f As String
Dim g As String
Do While Not Form1.Data1.Recordset.EOF

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 32

If Not IsNull(Form1.Data1.Recordset(0)) Then


a = Form1.Data1.Recordset(0)
End If
If Not IsNull(Form1.Data1.Recordset(1)) Then
b = Form1.Data1.Recordset(1)
End If
If Not IsNull(Form1.Data1.Recordset(2)) Then
c = Form1.Data1.Recordset(2)
End If
If Not IsNull(Form1.Data1.Recordset(3)) Then
d = Form1.Data1.Recordset(3)
End If
If Not IsNull(Form1.Data1.Recordset(4)) Then
e = Form1.Data1.Recordset(4)
End If
If Not IsNull(Form1.Data1.Recordset(5)) Then
f = Form1.Data1.Recordset(5)
End If
If Not IsNull(Form1.Data1.Recordset(6)) Then
g = Form1.Data1.Recordset(6)
End If
Form1.List1.AddItem (a + " - " + b + " - " + c + " - " + d + " - " + e + " -
" + f + " - " + g)
Form1.Data1.Recordset.MoveNext
Loop
Form1.Data1.Refresh
Form1.List1.ListIndex = 0
Screen.MousePointer = 0
End Sub

Agregar Click
Private Sub Agregar_Click()
Dim c As Currency
Dim d As Currency
c = Form3.Label12.Caption
d = Form3.Label16.Caption
Form3.List1.AddItem (Form3.Text6.Text)
Form3.List2.AddItem (Form3.Text7.Text)
Form3.List3.AddItem (Form3.Text8.Text)

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 33

Form3.List4.AddItem (Form3.Text9.Text)
Form3.List5.AddItem (Form3.Text10.Text)
Form3.List6.AddItem (Form3.Label12.Caption)
Form3.Label16.Caption = Format$(c + d, "#.00")
End Sub

CalcularParcial Click End Sub


Private Sub CalcularParcial_Click()
Dim a As Currency Factura Click
Dim b As Currency Private Sub Factura_Click()
a = Form3.Text8.Text Form3.Show
b = Form3.Text9.Text End Sub
Form3.Label12.Caption = a * b
End Sub Salir Click
Private Sub Salir_Click()
CalcularTotal Click End
Private Sub CalcularTotal_Click() End Sub
Dim e As Currency
Dim f As Currency Nuevo2 Click
e = Form3.Label16.Caption Private Sub Nuevo2_Click()
Form3.Label17.Caption = e * 0.18 Form2.Data1.Recordset.AddNew
f = Form3.Label17.Caption Form2.Text1.SetFocus
Form3.Label18.Caption = e + f End Sub

Borrar2 Click
Private Sub Borrar2_Click()
On Error Resume Next
Form2.Data1.Recordset.Delete
If Not Form2.Data1.Recordset.EOF Then
Form2.Data1.Recordset.MoveNext
ElseIf Not Form2.Data1.Recordset.BOF Then
Form2.Data1.Recordset.MovePrevious
Else
MsgBox "Este era el último registro de la tabla"
End If
Form2.Data1.Refresh
End Sub

SAN LUIS René J. Hercilla Valdivia


VISUAL BASIC 34

Listado2 Click
Private Sub Listado2_Click()
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim e As String
Do While Not Form2.Data1.Recordset.EOF
If Not IsNull(Form2.Data1.Recordset(0)) Then
a = Form2.Data1.Recordset(0)
End If
If Not IsNull(Form2.Data1.Recordset(1)) Then
b = Form2.Data1.Recordset(1)
End If
If Not IsNull(Form2.Data1.Recordset(2)) Then
c = Form2.Data1.Recordset(2)
End If
If Not IsNull(Form2.Data1.Recordset(3)) Then
d = Form2.Data1.Recordset(3)
End If
If Not IsNull(Form2.Data1.Recordset(4)) Then
e = Form2.Data1.Recordset(4)
End If
Form2.List1.AddItem (a + " - " + b + " - " + c + " - " + d + " - " + e)
Form2.Data1.Recordset.MoveNext
Loop
Form2.Data1.Refresh
Form2.List1.ListIndex = 0
Screen.MousePointer = 0
End Sub

SAN LUIS René J. Hercilla Valdivia