Sie sind auf Seite 1von 138

Prof. Geremias Atuesta Prof.

Nelson
Enrique Crdenas

Visual Basic

Informacin Importante!

Le recomendamos que lea muy cuidadosamente los siguientes prrafos previos


al aprendizaje del lenguaje Visual Basic, pues le permitir tener claridad en qu se ha
metido y cules son los objetivos de este proceso, los cuales se cumplirn si aplica
estos conceptos.

Qu es Visual Basic?

Es un programa que hace parte del paquete Microsoft Visual Studio, que permite
crear aplicaciones para Windows, es decir, permite construir programas utilizando los
objetos que hacen parte de este sistema operativo, tales como ventanas, botones,
cuadros de texto, listas desplegables, entre otros; debido a que se trabaja con objetos,
Visual Basic hace parte de la Programacin Orientada a Objetos (POO).

En Visual Basic podremos crear desde una simple aplicacin (como una calculadora,
por ejemplo) hasta una ms robusta y funcional como un software para gestionar la
informacin que se procesa en una empresa distribuidora de insumos qumicos, o un
software para un banco o para un colegio, o para manejar la facturacin de un
negocio en fin, cualquier aplicacin inclusive que requiera manejo de grandes bases
de datos.

Para qu sirve en realidad?

Una persona que aprenda a dominar este lenguaje puede crear sus propios programas,
si logra llegar hasta este punto, entonces puede llamarse programador. Principiante?,
Intermedio?, Experto?, eso depende de qu tanto le llame la atencin programar y
qu tanto se dedique. No es fcil programar, sin embargo, con este lenguaje le resultar
muchsimo mas fcil crear un programa que antes, cuando se utilizaban lenguajes
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
1
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

como Cobol, Fortran, C, Pascal A pesar de lo difcil que pueda llegar a ser, es
interesante lograr que el computador haga lo que usted quiera en un ambiente grfico
agradable (claro, depender del gusto que tengas para elegir los colores y la
organizacin de los objetos).

Visual Basic no es un lenguaje que sirve nicamente para crear un programa, como
este lenguaje pertenece a Microsoft, est vinculado con otros programas, por ejemplo,
usted puede crear un mdulo en lenguaje Visual Basic para Word con el propsito de
hacer algo que Word no hace, o para Excel, as mismo en PowerPoint o Access, e
inclusive aplicarlo a otros programas que no son de Microsoft, tales como CorelDraw o
Autocad.

Qu necesito?
Bsicamente, un programador debe ser creativo, recursivo, aplicar el racionamiento
lgico a un alto nivel, tener conocimientos bsicos de ingls (la mayora de
instrucciones por no decir todas se escriben en este idioma) y manejar muy bien un
computador (Esto incluye los programas, dominio del Mouse y del Teclado).

Componentes de un programa en Visual Basic.

Un programa consta de dos partes: los objetos y el cdigo. De ah proviene el


nombre:
Visual: Se refiere a la apariencia grfica conformada por un grupo de objetos
organizados.
Basic: Ss el lenguaje con que se programan los objetos para que sean funcionales.

1. Los Objetos.
Un objeto es cualquier elemento (generalmente grfico) que haga parte de un
programa. Los objetos cumplen dos funciones: la Primera es ser parte de la apariencia,
pues una coleccin de elementos visuales constituyen la Interfaz de Usuario (IU) y a
travs de ellos el usuario interacta con el programa; la segunda es ser actores dentro
del programa, es decir, estos objetos responden a determinadas acciones del usuario.
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
2
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Como se trata de Programacin Orientada a Objetos, estos son parte fundamental al


momento de construir un programa, pues los objetos conforman el cuerpo de este. Por
ejemplo, se definen las caractersticas de la ventana principal (la ventana es un objeto),
se colocan otros elementos como etiquetas, cuadros de texto, botones (tambin son
objetos) para complementar o mejorar la Interfaz de Usuario (IU).

2. El Cdigo
El cdigo es lo que hace posible que un programa funcione, el cdigo es el programa
en si, la actividad de un objeto depende de las instrucciones que se le programen en un
determinado evento (accin que realiza el usuario sobre el objeto). En este caso
manejar un lenguaje requiere mucho cuidado, pues se requiere utilizar sintaxis estrictas
y procedimientos lgicos en forma correcta, este proceso es muy fcil en Visual Basic
pues a medida que se va programando una determinada instruccin, el programa nos
muestra la estructura de cmo debe hacerse. Se utiliza el lenguaje BASIC que fue
creado inicialmente para principiantes en programacin (o sea que realmente es muy
fcil).

Cmo programar en Visual Basic?


Antes de continuar tenga en cuenta lo siguiente:
Todos los objetos tienen una identificacin nica.
Los objetos tienen caractersticas diferentes, tanto en su forma fsica como en su
forma de actuar.
Un objeto puede actuar de diferentes maneras (cuando se da clic, cuando se
mueve el Mouse, cuando se presiona una tecla)
No todos los objetos son programables.
Se recomienda que cada programa que se cree est en una carpeta
independiente.
Cada programa que se cree inicialmente se llama proyecto (archivo con
extensin vbp)
Cada ventana (formulario) se guarda independiente del proyecto (archivo con
extensin frm)
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
3
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

En cada programa que se cree se involucran bsicamente 3 elementos:


Proyecto, Formulario, Mdulo (archivo con extensin bas).
Cmo empezar?

Descripcin del Espacio de Trabajo

Procure mantener el espacio de trabajo en la forma como se muestra en la imagen.


Utilice el men Ver, Explorador de proyectos (ctrl.+R) (si no est visible)
Utilice el men Ver, ventana Propiedades (F4) (si no est visible)

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
4
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Nota: Cada programa que se crea tiene dos tiempos: el tiempo de diseo (cuando se
est construyendo el programa, se pueden hacer cambios) y el tiempo de ejecucin
(cuando se ejecuta el programa, no se pueden hacer cambios).

Para ejecutar un programa oprima F5 o pulse el botn iniciar ( )

Para terminar la ejecucin cierre el formulario o pulse el botn Terminar ( )

Las propiedades

Recomendamos muy comedidamente tener en cuenta lo que en


esta parte se explica, pues es clave en el proceso de aprendizaje.
Las propiedades son atributos de los objetos las cuales modifican ya sea su apariencia
fsica (color, tamao, forma, posicin) o su comportamiento (oculto, desactivado,
maximizado). Hay propiedades que son de solo lectura en tiempo de ejecucin, es
decir que solo se podrn cambiar cuando se est diseando el programa; mientras que
hay otras que se pueden cambiar tanto con la ventana de propiedades (diseo) como
con cdigo (ejecucin).

Para cambiar las propiedades de un objeto en tiempo de diseo asegrese de

seleccionarlo (con la herramienta de seleccin en el cuadro de herramientas ), luego


en la ventana de propiedades elija la propiedad que desea modificar y establezca un
valor. Si el valor de la propiedad se selecciona de una lista, con doble clic sobre la
propiedad puede ir rotando por los diferentes valores. (por ejemplo la propiedad
BorderStyle del formulario).

Hay propiedades que toman valores tipo String (cadena) como una letra, una palabra,
una frase e.t.c., otras toman valores numricos, otras valores Boleanos, es decir valor
verdadero o falso y otras abren una caja de dilogo mediante para que el usuario
escoja los valores que desea aplicar.

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
5
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Propiedades Generales:
Llamaremos as un grupo de propiedades que son comunes en ms de un objeto y que
no se mencionarn cuando se est hablando de un objeto en especial.

Name (nombre): Es una propiedad muy importante en la Programacin Orientada a


Objetos (POO), pues nos permite referenciar o identificar los objetos con un nombre,
se aplica a todos y debe ser establecida sin espacios, no puede empezar por
nmero y no puede incluir smbolos especiales (solo diseo).

Sugerencia: Procure utilizar nombres que describan el tipo de objeto y su


funcin no colocar nombres con espacio ni palabras reservadas, con esto ser ms
fcil orientarse cuando tenga miles de objetos en un programa. Puede utilizar la
siguiente tcnica: (Note el prefijo en cada nombre)
Formulario(Form) Nombres sugeridos
Usuarios frmUsuarios, frm_usuarios
Facturas frmFacturas, frm_facturas
Botn(Command)
Aceptar cmdAceptar, cmd_aceptar
Guardar cmdGuardar, cmd_guardar
Cuadro de texto (Textbox)
Nombre txtNombre, txt_nombre
Cantidad txtCantidad, txt_cantidad
Otros Objetos
Utilice el prefijo Para el objeto
lbl.........................................................................Etiqueta (Label)
ckh.......................................................................Casilla de verificacin (Checkbox)
opt.......................................................................Botn de opcin (Option Button)
lst.........................................................................Lista (Listbox)
cmb.....................................................................Combo (ComboBox)
img......................................................................Imagen (Image)

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
6
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

pic........................................................................Grfico (PictureBox)

Appearance (apariencia): Devuelve o establece un valor que indica si los objetos


en tiempo de ejecucin se dibujarn con efectos 3D.
Backcolor (color de fondo): Devuelve o establece un valor que indica el color de
fondo de un objeto.
BorderStyle: Devuelve o establece el estilo del borde de un objeto.
Caption: Devuelve o establece el texto mostrado como de ttulo de un objeto
(Cadena).
Enabled: Devuelve o establece un valor que indica si un objeto responde a eventos
generados por el usuario (Booleano).
Font: Devuelve o establece atributos de texto (tipo, tamao, estilo).
Forecolor: Devuelve o establece un color para el texto.
Height: Devuelve o establece el alto de un objeto (Numrico).
Left: Devuelve o establece la distancia del borde izquierdo de un objeto (Numrico).
MouseIcon: Establece un cono personalizado para el Mouse. (si
MousePointer=99).
MousePointer: Devuelve o establece el tipo de puntero del Mouse al pasar sobre
un objeto.
TabIndex: devuelve o establece el orden de tabulacin (orden del cursor al pulsar la
tecla TAB)
Tag: Es como una variable disponible para guardar datos.
ToolTipText: Devuelve o establece el texto mostrado cuando el puntero del Mouse
se sita sobre el objeto (Cadena).
Top: Devuelve o establece la distancia del borde superior de un objeto (Numrico).
Visible: Devuelve o establece un valor que indica si el objeto est visible en tiempo
de ejecucin (Booleano).

Los Procedimientos
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
7
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Un procedimiento se define como una seccin de cdigo que agrupa las


instrucciones que se ejecutarn cuando sobre un objeto ocurra un evento. Un
evento es una accin realizada por el usuario o por el mismo programa. As, es un
evento pulsar una tecla, mover el Mouse, hacer clic, mover el cursor y otras muchas
ms.

Hay que tener en cuenta que no todos los objetos tienen los mismo procedimientos, as
como tambin para un objeto resulta prioritario determinado evento el cual no lo es para
otro.

En el cdigo, el procedimiento est conformado por Objeto_evento precedido


por las palabras Private Sub y terminando con las palabras End Sub.
Ejemplo:
Private Sub Form_Load()
Acciones
End sub
Las acciones se ejecutarn cuando sobre el formulario ocurra el evento Load.

Eventos Generales:
Llamaremos as las acciones que se programan ms comnmente sobre la mayora de
los objetos.

Click: Ocurre cuando sobre un objeto se pulsa el botn primario del Mouse.

DblClick: Ocurre cuando se hace doble clic sobre un objeto.

KeyPress: Ocurre al pulsar una tecla sobre un objeto. (key=tecla, press=presionar).

Keydown: Ocurre cuando baja una tecla al ser pulsada.

KeyUp: Ocurre cuando sube una tecla al ser pulsada.

MouseMove: Ocurre al mover el Mouse sobre un objeto.

GotFocus: Ocurre cuando llega el enfoque (cursor) sobre un objeto.

LostFocus: Ocurre cuando sale el enfoque (cursor) de un objeto.


Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
8
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Validate: Ocurre cuando se deja de utilizar un objeto (similar a LostFocus).

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
9
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Conociendo los objetos

Proyecto: Es un archivo con extensin vbp que agrupa todos los


componentes de un programa tales como formularios, mdulos, componentes de
acceso a bases de datos, entre otros, cuando se abra un programa para su edicin,
debe abrirse el proyecto, tenga muy presente que nombre coloca al guardar. Puede
establecer un ttulo para el proyecto ingresando por el men Proyecto,
Propiedades de proyecto, Nombre de Proyecto.

Formulario: Un formulario no es ms que una ventana, la cual tiene la propiedad


de agrupar otros objetos, al guardarlo, es un archivo con extensin frm. Dentro de las
propiedades ms comunes (aparte de las generales) encontramos:

BorderStyle: Devuelve o establece el estilo del borde (Numrico solo diseo).


ControlBox: Devuelve un valor que indica si se muestra o no el men de control del
formulario (Booleano solo diseo)
Drawwidth: Devuelve o establece el ancho de la lnea al momento de pintar
grficos (Numrico).
Icon: Devuelve o establece el cono que identifica al formulario.
MaxButton: Determina si el formulario tendr el botn maximizar.
MinButton: Determina si el formulario tendr el botn minimizar.
Picture: Devuelve o establece la imagen que se mostrar como fondo del
formulario.
StartUpPosition: Devuelve o establece la posicin inicial de un formulario en
tiempo de ejecucin.
WindowState: Devuelve o establece el estado de un formulario (Maximizado,
Normal, Minimizado)

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
10
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Ejercicio N. 1:
1. Ingrese a Visual Basic (Si aparece la ventana de Nuevo proyecto elija
EXE Estndar, Abrir.)
2. Oculte la ventana de propiedades y el Explorador de proyectos
3. Utilice Ctrl R
4. Utilice F4
5. Establezca el valor de las siguientes propiedades del formulario:
Name = frmAplica1
Caption = Mi primer Formulario
Backcolor = (Elija verde oscuro)
StartUpPosition = 2 CenterScreen
Icon: cargue un icono.

Ruta para iconos: (Archivos de programa\Microsoft Visual


Studio\Common\Graphics\Icons\)
Guarde el proyecto (primero pedir el nombre del formulario, deje el que aparece y
pulse guardar) con el nombre Mi aplicacion1, pulse guardar.
Ejecute el programa oprimiendo F5.

A programar
Como se dijo antes, un programa no es solo apariencia, para que funcione debe tener
cdigo, entonces veamos como programar algo sobre el formulario, que es el nico
objeto que tenemos hasta el momento. Para programar un objeto se puede dar
doble clic sobre el o pulsar la tecla F7, (para salir del cdigo se oprima Shift F7 o
utilizando el explorador de proyectos) con lo cual se mostrar la ventana del editor
de cdigo.

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
11
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Objetos: muestra la lista de


Objetos programables dentro del
formulario actual. A excepcin del
formulario (que aparece como
Form) en esta lista aparecen los
nombres que se hayan dado con
la propiedad name .

Procedimientos: acciones que


se pueden realizar sobre un
objeto para que acte.

Cdigo: el cdigo debe ir


siempre dentro de las etiquetas
Private Sub y End Sub cuando
se quiere aplicar a determinado
objeto en determinado
procedimiento.
Si observa se ha creado un Form_Load(), esto realmente es un procedimiento, que
incluye ObjetoProgramado_Evento de tal manera que viendo el cdigo se puede
saber qu cdigo ejecutar qu objeto en qu momento.
Cmo quedara el procedimiento para cuando se haga clic en el formulario?
Pues..
Private Sub Form_Click()
End Sub

Cmo interpretamos?
Private Sub Form_KeyPress(KeyAscii As Integer)
End Sub
Es el procedimiento cuando pulsamos una tecla sobre el formulario.
Observe que dentro de los parntesis hay algo, esto significa que el procedimiento
utiliza una variable local llamada KeyAscii que es de tipo Entero.

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
12
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Algunas recomendaciones en el editor de cdigo


El cdigo debe escribirse siempre dentro de un bloque que tenga definido el inicio
y el fin:
Private Sub
Aqu debe ir el cdigo siempre
End Sub
En un procedimiento puede escribirse infinitas lneas de cdigo.
Las palabras clave aparecern en color azul.
Los errores generados por sintaxis incorrecta o incompleta aparecern en color
rojo.
Las palabras clave se pueden escribir en maysculas o en minsculas.
Puede utilizar comentarios (texto que no se ejecuta) iniciando con el carcter
apstrofo () o usando la palabra rem.

Escribiendo instrucciones
Print: Imprime texto sobre el formulario, su sintaxis es print valor_a_mostrar, donde
valor_a_mostrar puede ser un nmero, una cadena de texto la cual debe ir entre
comillas, una variable o una propiedad de algn objeto.
Ejemplos: print Bienvenidos a VB print 1563 print Time print Date
(Time devuelve la hora del computador, y Date la fecha).
Cada print crear un salto de lnea (como un Enter). Se pueden colocar varios datos
con un solo print separndolos con coma(,) o punto y coma (;)

Ejemplo: Resultado
Print "Hoy es:", Date
Print "Son las:"; Time
Print "Son las ", Time, "del da "; Date

Observe que la coma (,) hace las veces de tabulador.


Cls: Borra el texto que se haya impreso con print.

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
13
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Ejercicio N. 2
Programe lo siguiente:
Al hacer clic debe borrar el contenido del formulario.
Al hacer doble clic debe mostrar el mensaje ha hecho doble clic
Al pulsar una tecla debe mostrar el mensaje alguna tecla se ha pulsado
Al mover el Mouse debe mostrar el mensaje Moviendo
Guarde el ejercicio

Puede utilizar Ctrl. + Flechas para Mover el objeto seleccionado.


Puede utilizar Shift + Flechas para Cambiar el tamao del objeto seleccionado.

Objeto CommandButton: (Botn de Comando) quiz el elemento mas comn en


entornos grficos, el evento predeterminado para este objeto es el click.
Cancel: Indica si es el botn cancelar dentro del formulario actual, esto significa que
se activar pulsando la tecla ESC (escape).
Default: Indica si es el botn predeterminado equivalente a Aceptar, esto significa
que se activar oprimiendo la tecla ENTER.
DisabledPicture: Devuelve o establece la imagen mostrada cuando su estado sea
desactivado (enabled=False) y su propiedad Style sea 1.
DownPicture: Devuelve o establece la imagen mostrada cuando el botn est
presionado y su propiedad Style sea 1.
Style: Devuelve o establece el estilo del botn, si es 1 (Graphical) tomar color de
fondo (BackColor) y se mostrarn las imgenes cargadas con Picture y otras.
(No olvidar: Name, Caption): El caption se puede escribir anteponiendo el signo
Ampersand (&) a cualquier letra para crear un mtodo de activacin alternativa.

Ejemplo: se activara con Alt + a

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
14
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Objeto Label: (Etiqueta) se utiliza para mostrar texto que el usuario no pueda
editar en tiempo de ejecucin, solo se podr modificar con cdigo. Ideal para mostrar un
ttulo, una sugerencia o un contenido esttico.
Alignment: Eevuelve o establece la alineacin del texto dentro de la etiqueta.
AutoSize: Determina si la etiqueta cambia de tamao para ajustarse a su contenido.
BackStyle: Determina si la etiqueta se torna opaca o transparente.
BorderStyle: Determina el estilo de borde para la etiqueta.
WordWrap: Determina si la etiqueta se expande verticalmente para ajustarse a su
contenido.
(No olvidar: Name, Caption, Font, Forecolor)

Como cambiar el valor de una propiedad con cdigo?


objeto.propiedad=nuevovalor
Ejemplo: frmInicio.caption=Inicio de sesin:Administrador
Lo que hace esta instruccin es cambiar el caption de un Formulario (frm).
Ejemplo: cmdAceptar.enabled=False
Se desactivar un botn (cmd)

Escriba qu hace cada uno de los siguientes ejemplos:


cmdOk.caption=Cancelar
______________________________________________________________________

txtNombre.text=
______________________________________________________________________

lblInformacin.caption=Haga clic para Terminar


______________________________________________________________________

frmInfo.caption=txtNombre.text
______________________________________________________________________

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
15
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

lblInformacin.caption=cmdOpciones.caption
______________________________________________________________________

Ejercicio N. 3
Este ejercicio pretende asimilar de una forma prctica los conceptos que se
han tomado anteriormente. En un proyecto nuevo haga lo siguiente: (recuerde
crear una carpeta para el nuevo ejercicio, al guardar, puede utilizar el mismo nombre
tanto para el proyecto como para el formulario)
El formulario terminado debe quedar como se muestra en la imagen1.
(Imagen1) (Imagen2)

Establezca las siguientes propiedades( ) y escriba el cdigo correspondiente( ):


Para el Objeto N. 1 (formulario):
Name : frmControles
Caption : Programando Controles
Icon : (cargue un icono)
BorderStyle : 3 Fixed Dialog
BackColor : (cambie el color)
StartUpPosition : 2 CenterScreen

No se olvide de guardar
Cree un objeto Label (N. 2), ubquelo como en la grfica y establezca:
Name : lblMensaje
Caption : (nada)
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
16
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

WordWrap : True
Autosize : True
Cree un objeto CommandButton (N. 3), establezca:
Name : cmdBotn
Caption : Botn
ToolTipText : Plsame

Evento click : frmControles.Caption = lblMensaje.Caption

Cree un objeto CommandButton (N. 4), establezca:


Name : cmdMensaje
Caption : &Mensaje
ToolTipText : Muestra un mensaje en el Label

Evento click : lblMensaje.Caption = "Hoy es un muy buen da"

Cree un objeto CommandButton (N. 5), establezca:


Name : cmdBorrar
Caption : &Borrar
ToolTipText : Borra el mensaje del Label

Evento click : lblMensaje.Caption = ""

Cree un objeto CommandButton (N. 6), establezca:


Name : cmdOcultar
Caption : &Ocultar
ToolTipText : Oculta el Label

Evento click : lblMensaje.Visible=False

Cree un objeto CommandButton (N. 7), establezca:

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
17
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Name : cmdMostrar
Caption : Mo&strar
ToolTipText : Muestra el Label

Evento click : lblMensaje.Visible=True


Cree un objeto CommandButton (N. 8), establezca:
Name : cmdInactivo
Caption : &Inactivo
ToolTipText : Desactiva el Botn

Evento click : cmdBotn.Enabled=False

Cree un objeto CommandButton (N. 9), establezca:


Name : cmdActivo
Caption : &Activo
ToolTipText : Activa el Botn

Evento click : cmdBotn.Enabled=True

Cree un objeto CommandButton (N. 10), establezca:


Name : cmdTerminar
Style : 1 Graphical
Picture : (cargue un icono)
ToolTipText : Terminar

Evento click : End

No se olvide de guardar
Ejecute la aplicacin.

Qu hacer cuando hay errores?

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
18
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Si hay un error en alguna instruccin, puede aparecer un mensaje similar al de la


imagen, hay que analizar dicho mensaje para saber de que se trata, si pulsamos
terminar se finalizar la ejecucin, oprima depurar para que nos muestre dnde est el
error, relacione el mensaje con la instruccin sealada, corrija el error y pulse F5
Nuevamente.
Error: el objeto blMensaje no existe, debera
ser lblMensaje.

Aplicando colores con cdigo:


Podemos cambiar el color de fondo de un objeto con la propiedad (cual era?
______________), as mismo el color del texto con la propiedad (?
_______________), para lo cual existen bsicamente 3 formas diferentes.
Forma 1: utilizar algunas constantes de colores bsicos, las cuales son:
Negro Cmo se utilizan?
Azul
Ejemplos:
Cyan
Verde frmControles.BackColor=vbGreen
Magenta
lblMensaje.forecolor=vbYellow
Rojo
Blanco lblMensaje.backcolor=vbRed
Amarillo

Forma 2: utilizar la funcin QBColor(Valor) que devuelve un color de acuerdo al valor


el cual puede estar entre 0 y 15 as:
Valor Color Valor Color Cmo se utiliza?
0 Negro 8 Gris Ejemplos:
1 Azul 9 Azul claro
frmObjetos.BbackColor=QBColor(1)
2 Verde 10 Verde claro
3 Aguamarin 11 Aguamarina claro lblMensaje.ForeColor=QBColor(12)
4 a 12 Rojo claro
lblMensaje.BackColor=QBColor(8)
5 Rojo 13 Fucsia claro
6 Fucsia 14 Amarillo claro
7 Amarillo 15 Blanco
Blanco

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
19
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Forma 3: utilizar la funcin RGB(Rojo, Verde, Azul) la cual permite obtener uno entre
2563 colores (16777.216), donde rojo, verde y azul debe ser un nmero entre 0 y 255.
Cmo se utiliza?
Ejemplos:
frmObjetos.BackColor=rgb(0,0,0) (color negro)
lblMensaje.BackColor=rgb(128,255,128) (color verde claro)
lblMensaje.forecolor=rgb(0,0,255) (color azul)

Ejercicio (Complemento al N. 3)
Cree 3 botones de comando llamados cmdColor, cmdColor1, cmdColor2,
cuyos caption sean FormColor, LabelColor, TextColor, programe cada uno
para: cambiar el color del formulario, cambiar el color del fondo de la etiqueta, cambiar
el color del texto de la etiqueta respectivamente.

No se olvide de guardar
Ejecute la aplicacin.

Ejercicio N. 4
Cree un nuevo proyecto (en carpeta independiente), coloque el nombre
adecuado con lo que se est trabajando y disee un formulario que tenga la
siguiente apariencia:
Observe, de los botones el nico que est activo
es el que est en frente de la etiqueta Nombre:
Coloque nombres a los objetos, modifique las
propiedades que crea convenientes (Observe el
borde de las etiquetas, se aplica con ?
___________________).
Objetivo: cuando se oprima el botn activo,
mostrar en la etiqueta de su izquierda el dato
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
20
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

que indica, adems debe quedar activo NICAMENTE el siguiente botn. El botn
cerrar debe terminar el programa. Usar nicamente el evento click.
Pista: cada botn Ver debe tener 3 instrucciones Cuales son?
_______________________, __________________________, ___________________

No se olvide de guardar
Ejecute la aplicacin.

Objeto TextBox: (Caja o cuadro de texto) otro de los controles muy conocidos, su
funcin es alojar texto que el usuario puede editar en tiempo de ejecucin, se utiliza
como campo de texto, en donde los usuarios pueden llenar datos de un formulario, de
una factura, e.t.c.
AlignMent: Devuelve o establece la alineacin del texto dentro del control.
Locked: Dermite indicar si el contenido del cuadro de texto est bloqueado.
Maxlength: Devuelve o establece el nmero mximo de caracteres que podr
contener el cuadro de texto.
MultiLine: Devuelve o establece un valor que indica si el cuadro te texto puede
aceptar mltiples lneas de texto.
PasswordChar: Dermite establecer el carcter que se mostrar en vez de cada
carcter contenido.
ScrollBars: Devuelve o establece un valor que indica si el cuadro de texto mostrar
barras de desplazamiento horizontales y/o horizontales.
No olvidar: (Name, Enabled, Visible, BackColor, Font, ForeColor).

Ejercicio N. 5
Disee un formulario como se muestra en la magen:
Nota: Es probable que en este ejercicio surjan errores, no porque est mal
programado sino porque falta aplicar Validaciones para algunos datos, esto se ver
ms adelante.

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
21
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Objetivos:
Escribir un texto en el cuadro en frente de Ttulo, el
botn aplicar colocar dicho texto como ttulo del
formulario.
Para Fondo: establecer un color de fondo para el
formulario, ya sea con QBColor o con RGB, segn
el caso, escribir un valor adecuado y usar el
respectivo botn Aplicar.
Para Opciones de Texto

Atributos de Texto con cdigo


Existen propiedades aplicables en los objetos que permiten la utilizacin de texto
(cualquiera que tenga la propiedad Font) pero que solo estn disponibles directamente
con cdigo, las cuales son:
FontBold: Devuelve o establece el estilo negrita para una fuente. (Booleano)
FontItalic: Devuelve o establece el estilo cursiva para una fuente. (Booleano)
FontName: Dermite establecer el tipo de letra que se utilizar en un control.
FontSize: Devuelve o establece el tamao para una fuente. (numrico)
FontStrikeThru: Devuelve o establece el estilo tachado para una fuente. (Booleano)
FontUnderline: Devuelve o establece el estilo subrayado para una fuente.
(Booleano)
Ejemplo:
lblNombre.FontBold=True (Activa la negrita)
txtContenido.FontSize=14 (Tamao de Fuente=14)
txtContenido.FontName=Arial (Establece el tipo de letra Arial)
txtcontenido.FontUnderline=False (Descativa el subrayado)
.Continuacin
Utilice los botones con y sin para habilitar o deshabilitar el efecto de texto que
corresponda, as mismo, cambiar el tamao y el color.
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
22
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

No se olvide de guardar.
Ejecute la aplicacin.

Las Variables:
Son elementos necesarios en la programacin, no solo en Visual Basic, sino
en cualquier otro lenguaje. Crear una variable significa reservar un espacio en la
memoria RAM del computador para almacenar datos temporalmente. As
interpretamos que una variable es como un cajn donde se puede guardar algo,
adems, se llama variable porque el contenido se puede cambiar tantas veces como
sea necesario, es decir que al colocar un valor nuevo se pierde el que estaba antes.

Clasificacin:
Las variables se clasifican en 3 tipos de acuerdo a la forma como operan, esta
caracterstica se conoce como mbito de una Variable.

Variables Locales: Son las que se crean dentro de un procedimiento y solo sern
reconocidas dentro de el.

Variables en Formulario: Son las que se crean dentro del cdigo de un formulario en
la seccin General Declaraciones y son reconocidas en todos los procedimientos de
todos los objetos del formulario.

Variables Pblicas o Globales: Son variables que se crean a dentro de un Mdulo


utilizando la palabra reservada Public y son reconocidas en todo el proyecto.

Creacin de Variables: Para definir una variable se tiene en cuenta lo siguiente:


Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
23
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

mbito: Cual ser el mbito de la variable (Local, en formulario o Global), si es una


variable Global se utiliza la palabra reservada Public, si es en formulario o Local se
emplea la palabra reservada Dim.

Nombre: Permite identificar la variable al momento de referirse a ella, el nombre debe


cumplir con las siguientes reglas.
- Debe ser una cadena sin espacios
- No puede ser nmeros ni empezar por dgitos.
- No puede contener smbolos especiales (/*+%$=?)
- No puede ser una palabra reservada ni el nombre de un evento o
propiedad (click, caption, integer, cls) ni tampoco el nombre dado a un
objeto.
Ejemplos de nombres de variables NO vlidos.
Mi nmero
524registro
X*1
Ejemplos vlidos de nombres de variables
X
Mi_valor
Dato21
Tipo de dato: Determina el formato de la informacin que se almacenar en la variable,
los tipos de datos ms utilizados son.
Boolean: Admite uno entre dos valores True (Verdadero) o False (Falso).
Byte: Admite un nmero entero con valor entre 0 y 255.
Currency: Valores de moneda y datos numricos utilizados en clculos matemticos
en los que estn implicados datos que contengan entre uno y cuatro decimales. La
precisin es de hasta 15 dgitos a la izquierda del separador decimal y hasta 4
dgitos a la derecha del mismo.
Date: Admite valores con formato de fecha y/o de hora.

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
24
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Double: Admite un nmero decimal entre -1,79769313486231^308 y


-4,94065645841247^-324 para valores negativos, y entre 4,94065645841247^-324 y
1,79769313486231^308 para valores positivos. (Decimal largo)
Integer: Admite un nmero entero con valor entre -32768 y 32767.
Long: Admite un nmero con valores superiores a los del tipo integer.
Single: Admite un nmero decimal entre -3,402823E^38 y -1,401298^-45 para
valores negativos, y entre 1,401298^-45 y 3,402823^38 para valores positivos.
(Decimal corto)
String: Almacena cadenas alfanumricas (cualquier carcter) y puede contener
hasta 65535 Caracteres.
Variant: Almacena cualquiera de los formatos anteriores acomodndose
automticamente a su contenido.

Ejemplo:
Dim precio as integer dim dato as Variant
Dim usuario as string dim vence as date
Dim cancelado as Boolean dim edad as byte
Dim x as integer, y as byte, z as long (usando un solo Dim)
Public clave as string, salida as Boolean, cierre as date (variables globales)

Asignaciones:
Hacer una asignacin significa guardar un dato dentro de una variable, y se emplea
para ello el signo igual (=).
Ejemplo:
Precio=25000 : salida=False : usuario=administrador : vence= 14/08/2009

Nota: Si se asigna un valor con formato diferente al establecido para la variable,


se generar el error 13 (No coinciden los tipos).

Nota: Si se asigna un valor con el mismo formato al establecido para la variable,


pero que supera el tamao, se generar el error 6 (desbordamiento).
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
25
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Nota: Visual Basic hace conversin de datos cuando sea posible al asignar un
dato a una variable. Ej. Dim x as byte:x=5, aparentemente se guarda una cadena
con el valor 5, pero como x es numrico no hay error, hay conversin automtica.

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
26
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Vectores y matrices:
Imaginariamente, las variables las podramos graficar as:

X SALIDA USUARIO

Pero tambin podra ser: En el caso de la variable A, se conoce


A como vector o variable unidimensional,
0 1 2 3 4 5 6 la cual tiene varias posiciones. La forma
de crearla sera:
Notas Dim A(6) as
0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9
1,0 ? ? ? ? ? ? ? La variable Notas se conoce como
2,0 ? ? ?
3,0 ? ? ? ? matriz o variable Bidimensional, la
4,0 ? ? ?
forma de crearla sera:
Dim Notas(4,9) as
Pueden existir variables de 3 (tridimensional), 4 o ms dimensiones, cuyo nmero de
posiciones es el resultado de multiplicar las casillas de cada dimensin.
Ejemplo:
La variable (matriz) notas almacenar 5X10=50 datos.

Para referirse a una posicin dentro de la variable se utiliza el nombre y entre


parntesis la posicin, teniendo en cuenta que empieza en 0.
Ejemplo:
A(3)=50 : A(0)=25 : Notas(3,8)=6 : Notas(1,5)=2.
Si es una variable de dos dimensiones, imaginariamente, el primer valor+1 ser el
nmero de filas y el segundo valor+1 ser el nmero de columnas.

Funciones.
Una funcin es un conjunto de instrucciones agrupadas con un nombre que
vienen disponibles para ser utilizadas cuando se requiera, al llamar la funcin, esta
realiza la accin para la cual fue programada; la mayora de funciones requieren

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
27
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

argumentos los cuales hay que colocarlos dentro de parntesis, as como tambin
la mayora devuelven un valor, el cual hay que usar o almacenar en algn lado. Existe
gran cantidad de funciones, sin embargo las iremos tratando al paso del proceso segn
se requiera, por ahora algunas:

Val: Convierte a su valor numrico un nmero que est como cadena.


Ejemplo: print val(25) imprime 25 y no 25
Int/Fix: Devuelve la parte entera de un nmero. Ej: print int(25,36254) = 25
Ucase: Convierte a maysculas. Ej: print ucase(casa)=CASA
Lcase: Convierte a minsculas. Ej: print lcase(CASA)=casa
Len: Cuenta los caracteres de una cadena. Ej: print len(la casa)=7
strReverse: Invierte una cadena. Ej: print strReverse(amor)=roma

Ejercicio N. 6
El propsito es ejercitarnos en la aplicacin de las variables
En un proyecto nuevo disee el formulario como se muestra:
Para colocar los controles le
recomendamos que siga estos pasos y
coloque los nombres que se indica:
Objeto Propiedad Valor
TextBox(1) Name txtLocal
TextBox(2) Name txtFormulario
TextBox(1 y 2) Text (vaco)
Command Name cmdUcase
Command Name cmdLcase
Label Name lblVisor
Objeto Propiedad Valor Objeto Propiedad Valor
Label BorderStyle 1 Fixed Label ASlignment 1 Right
Command Name cmdNum Command Caption 1

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
28
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Copie y pegue el botn cmdNum, al pegar aparecer un mensaje indicando que ya


existe un control llamado cmdNum, que si desea crear una matriz de controles,
responda afirmativamente, en la caption de la copia coloque 2, siga pegando y
cambiando el caption hasta completar todos los nmeros.
Command Name cmdMem1 Command Caption M
Command Name cmdMem2 Command Caption M+
Command Name cmdMem3 Command Caption M-
Command Name cmdMem4 Command Caption MR

Command Name cmdLocal Command Caption Guardar Local


Command Name cmdFormulario Command Caption Guardar en formulario
Label Name lblVer Label BorderStyle 1 Fixed Single
Command Name cmdVerlocal Command Caption Ver Local
Command Name cmdVerForm Command Caption Ver en Formulario
Command Name cmdMemoria Command Caption Ver Memoria

No se olvide de guardar.
El cdigo programado para el ejercicio es el siguiente, identifique qu codigo lleva qu
objeto en qu evento y transcrbalo.

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
29
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

No se olvide de guardar. Ejecute la aplicacin, pruebe todos los controles,


analice los resultados, relacinelos con el cdigo.

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
30
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Retroalimentacin N. 1
De lo que se ha trabajado hasta ahora, formule las preguntas que tenga en el
siguiente formato, consulte a la persona ms adecuada para su solucin.
1. ___________________________________________________________________
R. ____________________________________________________________________
2. ___________________________________________________________________
R. ____________________________________________________________________
3. ___________________________________________________________________
R. ____________________________________________________________________
4. ___________________________________________________________________
R. ____________________________________________________________________
5. ___________________________________________________________________
R. ____________________________________________________________________
6. ___________________________________________________________________
R. ____________________________________________________________________
7. ___________________________________________________________________
R. ____________________________________________________________________
8. ___________________________________________________________________
R. ____________________________________________________________________
9. ___________________________________________________________________
R. ____________________________________________________________________
10. ___________________________________________________________________
R. ____________________________________________________________________
Anexo. ________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
Las condiciones.
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
31
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Al momendo de programar, sea cual sea el lenguaje, habr un punto en el cual


haya que requerir a la toma de decisiones sobre alguna accin, es por eso
que las condiciones son parte importante en la programacin.

Qu es una condicin? Es una instruccin de control que permite cambiar el rumbo


en la ejecucin de un programa, es como ir por por una autopista y encontrarnos con
una ramificacin (una ye (Y)), solo podremos tomar un camino, debemos decidir si por
la izquierda o por la derecha.

Las condiciones premiten la Validadacin de datos lo que previene errores al


introducirse un dato que no es correcto, o realizar una accin que requiere de otra
previamente.

Las condiciones pueden ser simples (A), compuestas (B) o anidadas (C).
A. If expresin then C. if expresin then
Instrucciones Instrucciones
End if ElseIf expresin then
Instrucciones
B. If expresin then Else
Instrucciones Instrucciones
Else End if
Instrucciones O tambin
End if If expresin then
If expresin then
If expresin then
Instrucciones
Else
Instrucciones
End if
Else
If expresin then
Instrucciones
Else
Instrucciones
End if
End if
End if
Grficamente se interpretan as (diagrama de flujo):
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
32
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Condicin Condiciones Condicin


Compuesta Anidadas Simple

Expresin: Una expresin es una comparacin entre dos partes la cual devolver un
valor lgico (Falso o Verdadero) dependiendo de los valores de las partes y del
operador que las est influenciando, los operadores de comparacin son los siguientes:
= (igual) > (mayor que) < (menor que) >= (mayor igual)
<= (menor igual) <> (diferente)

Ejemplos de expresiones:
A=5, ao<>2005, usuario<>admin., a<>b, edad<18, ingreso<=(sueldo*2)
Activo=True, registrado<>False, Left=0, caption=Aceptar, text1.text=

Ejemplos de condiciones.
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
33
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

If txtClave.text=salir then O tambin:


End if txtClave.text=salir then end
End if
(Una condicin simple se puede escribir en una sola lnea)

If cmdBorrar.enabled=False then
txtMensaje.text=No puede borrar
else
txtMensaje.text=Listo para borrar
end if

if x=a then
Nota=Aceptable
Elseif x=b then
Nota=Bueno
End if
Operadores Lgicos: Son aquellos que se utilizan y afectan solamente a algn valor
lgico, estos operadores son:
And: (Y) permite incluir varias expresiones dentro de la misma instruccin IF, lo cual
obliga una condicin verdadera si todas las expresiones son verdaderas.
Or: (O) permite incluir varias expresiones dentro de la misma instruccin IF, el resultado
ser verdadero si alguna expresin es verdadera.
Not: (No) invierte un valor lgico.

Los posibles resultados al utilizar los operadores lgicos se relacionan con las tablas de
verdad.
Operador And Operador OR Operador Not
Exp1 Exp2 = Exp1 Exp2 = Exp =
True False False True False True Not True False
False True False False True True Not False True
False False False False False False Not 2=2 False
True True True True True True Not 3<>2 False

Ejemplos de operadores lgicos.


If x<>0 and y<>0 then z=x+y if sexo=M and edad>18 then Aceptado=True
If nota=6 or nota=7 then Mensaje=Debe estudiar mas
If txt1.text= or txt2.text= then lblMensaje.caption=Faltan datos
Y=not (3=3) (Y tomar Falso)
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
34
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

If not (x>y) then


lblMensaje.caption=x debe ser mayor que y
end if

Ejercicio N. 7
Analice y escriba la respuesta.
4.
1. Dim P1 as Boolean, P2 as Boolean
dim x as byte, y as byte, z as byte. Dim Resp as Boolean
x=12: y=14 Dim pal1 as string, pal2 as string
if (x/3)>(y-10) then Pal1=casa : pal2=blanca
z=x+y
P1=len(pal1)>=5:p2=len(pal2)>=6
else
z=x-y Resp=P1 and P2
end if
Resp=___________
z=____
5.
2.
cmdAceptar.Enabled= Not
dim clave as string : clave=prog
cmdAceptar.Enabled
cmdOk.Enabled=(Ucase(clave)=
cmdAceptar.Enabled=______________
PROG)
6.
cmdAceptar.Enabled=_____________
Dim estado as Boolean
3.
Dim tiempo as byte
dim nota as byte
Tiempo=int(1000/365)
dim aprobado as Boolean
Estado=tiempo>2
nota=4
Estado=_____________
aprobado=nota>=3
7.
aprobado=___________
Dim pal1 as string, pal2 as string
Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
35
Prof. Geremias Atuesta Prof. Nelson
Enrique Crdenas

Dim resp as boolean c=a or b


Pal1=Msica : Pal2=msica c=____________
Resp=not pal1<>pal2 c=a and b
Resp=__________ c=____________
8. 9.
Dim a as Boolean, b as Boolean x=3>2 and 2<3
Dim c as Boolean x=____________
b=true

Quienes traen la luz a la vida de sus semejantes, jams estarn en las tinieblas.
36
Los Casos:
Los casos son otra instruccin de control, bsicamente se pueden emplear
como condiciones simples, los casos se manejan de la siguiente manera.
Select Case variable
Case valor1
Instrucciones caso1
Case Valor2
Instrucciones caso2
Case Valor3
Instrucciones caso3
Case .
Case else
Instrucciones
End select
Ejemplo:
Select case txtEstrato.text
Case 1
Print Tendr un descuento del 20%
Case 2
Print Tendr un descuento del 15%
Case 3
Print Tendr un descuento del 10%
Case else
Print No tendr descuento
End Select
Case else se aplica cuando no se cumple ninguna de las condiciones anteriores.

Otras Funciones:
isDate: Devuelve True si una expresin es una fecha.
IsNumeric: Devuelve True si una expresin es un nmero.
Asc: Devuelve el cdigo ASCII de un carcter.
Char: Devuelve el carcter asociado al cdigo ASCII dado.
Left: Selecciona el nmero de caracteres indicado por el lado izquierdo de una
cadena. Ej: left(Casablanca,4)=Casa)
Mid: Selecciona el nmero de caracteres indicado dentro de cualquier parte de una
cadena. Sintaxis: mid(cadena,inicio,longitud) Ej: mid(animalito,4,5)=malit
Right: Selecciona el nmero de caracteres indicado por el lado derecho de una
cadena. Ej: Right(Casablanca,6)=blanca)
Abs: Devuelve el valor absoluto de un nmero.
Mod: Devuelve el sobrante de una divisin entera. Ej. 5 mod 3=2
Shell: Inicia un programa ejecutable. Ej: shell c:\windows\system32\calc.exe

Mostrar mensajes y pedir datos.


Existen dos funciones muy comunes que nos permiten mostrar y recoger datos.
Msgbox: Muestra una caja de mensaje y devuelve la eleccin del usuario.
Para mostrar un mensaje utilice la siguiente sintaxis.
Msgbox Mensaje, botones, Ttulo
Donde botones puede ser una constante numrica de que determina un tipo de
mensaje y/o los botones que va a contener.

Constantes para botones:


vbAbortRetryIgnore o 2: Anular, Reintentar, Ignorar.
vbOkCancel o 1: Aceptar, Cancelar.
vbOkOnly o 0: Aceptar.
vbRetryCancel o 5: Reintentar, Cancelar.
vbYesNo o 4: Si, No.
vbYesNoCancel o 3: Si, No, Cancelar.
Constantes para tipo de mensaje.
vbCritical o 16: Crtico.
vbExclamation o 48: Exclamacin.
vbInformation o 64: Informacin.
vbQuestion o 32: Pregunta.

Ejemplos:
Msgbox Bienvenido a Visual Basic,vbExclamation,Mi
programa

Msgbox Est seguro?,vbQuestion + vbYesNo,Eliminar


(Combinando tipo de mensaje con botones utilizar el signo
mas (+))

Como validar la respuesta de un MsgBox?


Al formular un mensaje con botones, cada botn de vuelve
un valor, de tal manera que se pueda capturar en una
variable para poder programar una accin para cada botn.
Sintaxis:
Var=msgbox(Mensaje,botones,Ttulo)
Var tomar un valor segn el botn presionado as:
Botn Valor Equivalente Botn Valor Equivalente
Anular 3 vbAbort Aceptar 1 vbOk
Cancelar 2 vbCancel Reintentar 4 vbRetry
Ignorar 5 vbIgnore Si 6 vbYes
No 7 vbNo
Ejemplo
Dim resp as byte
Resp=msgbox(Terminar la
ejecucin,vbYesNo+vbQuestion,Terminar)
If resp=vbYes then
End
Else
Msgbox Respuesta negativa,vbExclamation,Negativo
endif

Inputbox: Crea un mensaje como caja de entrada de datos, devolviendo lo que el


usuario ha digitado cuando se pulsa el botn Aceptar.
Su sintaxis es la siguiente.
Var=inputbox(Mensaje,Ttulo,contenido por defecto)
En donde Var tomar el valor escrito solo al pulsar Aceptar.
Ejemplo.
Dim nombre as string
Nombre=inputbox(Digite su nombre,Datos personales)
If Nombre= then
Msgbox Incorrecto,vbExclamation
End if

(Cuadro Inputbox)
Concatenacin: e llama as a la accin de unir datos, bsicamente debe
emplearse el signo ampersand (&).
Ej. X=Son las & time & del da & date (importante el espacio antes y despus de &)

Ejercicio N. 8
Desarrollaremos en este ejercicio el uso de MsgBox e InputBox.
Disee el formulario como el de la imagen.
Nota: Los conos mostrados en los
botones de la parte izquierda se
encuentran en la ruta c:\Archivos de
programa\Microsoft Visual Studio
\Common\Graphics\Icons\Computer.
Llame a estos botones cmdMsg1,
cmdMsg2, cmdMsg3, cmdMsg4
respectivamente, no olvide que Style
debe tener el valor de 1- Graphical.

El segundo grupo de botones es una Matriz llamada cmdBotones (cree el primer


botn, coloque el nombre para la matriz en la propiedad name de dicho botn, copie y
pegue, responda si, cambie los caption).

Identifique las etiquetas, coloque cualquier nombre y el caption correspondiente a las


etiquetas cuyo caption es diferente a vaco, coloque los nombres lblicono, lblBotones,
lblValor para las 3 etiquetas que estn con caption vacio, modifique BorderStyle para
todas.

Identifique los cuadros de texto, coloque los nombres txtMensaje, txtTtulo, txtIcono,
txtBotones en orden de arriba hacia abajo, text est vaco.
Por ltimo, el botn cerrar se llama cmdCerrar.

No se olvide de guardar.
El cdigo programado para el ejercicio es el siguiente, identifique qu codigo lleva qu
objeto en qu evento y transcrbalo.
No se olvide de guardar, ejecute la aplicacin, utilcela una y otra vez, tenga en
cuenta los valores para los conos y para los botones, pruebe otros valores.

Objeto Frame: (Marco) hace las veces de contenedor, es decir que permite
agrupar otros objetos, en el diseo es muy til, porque adems de identificar reas
dentro de un formulario permite mover fcilmente un grupo de objetos. Tener en cuenta
las propiedades Name, Backcolor, BorderStyle y caption.

Objeto CheckBox: (Casilla de verificacin) se utiliza cuando se requiera hacer


una seleccin mltiple, ya que permite seleccionar uno, varios o ningn elemento de
una lista.
Value: Devuelve o establece el valor de un objeto. Tal vez la propiedad
ms importante despus del nombre, pues con esta propiedad se
determina el estado de la casilla, es decir si est verificada, no
verificada o utiliza un valor intermedio (gris) nomalmente ocurre
cuando depende de otros valores. Se pueden utilizar las siguientes
constantes: vbUnChecked, vbChecked, vbGrayed.
Style: Devuelve o establece la apariencia del control. Si est en Graphical tendr
aspecto de botn.
No olvidar: Name, caption, backcolor, picture, downpicture, disabledpicture, estas
cuatro ltimas solo si Style est en Graphical.

Objeto OptionButton: (Botn de opcin) se utiliza para elegir solo un elemento


dentro de un grupo, si hay varias elecciones deben agruparse dentro de un frame.
Value: Devuelve o establece el valor de un objeto, en este caso, True si est
seleccionado y false si no lo est.
Style: Devuelve o establece la apariencia del control. Si est en Graphical tendr
apariencia de botn.
No olvidar: Name, caption, backcolor, picture, downpicture, disabledpicture, estas
cuatro ltimas solo si Style est en Graphical.

Objeto ComboBox: (Cuadro combinado)

Objeto ListBox: (Lista)

Estos dos controles se utilizan de forma similar, la diferencia radica en la presentacin.

List: Devuelve o establece los elementos contenidos en la lista de un control.


Sorted: Indica si los elementos de un control se ordenan automticamente en forma
alfabtica.
Text: Devuelve o establece el texto contenido en un control. (en la lista se refiere al
elemento seleccionado).
ListCount: (disponible con cdigo) devuelve el nmero de elementos contenidos en
una lista.

Agregar elementos con cdigo: Se utiliza Additem. Ej: list1.additem Colombia,


Combo1.additem text1.text
Eliminar elementos con cdigo: Se utiliza Removeitem: Ej. List1.removeitem 0
(elimina el primer elemento de la lista), Combo1.removeitem combo1.listindex.
(Utiliza listindex para eliminar el elementos seleccionado).
Clear: Elimina todos los elementos de la lista. Ej. List1.Clear.
Ejercicio N. 9
El objetivo es utilizar los controles de seleccin CheckBox, OptionButton,
ListBox y ComboBox. Disee un formulario como el de la imagen.

1. Cree un TextBox (grande en la parte superior), llmelo txtEditor, coloque ScrollBars


Vertical y MultiLine en True.
2. Cree un Frame (Nombre cualquiera, caption Formato del Editor)
3. Cree un CheckBox llmelo chk3d, coloque caption Con/Sin 3D.
4. Cree 2 OptionButton, coloque los nombres optFondo, optTexto as como los caption
Fondo y Texto respectivamente.
5. Cree un ComboBox, llmelo cmbColor, coloque Enabled False y text vaco.
6. Cree otro Frame, (nombre cualquiera, caption Formato del Texto).
7. Cree 4 Checkbox, llmelas Chk1, Chk2, Chk3 y Chk4 respectivamente, deje el
caption vaco y coloque style en Graphical para todas, modifique la propiedad picture
cargando las imgenes BLD, ITL, UNDRLN, STRIKTHR en el orden respectivo las
cuales se encuentran en la ruta: C:\Archivos de programa\Microsoft Visual
Studio\Common\Graphics\Bitmaps\TlBr_W95\.
8. Cree un Label (nombre cualquiera, caption Tamao).
9. Cree un ComboBox, llmelo cmbTamao, deje Text vaco.
10.Cree otro Frame (nombre cualquiera, caption Alinear).
11. Cree un ListBox, llmelo lstAlinear.
12. Cree otro Frame (nombre cualquiera, caption Usar).
13.Cree 3 OptionButton, llmelos Opt1, Opt2 y Opt3 con los captions Left, Mid y Right
respectivamente.
14.Cree 2 TextBox, llmelos txtN1 y txtN2, deje Text vaco.
15.Cree un Label, llmelo lblSintax, coloque Alignment Center, BorderStyle Fixed Single
y caption vaco.
16.Cree un TextBox, llmelo txtSel, deje text vaco.

No se olvide de guardar el proyecto.


17.Revise los puntos anteriores seleccionando los objetos ya creados y comprobando
que haya establecido las propiedades correctamente.
El cdigo programado para el ejercicio es el siguiente, identifique qu codigo lleva qu
objeto en qu evento y transcrbalo (Nota: el uso de los dos puntos (:)termina una
instruccin es decir que se puede escribir varias instrucciones en una misma lnea
separndolas con dos puntos (:).
No se olvide de guardar. Ejecute la aplicacin.

Cmo pasar el cursor con Enter?.


Cuando se llenan datos en un formulario es cmodo que al pulsar Enter, el cursor salte
al siguiente elemento, para lograr esto se debe hacer lo siguiente:
1. Seleccione el formulario, cambie KeyPreview a True.
2. Programe sobre el formulario en KeyPress: if KeyAscii=13 then SendKeys {TAB}
(en el evento KeyPress, la variable KeyAscii toma el cdigo Ascii de la tecla
presionada, 13 equivale a ENTER).
3. Establezca el orden de tabulacin (TabIndex) de acuerdo al orden en que quiera
recorrer los objetos.
KeyPreview: Devuelve o establece un valor que indica si los eventos del teclado
ocurren primero en el formulario antes que en el objeto donde se encuentre el
cursor.
SendKeys: Enva pulsaciones de teclas a la ventana activa.

Ejercicio N. 10
En este ejercicio se pretende aplicar parte de lo que hasta aqu se ha visto,
resaltando el uso de Matrices de Objetos, variables y listas. Disee el
formulario como en la imagen.
1. En el ejercicio hay 5 tipos de objetos.
Cuales son?:
__________________________
__________________________
2. De los objetos, nos interesan los nombres
de: el cuadro de texto debajo de Alumno
se llama txtAlumno, el combo que est en
frente de curso se llama cmbCursos, el
botn inscribir se llama cmdInscribir, el
botn cerrar se llama cmdCerrar.
3. En el segundo Frame existen 3 matrices de objetos: la de los combos llamada
cmbCurso, la de los botones llamada cmdBorrar y la de las Etiquetas llamada
lblDato.
4. El Label (Total alumnos inscritos) se llama lblTotal.

5. No se olvide de guardar.

El cdigo programado para el ejercicio es el siguiente, identifique qu codigo lleva qu


objeto en qu evento y transcrbalo.
No se olvide de guardar.
Ejecute la aplicacin, agregue al menos 5 alumnos a cada curso, elimine todos los
alumnos de cada curso.

Escriba los interrogantes que encuentra respecto al ejercicio anterior.


______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

Los ciclos
Un ciclo es algo repetitivo. En programacin, un ciclo se conoce tambin
como Bucle o instruccin repetitiva cuya estructura realmente es un bloque cuyo
contenido se ejecuta determinado nmero de veces dependiendo de la condicin que
controle el ciclo.
Diagrama de flujo de un ciclo.
Nota: Antes de ejecutar un ciclo, asegrese de haber guardado, porque si por error, se
crea un ciclo infinito (interminable), habr que cerrar Visual Basic Abruptamente y se
perder lo que no se haya guardado.

Hablaremos de dos tipos de ciclo: Ciclo automtico y ciclo controlado.

Ciclo automtico.
Se maneja mediante la estructura For.Next cuya sintaxis es:
For Variable=Inicio to Fin step incremento
Instrucciones
Next Variable
Para este ciclo, la variable debe ser numrica, la cual tomar valores desde inicio hasta
Fin incrementndose de acuerdo al valor establecido en incremento.
Ejemplo:
Dim var As Byte
For var = 1 To 10
Print "Ciclo"
Next var
Se imprimir sobre el formulario 10 veces la palabra Ciclo, Step no es obligatorio
cuando el incremento es 1.
For var=0 to 100 Step 2
Print var
Next var Imprime los pares que hay entre 0 y 100
For var=500 to 1 Step -1
Print var
Next var Imprime los nmeros desde 500 hasta 1

Puede dar por terminado un ciclo utilizando Exit for.


Ejercicio N. 11
El propsito es ejercitarse en el uso de los ciclos for, es recomendable
analizar cada una de las partes que componen este ejercicio de tal manera
que se llegue a su total entendimiento.
1. Observe e identifique cada uno de los controles del formulario mostrado en la
imagen.

2. Cree un frame, coloque cualquier nombre y el caption 1. Es primo?; coloque una


etiqueta con el caption Digite un nmero:, cree un cuadro de texto, llmelo txtNum y
deje Text vaco; cree un botn de comando, llmelo CmdResolver y coloque como
caption Resolver; cree una etiqueta, llmela lblRes, coloque BorderStyle 1 y deje el
caption vaco.
3. Programe el botn Resolver con el siguiente cdigo en el evento Click.
4. No se olvide de Guardar, ejecute el programa.
5. Cree otro frame, coloque como nombre fraColores y el caption 2. Colores; cree
una casilla de verificacin, llmela chkColorear y coloque como caption Colorear;
cree un botn de comando, llmelo cmdColor, deje caption vaco, ajuste el tamao
como se muestra en la imagen, copie dicho botn, pegue 15 copias creando una
matriz de controles, distribyalos en orden, primero a la derecha, luego abajo.
6. Programe la casilla de verificacin en el evento click con el siguiente cdigo.

7. Programe cualquier botn de la matriz en el evento Click con el cdigo:

8. No se olvide de guardar, ejecute y pruebe el programa.


9. Cree otro frame, coloque cualquier nombre y caption 3. Tablas; cree 2 etiquetas,
cualquier nombre y caption Tabla del: y Hasta: respectivamente; cree 2 cuadros de
texto, con los nombres txtValor y txtHasta respectivamente, deje Text vaco; cree un
botn de comando, llmelo cmdAplicar y coloque como caption >; cree un ListBox,
coloque como nombre lstTabla, deje List vaco.
10.Programe el botn cmdAplicar en el evento Click con el siguiente cdigo:

11. No se olvide de guardar, ejecute y pruebe el progrma.


12.Cree otro frame, coloque cualquier nombre y caption 4. Mltiplos; cree 2 etiquetas
con los caption Buscar mltiplos de: y Hasta: respectivamente; cree 2 cuadros de
texto, llmelos txtNum1 y txtNum2 respectivamente, deje Text vaco; cree un botn
de comando llamado cmdBuscar, coloque como caption Buscar; cree un ListBox,
llmela lstMul y deje vaca la propiedad List.
13.Programe el botn Buscar en el evento Click con el siguiente cdigo:

14. No se olvide de guardar, ejecute y pruebe el programa.


15.Cree otro frame, cualquier nombre y caption 5. Buscar; cree 2 etiquetas con caption
Digite una cadena de texto y Carcter a buscar respectivamente; cree 2 cuadros
de texto llamados txtBuscar y txtCar respectivamente, deje Text vaco; cree un botn
de comando, coloque como nombre cmdBuscar1 y caption Buscar; cree otra
etiqueta, coloque como nombre lblRes1, borderStyle 1 y caption vaco.
16.Programe el botn de comando con el siguiente cdigo:

17. No se olvide de guardar, ejecute y pruebe el programa.


18.Cree otro frame, nombre cualquiera y caption 6. Par e Impar; cree una etiqueta,
coloque como caption Digite un nmero:; cree un cuadro de texto, llmelo txtNum3
y deje Text vaco; cree un botn de comando, llmelo cmdAgregar y coloque como
caption cmdAdd; cree 2 ListBox, coloque como nombres lstNums y lstVer
respectivamente, deje la propiedad List vaco; cree 3 botones de opcin con
nombres optPar, optImpar y optTodos respectivamente, coloque en forma respectiva
los caption Ver Pares, Ver Impares y Ver Todos.
19.Programe el botn cmdAgregar en el evento click con el siguiente cdigo:

20.Programe los botones de opcin en el evento click con el siguiente cdigo:


21. No se olvide de guardar, ejecute y pruebe el programa.
Ciclo Controlado.
Se maneja mediante la instruccin while.Wend cuya sintaxis es:
While Condicin
Instrucciones
Wend
Si la condicin es verdadera ejecutar las instrucciones, de lo contrario no.
Ejemplo:
Dim var As Byte
While var < 10
Print var
var = var + 1
Wend
Este ejemplo imprime sobre el formulario los nmeros de 0 a 9.
Ejemplo:
Dim clave as string
Dim entrada as string
Clave=paranguaricutirimicuaro
While entrada<>clave
Entrada=inputbox(Digite clave de acceso)
Wend
Msgbox Bienvenido

Controles HScrollBar y VScrollBar: (Barras de desplazamiento Horizontal y


Vertical). Se utilizan bsicamente con el propsito de incrementar o disminuir en una
cantidad fija un valor numrico.
Value: Devuelve o establece el valor actual de la barra de desplazamiento.
Max: Devuelve o establece el valor mximo aceptado por la barra de
desplazamiento.
Min: Devuelve o establece el valor mnimo aceptado por la barra de
desplazamiento.
LargeChange: Devuelve o establece la magnitud del cambio de desplazamiento de
la barra cuando se hace click dentro de ella.
SmallChange: Devuelve o establece la magnitud del cambio de desplazamiento de
la barra cuando se hace click en las flechas de los extremos.
Change: Este evento ocurre cuando cambia la propiedad Value de una barra de
desplazamiento.
Scroll: Ocurre cuando el deslizador cambia de posicin, as no haya cambiado el
valor de Value.

Ejercicio N. 12
Manejo de las barras de desplazamiento.
Disee un formulario como se muestra en la grfica.
Llame al frame fraRGB, las barras de desplazamiento hacen
parte de una matriz llamada barRGB, las etiquetas de la
derecha hacen parte de una matriz llamada lblValor.

Programe el siguiente cdigo:

No se olvide de guardar, Ejecute el programa.

Control Timer: (Temporizador). Es un control invisible en tiempo de ejecucin, se


utiliza para establecer intervalos de tiempo medidos en milisegundos.
Interval: Devuelve o establece el nmero de milisegundos que trascurrirn antes de
que se active el temporizador. (1 segundo = 1000).
Timer: Es el nico evento de este control, y ocurre cuando se cumple el tiempo
establecido en la propiedad interval.
Ejercicio N. 13
Utilizacin del temporizador.
Disee un formulario como se muestra en la imagen.
1. Cree un temporizador, llmelo tmrHora,
coloque Interval en 1000 y enabled False.
2. Cree otro temporizador, llmelo tmrMover,
coloque interval en 100 y enabled False.
3. Cree 3 botones de comando, llmelos
cmdIniciar, cmdParar y cdm, coloque los
caption en forma respectiva Iniciar, Parar y On.
4. Cree una etiqueta, llmela lblIntervalo, coloque BorderStyle 1 y como caption
coloque Intervalo:.
5. Cree una barra de desplazamiento Horizontal, llmela barTiempo, coloque
LargeChange=1000, SmalChange=1000, Min=1000, Max=15000.
6. Analice y escrba el siguiente cdigo teniendo en cuenta a qu objeto y qu evento
corresponde.
No se olvide de guardar, ejecute el programa.

Objeto PictureBox: Utilice este control para cargar una imagen, crear un rea de
dibujo o contener otros objetos.
Picture: Probablemente la propiedad ms llamativa, permite cargar una imagen
(formatos admitidos: bmp, gif, jpg, wmf, ico).
AutoSize: Devuelve o establece un valor que indica si el control se ajustar
automticamente a su contenido.

Objeto Image: Utilice este control para mostrar una imagen.


Picture: Permite cargar una imagen (formatos admitidos: bmp, gif, jpg, wmf, ico).
Stretch: Devuelve o establece un valor que indica si una imagen cambia de tamao
para acomodarse al control.
Estos dos controles se utilizan de forma muy similar, las principales diferencias radican
en que el control PictureBox es un objeto Opaco, mientras que el Image es de forma
Transparente, adems en el PictureBox no se puede redimensionar una imagen,
mientras que en el Image si.

Puede cargar una imagen con cdigo utilizando la funcin LoadPicture de la


siguiente manera:
Objeto.picture=LoadPicture(Ruta del archivo).
Ejemplo:
Image1.picture=LoadPicture(c:\Windows\abanicos.bmp)

Puede utilizar la propiedad Path del objeto App para tomar la ruta actual del
proyecto (archivo vbp en diseo) o del Ejecutable (Archivo exe en ejecucin), esto evita
que un archivo tenga que cargarse desde una ruta fija. Ejemplo.
frmAcerca.picture=LoadPicture(App.path & \Logo.jpg)
Image1.Picture=LoadPicture(App.Path & \Fotos\Admin.bmp)
De esta manera no importa en que ruta se guarde un proyecto o se genere un
ejecutable, siempre y cuando las imgenes estn adelante siempre se cargarn.

Objeto DriveListBox: (Lista de unidades de disco). Genera una lista automtica


con las unidades de almacenamiento disponibles en el computador. (A:, C:, D:).
Drive: Esta propiedad slo est disponible con cdigo. Devuelve o establece la
unidad de disco.
Change: Este evento ocurre cuando se hace el cambio de unidad.

Objeto DirListBox: (Lista de directorios). Muestra una lista con los directorios
(Carpetas) de una ruta indicada.
Path: Esta propiedad solo est disponible con cdigo. Devuelve o establece la ruta
actual.
Click: Este evento ocurre cuando se selecciona un directorio en el control
DirListBox.
Change: Este evento ocurre cuando se abre un directorio para explorar su
contenido.

Objeto FileListBox: (Lista de archivos). Muestra una lista de archivos contenidos


dentro de una carpeta especificada.
Path: Esta propiedad solo est disponible con cdigo. Devuelve o establece la ruta
de donde se mostrarn los archivos.
Pattern: Devuelve o establece un valor que indica los tipos nombres de archivo que
se mostrarn en el control. En este caso debe tenerse en cuenta los comodines
(*,?), se puede especificar varios tipos separando cada uno con punto y coma
(;).Ejemplo: File1.Pattern=*.jpg.
Filename: Esta propiedad solo est disponible con cdigo. Devuelve el nombre del
archivo que se encuentre actualmente seleccionado en la lista de archivos.
Ejercicio N. 14
Prctica sobre los controles PictureBox, ImageList, DriveListBox, DirListBox y
FileListBox.
1. Disee un formulario como se muestra en la imagen.
2. Debe contener un
control
DriveListBox
llamado driveDisco;
un control
DirListBox llamado
dirCarpeta; un
control FileListBox
llamado fileArchivo.
3. En la parte derecha
hay un control
Image llamado imgVista.
4. Dentro del Frame (Formatos) hay una matriz de Botones de opcin la cual se llama
optFormato, la casilla de verificacin se llama chkStretch.
5. Analice el siguiente cdigo, transcrbalo.
6. No se olvide de guardar, ejecute el programa.

En el ejercicio anterior se encuentra una instruccin on error goto esta instruccin


permite Tener control sobre los errores. Esta instruccin significa en caso de error
vaya a, luego debe especificarse una etiqueta a donde saltar la ejecucin del
programa. En el ejercicio anterior se utiliza tambin la instruccin Exit Sub lo cual
significa la terminacin inmediata del procedimiento, es decir que la parte despus de la
etiqueta noimagen solo se ejecutar si hay error.
Cada error tiene un nmero, lo cual permitira mostrar un mensaje personalizado de
acuerdo al error. Por ejemplo, si en el ejercicio anterior se omite la instruccin On
error y la instruccin exit sub, se produce el error 481 cuando el archivo seleccionado
no es una imagen, se podra personalizar as:
If err.number=481 then
Msgbox err.description
Retroalimentacin N. 2
De lo que se ha trabajado hasta ahora, formule las preguntas que tenga en el
siguiente formato, consulte a la persona ms adecuada para su solucin.
1. ___________________________________________________________________
R. ____________________________________________________________________
2. ___________________________________________________________________
R. ____________________________________________________________________
3. ___________________________________________________________________
R. ____________________________________________________________________
4. ___________________________________________________________________
R. ____________________________________________________________________
5. ___________________________________________________________________
R. ____________________________________________________________________
6. ___________________________________________________________________
R. ____________________________________________________________________
7. ___________________________________________________________________
R. ____________________________________________________________________
8. ___________________________________________________________________
R. ____________________________________________________________________
9. ___________________________________________________________________
R. ____________________________________________________________________
10. ___________________________________________________________________
R. ____________________________________________________________________
Anexo. ________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
Control Shape: (Forma). Se utiliza para crear figuras bsicas como rectngulos y
crculos. Es un objeto No programable, pues no incluye ningn evento.

Shape: Devuelve o establece un valor que indica qu figura mostrar el control.


BackColor: Devuelve o establece el color de fondo (solo si BackStyle=1).
BorderColor: Devuelve o establece el color del borde del Objeto.
BorderStyle: Devuelve o establece el estilo del borde del objeto.
BorderWidth: Devuelve o establece el grosor del borde del objeto.
FillColor: Devuelve o establece el color del estilo de relleno. (solo si FillStyle<>1).
FillStyle: Devuelve o establece el estilo de relleno del control.

Control Line: (Linea).

BorderColor: Devuelve o establece el color del borde del Objeto.


BorderStyle: Devuelve o establece el estilo del borde del objeto.
BorderWidth: Devuelve o establece el grosor del borde del objeto.
X1: Devuelve o establece la coordenada x inicial.
Y1: Devuelve o establece la coordenada y incial.
X2: Devuelve o establece la coordenada x final.
Y2: Devuelve o establece la coordenada y final.
Ejercicio N. 15
Utilizar los controles Shape, Line y otros.
1. Disee un formulario como se muestra en la imagen.
2. Cree un control shape, llmelo forma.
3. Cree un frame con cualquier nombre
y caption Shape, cree dentro de el
un HScrollBar, llmelo barForma,
colque Min=0 y Max=5; coloque una
etiqueta llamada lblForma, coloque
BorderStyle en 1 y caption vaco.
4. Cree otro frame, con cualquier
nombre y caption BackStyle, cree
dentro de el un CheckBox, llmelo
chkBS y coloque como caption
Opaco / Transparente.
5. Cree otro frame con cualquier nombre y caption FillStyle, cree dentro de el un
HScrollBar, llmelo barEstilo, coloque Min=0 y Max=7; cree una etiqueta, llmela
lblEstilo, coloque BorderStyle en 1 y caption vaco.
6. Cree otro frame con cualquier nombre y caption Color, cree dentro de el 3 botones
de opcin con los nombres opt1, opt2 y opt3, as como lo caption Fondo, Relleno y
Borde respectivamente; cree un HScrollBar, llmelo barColor, coloque Min=0 y
Max=15; cree una etiqueta, llmela lblColor, coloque BorderStyle en 1 y caption
Vaco.
7. Cree un control Line, llmelo Lnea.
8. Cree 2 botones de opcin, llamelos optP1 y optP2, con caption P1 y P2
respectivamente.
9. Cree 4 botones de comando, llmelos cmd1(izquierda), cmd2(arriba),
cmd3(derecha), cmd4(abajo), sin caption, coloque Style en 1 y cargue el cono
correspondiente.
10. No se olvide de guardar.
11. El cdigo programado para el ejercicio es el siguiente, identifique qu codigo lleva
qu objeto en qu evento y transcrbalo.

12. No se olvide de guardar, ejecute el programa.

Objeto OLE: Se utiliza para vincular otros programas y as poder abrir sus
respectivos documentos, por ejemplo, se puede vincular un archivo de video, una
diapositiva de PowerPoint, un documento de Word, entre otros. Al colocar el control,
automticamente aparecer la ventana insertar objeto, donde se puede elegir el origen
del elemento que queremos
vincular. Los objetos
incrustados se pueden activar
en ejecucin mediante el doble
click sobe el control OLE, o
programando la accin 7 (Abrir
o editar) Ejemplo: OLE1.Action
= 7.

Controles Adicionales.

Los controles que se encuentran en el cuadro de herramientas no son los nicos


que se pueden utilizar en Visual Basic, realmente cada elemento de estos es un archivo
OCX o DLL que est vinculado. Para utilizar otro control que no se encuentre dentro del
cuadro de herramientas ingrese al men Proyecto, elija Componentes, marque la
casilla de verificacin de acuerdo al control que desee vincular, luego pulse Aceptar.

Control CommonDialog: (dilogo comn). En la lista de controles adicionales


agregue Microsoft Common Dialog Control 6.0. Este componente permite utilizar las
cajas de dilogo ms comunes de Windows, como son la de Guardar, de Abrir, la de
colores, la de Fuentes y la de impresin.
Action: Esta propiedad est disponible nicamente con cdigo. Devuelve o
establece el tipo de cuadro de dilogo que se va mostrar. Los valores disponible
para esta propiedad son:
1. Cuadro de dilogo Abrir Equivalente a usar ShowOpen
2. Cuadro de dilogo Guardar Equivalente a usar ShowSave
3. Cuadro de dilogo Color Equivalente a usar ShowColor
4. Cuadro de dilogo Fuentes Equivalente a usar ShowFont
5. Cuadro de dilogo Imprimir Equivalente a usar ShowPrint
6. Cuadro de dilogo Ayuda Equivalente a usar ShowHelp
CancelError: Indica si se produce un error cuando se oprime el botn cancelar en
un cuadro de dilogo.
Si se establece el valor de esta propiedad True, se genera un error al pulsar Cancelar,
de tal manera que se puede controlar con on error goto.
DialogTitle: Devuelve o establece un ttulo para el cuadro de dilogo.
Flags: Establece las opciones para un cuadro de dilogo.
Ejemplo: CommonDialog1.Action=1 tambien CommonDialog1.ShowOpen
Cada cuadro de dilogo tiene caractersticas diferentes, por lo cual agruparemos las
ms importantes de acuerdo a la accin que se vaya a realizar. Los cuadros de dilogo
Imprimir y Ayuda no se explicarn, puesto que estos se usan a nivel Avanzado y el
alcance de este manual es hasta Intermedio.

Como Utilizar ShowOpen y ShowSave.


Filter: Devuelve o establece los filtros para los tipos de archivos que se mostrarn
en el cuadro de lista Tipos de archivo al usar ShowOpen o ShowSave.

Cuando se va a abrir o a guardar un archivo, esta caja de dilogo puede filtrar el tipo de
archivo que se va a utilizar, para lograr esto se utiliza la propiedad Filter de la siguiente
manera.
CommonDialog1.Filter=Texto a mostrar|Formato
Entre el texto y el formato debe ir el carcter barra vertical o pipe (|) (cdigo Ascii 124).
Se puede colocar varios filtros manteniendo el separador Pipe.
Ejemplo: CommonDialog1.Filter= "Mapa de Bits|*.bmp|Fotos|*.jpg|Secuencias
Animadas|*.Gif", lo cual mostrara:
Filtrando de acuerdo al tipo de archivo
seleccionado.

FileName: Devuelve o establece la ruta de acceso y el nombre de un archivo


seleccionado.
FileTitle: Devuelve o establece el nombre (sin la ruta) del archivo seleccionado.
Al seleccionar un archivo, la ruta completa de este queda almacenada en la propiedad
FileName, mientras que el nombre del archivo queda almacenado en la propiedad
FileTitle.
Flags: Esteblace las configuraciones para el cuadro de dilogo.
Los valores ms importantes son:
cdlOFNOverwritePromp 2: Aplica para ShowSave, indica si se mostrar el cuadro de
confirmar sobreescribir un archivo cuando el nombre ya existe.
cdlOFNAllowMultiselect 512: Aplica para ShowOpen, indica si se pueden
seleccionar varios archivos, la ventana cambiar al estilo de Windows 95.

Nota: las propiedades deben establecerse antes de hacer el llamado.


El cuadro Abrir se llama con ObjetoDlg.ShowOpen ObjetoDlg.Action=1
El cuadro Abrir se llama con ObjetoDlg.ShowSave ObjetoDlg.Action=2

Como utilizar ShowColor.


Color: Devuelve el color seleccionado en el cuadro de colores de windows el cual
aparece al hacer el llamado con ShowColor Action=3.
Ejemplo.
CommonDialog1.Showcolor
Me.BackColor=CommonDialog1.Color

Como utilizar ShowFont:


Flags: Para ShowFont se aplican:
cdlCFBoth 3: Indica que se mostrarn tanto las fuentes disponibles en pantalla como
las disponibles en la impresora.
cdlCFEffects 256: Habilita los efectos de tachado, subrayado y color.

Nota: Puede aplicarse varios valores para flags utilizando como separador el operador
mas (+).
Color: Devuelve o establece el color para la letra.
FontBold: Devuelve o establece el estado de la negrita.
FontItalic: Devuelve o establece el estado de la cursiva.
FontName: Devuelve o establece el nombre de la fuente.
FontSize: Devuelve o establece el tamao para la fuente.
FontStrikeThru: Devuelve o establece el estado de tachado.
FontUnderline: Devuelve o establece el estado de subrayado.
Ejercicio N. 16
Utilizar los cuadros de dilogo.
1. Disee un formulario como se muestra en la imagen.
2. Agregue un control
CommonDialog, coloque
como nombre Dlg.
3. Cree un frame con
cualquier nombre y caption
Fondo, cree dentro de el
dos botones de comando
llamados cmdShowOpen y
cmdShowColor, con los caption Imagen y Color respectivamente.
4. Cree un botn de comando llamado cmdShowFont con el caption Fuente.
5. Cree un cuadro de texto llamado txtEditor, coloque Multiline en True y ScrollBars
Vertical, deje Text vaco.
6. El cdigo programado para el ejercicio es el siguiente, identifique qu codigo lleva
qu objeto en qu evento y transcrbalo.
No se olvide de Guardar, ejecute el programa.

Creacin de un Men.
Los mens hacen parte fundamental en cualquier programa, por tal razn se
estudiarn a continuacin.
Antes de continuar tenga en cuenta lo siguiente:
Cada elemento de un men tiene Caption, Name (usar mnu al inicio del nombre de
un elemento de men), Nivel y opcionalmente ShortCut.
Ej:
Al construir un men, se crea una lista vertical de elementos, las cuales construyen el
men de Izquierda a derecha, por ejemplo, el men de la imagen anterior en el diseo
podra aparecer:
&Edicin
&Ver
&Insertar
.&Salto
.N&meros de Pgina
.Fec&ha y hora
.A&utotexto
..Autote&xto
..Nuev&o Alt+F3
Y as sucesivamente, cada cuatro puntos (.) indican un subnivel, observa el Alt+F3?,
a eso se le llama ShortCut (Mtodo Abreviado).

Realice los siguientes procedimientos paso a paso:


1. Abra el Editor de Mens accediendo al men Herramientas o pulsando el botn

de la barra de herramientas estndar. (si no est activo, haga click sobre el


formulario).
2. Se abrir la siguiente ventana:
3. En caption coloque &Archivo, en Name escriba mnuArchivo, oprima Siguiente.
4. En caption coloque &Nuevo, en name escriba mnuNuevo, en ShortCut elija Ctrl+N,
oprima el botn con la flecha a la derecha, luego el botn Siguiente.
5. En caption coloque (signo menos), en name coloque divisor1, oprima Siguiente.
6. En caption coloque &Salir, en name escriba mnuSalir, en ShortCut elija Ctrl+S,
oprima Siguiente.
7. En caption coloque &Edicin, en Name escriba mnuEdicin, oprima el botn que
tiene la flecha hacia la izquierda, oprima Siguiente.
8. En caption coloque &Copiar, en Name escriba mnuCopiar, en ShortCut elija Ctrl+C,
oprima el botn con la flecha a la derecha.
9. La lista inferior debe visualizarse como en la imagen.
Oprima el botn Aceptar.
Nota: A los elementos de men que contienen otros
elementos no se les puede aplicar ShortCut, puede cambiar
de orden los elementos de un men utilizando los botones con flechas arriba y abajo,
no se puede saltar los niveles de un men, no puede crear un elemento de men de
subnivel si no hay otro con un nivel anterior.

Ejercicio N. 17
Cree un men como se muestra en la Imagen.

Para programar un elemento de men basta con hacer click sobre el en tiempo
de diseo.
Trabjando con Mltiples Formularios.
En los programas se emplea ms de un formulario, existe dos maneras de hacer esto.
La primera es utilizando formularios libres encadenados con cdigo, la segunda es
creando un formulario Padre que aloje a los formularios normales convertidos en hijos.

Para abrir otro formulario en ejecucin coloque nombreformulario.show.


Para cerrar un formulario en ejecucin con cdigo coloque unload
nombreformulario.
Para cerrar el formulario actual utilice Unload Me.

A manera de prctica haga lo siguiente:


1. En un proyecto nuevo, coloque como nombre al formulario activo frmUno, cambie el
color de fondo y coloque como caption Primer Formulario.
2. Ingrese al men proyecto, elija Agregar Formulario, Abrir.
3. coloque como nombre frmDos, cambie el color de fondo y coloque como caption
Segundo formulario.
4. Agregue otro formulario, llmelo frmTres, cambie el color de fondo y coloque como
caption Tercer Formulario.
5. Utilice el explorador de proyectos para cambiar de un formulario a otro.
6. En cada formulario coloque dos botones de comando as:
En el primero los botones con caption Dos, Tres.
En el segundo los botones con caption Uno, Tres
En el tercero los botones con caption Uno, Dos.
Por ahora el nombre de los botones no interesa, programe los botones de la siguiente
manera:
El botn con caption: Lleva el cdigo:
Uno frmUno.Show : Unload Me
Dos frmDos.Show : Unload me
Tres frmTres.Show : Unload Me
No se olvide de guardar, AHORA DEBE GUARDAR 4 ARCHIVOS, PUES UN
PROYECTO Y 3 FORMUARIOS, ejecute el programa.
Observar que los formularios no aparecen en la misma posicin, pruebe colocando a
todos los formularios 2- CenterScreen en la propiedad StartUpPosition.

Cul formulario debe aparecer primero al ejecutar el programa?


Si hay varios formularios, al ejecutar un programa, siempre aparecer como inicial el
primero que se haya creado, para cambiar esto ingrese al men Proyecto, elija
Propiedades de (nombredelproyecto), en Objeto inicial elija el formulario que desee.
Formulario Padre y Formularios Hijos.
En la mayora de programas comerciales se utiliza la tcnica de agrupar las
ventanas del programa en un formulario principal, se habla entonces de un formulario
MDIParent y varios formularios MDIChild.

Con el ejercicio anterior haga lo siguiente:


1. Ingrese al men Proyecto, elija agregar formulario MDI.
2. Coloque como nombre frmPadre.
3. A cada uno de los formularios libres anteriores coloque MDIChild en True.
4. Elija como Objeto Inicial del proyecto el formulario frmPadre.
5. Programe en el evento Load del formulario frmPadre: frmUno.Show.
6. Guarde y ejecute el programa.
7. Anule la instruccin que se coloc en el Evento Load del formulario padre.
8. Cree un men en el formulario padre para ir a cada uno de los tres formularios hijos.
Creando Barras de Herramientas.
Un elemento muy comn y que permite manejar un programa ms
eficientemente es una barra de herramientas, veremos como crear por ejemplo:

Para crear una barra de herramientas debe cargarse el grupo Microsoft Windows
Common Controsl 60, el cual contiene 9 elementos, de los cuales necesitaremos:

Objeto ImageList: (Lista de imgenes). Permite cargar una coleccin de


imgenes con formatos Bmp, Jpg, Gif, Dib, Ico, y Cur, cada imagen tendr un ndice
(Index) que inicia desde 1 y un key (identificacin), que podremos utilizar para referirse
a una imagen de la lista.
A manera de prctica haga lo siguiente:
Cree un control ImageList en la ventana de propiedades ingrese por Personalizado,
Active la ficha Imgenes y pulse el botn Insertar Imagen.
Para referirse a una imagen con cdigo utilice una instruccin como esta:
Ej: me.picture=ImageList1.ListImages(2).Picture, donde el 2 es el ndice de la imagen.
Cree un botn de comando, practique cargando una imagen de la coleccin para el
fondo del formulario.

Objeto ToolBar: (Barra de herramientas). Permite crear una coleccin de botones


a los cuales se les puede cargar una imagen y programar una accin.

Al colocar el control ToolBar se abir un Asistente que nos guiar paso a paso en el
proceso de creacin de la barra de herramientas. (el asistente es opcional, pues no est
disponible siempre).
1. 2.

Paso 1: Podemos cargar un perfil (formato


de una barra previamente creada y
guardada), si deseamos crear una barra
completamente nueva, debe elegirse
(ninguno).
Paso 2: podemos agregar de una lista de
conos/acciones los que necesitemos para
nuestra barra de herramientas usando el

botn . Si queremos usar una imagen que no est en la lista, debemos oprimir el

botn en donde podremos cargar una imagen Ico o Bmp, puede agregar el botn
[Separator] para crear un espacio entre botones. Paso 3: Guardar perfil y Terminar.
A manera de ejercicio, cree la siguiente barra:

El asistente para barras de herramientas crea automticamente el control ImageList y lo


carga con las imgenes que hayamos elegido.

Si queremos personalizar la barra de herramientas podemos ingresar por


(personalizado) en la ventana de propiedades.
En la ficha General la propiedad mas
importante es ImageList, que permite elegir el
control ImageList que usaremos para las
imgenes.
En la ficha Botones se establece:
Index: ndice automtico de cada botn.
Caption: Texto fijo mostrado en el botn.
Key: Identificacin del botn.
ToolTipText: Mensaje textual de ayuda.
Style: Estilo del botn.
Image: Key o ndice de la imagen asociada.

Y si no se activa el asistente?.
Como se dijo anteriormente, el asistente es una opcin, pero no siempre est
disponible en este caso, para crear una barra de herramientas siga estas instrucciones.
1. Cargue el grupo de componentes Microsoft Windows Common Controsl 6.0.
2. Agregue al formulario un control ImageList.
3. En la ventana de propiedades ingrese por (personalizado)
4. Active la ficha imgenes, pulse el botn Insertar imagen.
5. Puede colocar una clave (identificacin) para cada imagen utilizando la propiedad
key, este nombre se puede utilizar para vincular una imagen a un botn dentro de la
barra de herramientas.
6. Una vez creada la lista de imgenes, agregue un control ToolBar al formulario.
7. En la ventana de propiedades ingrese por (personalizado)
8. En la ficha General, en ImageList seleccione el objeto ImageList creado
anteriormente.
9. Active la ficha Botones.
10.utilice Insertar Botn cada vez que quiera aadir un botn a la barra de
Herramientas.
11. Utilice la propiedad Key para colocar una identificacin al botn.
12.En ToolTipText coloque el mensaje contextual para el botn.
13.En Image coloque el Index o el Key de la imagen que quiera utilizar para el botn.
14.Siga el mismo procedimiento (desde el numeral 10) para agregar ms botones.

Programando la barra de herramientas.


Para programar cada botn de la barra de herramientas debemos tener en
cuenta que los botones son una matriz de objetos donde cada uno tiene un key
diferente, de tal manera que este ser el valor de referencia para identificar cada botn.
Al hacer doble click sobre la barra de herramientas se crea el procedimiento:
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComCtlLib.Button)

End sub

(Inicialmente existir cdigo si se ha creado la barra de herramientas utilizando el


asistente)
Puede utilizarse la instruccin Select en este caso.
Ejemplo:
Select Case Button.Key
Case "Nuevo"
Cdigo para nuevo
Case "Guardar"
Cdigo para guardar
Case "Abrir"
Cdigo para abrir
Case
End select
Donde Button.Key es la variable de la cual se analizar su valor.
Ejercicio N. 17.
Creando Barras de Herramientas.

Disee un programa como se muestra en la imagen.

El cdigo del ejercicio se encuentra a continuacin:


No se olvide de guardar, ejecute la aplicacin
Retroalimentacin N. 3
De lo que se ha trabajado hasta ahora, formule las preguntas que tenga en el
siguiente formato, consulte a la persona ms adecuada para su solucin.
1. ___________________________________________________________________
R. ____________________________________________________________________
2. ___________________________________________________________________
R. ____________________________________________________________________
3. ___________________________________________________________________
R. ____________________________________________________________________
4. ___________________________________________________________________
R. ____________________________________________________________________
5. ___________________________________________________________________
R. ____________________________________________________________________
6. ___________________________________________________________________
R. ____________________________________________________________________
7. ___________________________________________________________________
R. ____________________________________________________________________
8. ___________________________________________________________________
R. ____________________________________________________________________
9. ___________________________________________________________________
R. ____________________________________________________________________
10. ___________________________________________________________________
R. ____________________________________________________________________
Anexo. ________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
Almacenar y Recuperar informacin.
El procesamiento de informacin es necesario en una aplicacin prctica, el
hecho de que desde el programa se pueda guardar informacin y recuperarla
cuando se desea constituye una herramienta muy prctica.
Utilizaremos 3 formas para almacenar y recuperar informacin.
1. Guardar datos en registro del sistema.
2. Creando archivos en Disco.
3. Utilizando una Base de Datos.

Guardar Datos en el Registro del Sistema.


El registro del sistema guarda informacin sobre configuraciones de los
programas, desde Visual Basic es posible Leer y Escribir en el registro cuando se trata
de guardar datos como La hora de inicio de sesin de un programa, una contrasea, un
valor numrico, etc. No se recomienda utilizar el registro del sistema para guardar
grandes cantidades de informacin.
SaveSetting: Permite guardar una configuracin en el registro del sistema, si la
entrada no existe ser creada.
Sintaxis: SaveSetting Aplicacin, Seccin, Clave, Dato_a_guardar
Ejemplo:
SaveSetting App.Title, usuarios,horainicio, time
Creara una entrada en el registro del sistema, donde App.Title es el valor establecido
como nombre del proyecto, una seccin llamada usuarios, una clave llamada horainicio
cuyo contenido es la hora actual.
En la imagen, ByGer es el ttulo de
la aplicacin, usuarios la seccin,
horainicio la clave y 7:45:41 el valor
registrado.
GetSetting: devuelve el valor de una entrada en el registro del sistema.
Sintaxis: Var=GetSetting(Aplicacin, Seccin, Clave)
Ejemplo: hora=GetSetting(App.Path, usuarios,horainicio), (hora=7:45:41)
DeleteSetting: Elimina una entrada en el registro del sistema.
Sintaxis: DeleteSetting Aplicacin, Seccin, Clave
Ejemplo: DeleteSetting App.Path, usuarios,horainicio
Si la entrada no existe se producir el error 5.

Ejercicio N. 18
Cree un programa que permita cambiar el color del fondo del formulario y
escribir una frase en un cuadro de texto. Cada vez que se ejecute el
programa, el formulario debe tener el ltimo color que se aplic y el cuadro de texto
debe mostrar el ltimo texto escrito.
Nota: Utilice un CommonDialog para los colores, utilice los eventos Load y Unload del
formulario.

Creando Archivos en Disco.


Open: Permite abrir un archivo en la ruta especificada.
Sintaxis: Open ruta y nombre del archivo for Modo as #nmero de id del archivo.
Donde Modo puede ser:
OutPut: (Salida) guardar datos en el archivo. Si el archivo no existe, se crea, y si ya
existe, se reemplaza.
Input: (Entrada) leer datos desde un archivo. Si el archivo no existe genera el error 53.
Append: (Adicin) adicionar datos a un archivo. Si el archivo no existe, se crea.
Nmero de id de archivo es un nmero que identificar al archivo cuando se vaya a
realizar una operacin.

Ejemplos:
1. Crear un archivo y guardar una frase.
Open c:\frase.txt, for Output as #1
Print #1, Hoy es un buen da
Close #1
2. Crear un archivo y guardar una lista de palabras.
Open c:\palabras.txt for Output as #1
Print #1, Casa
Print #1, Carro
Print #1, Gato
Print #1, Ciudad
Print #1, Teclado
Print #1, Planeta
Close #1
3. Abrir el Archivo palabras.txt para agregarle mas palabras.
Open c:\palabras.txt for Append as #1
Print #1, Tunja
Print #1, Bogot
Print #1, Medelln
Close #1
4. Leer la primer palabra del archivo palabras.txt.
Open c:\palabras.txt for Input as #1
Dim palabra as string
Input #1, palabra
Close #1
Print palabra
Nota: la instruccin Input # lee hasta el primer salto de lnea (enter).
5. Leer todas las palabras del archivo Palabras.txt
Open c:\palabras.txt for Input as #1
Dim palabra as string
While not eof(1)
Input #1, palabra
Print palabra
wend
Close #1
Nota: EOF() significa End Of File (fin de archivo), es decir que: While Not Eof(1)
traduce: Mientras no se llegue al final del archivo 1.
6. Buscar una palabra en el archivo palabras.txt
Dim buscar as string
Dim encontrado as boolean
Buscar=inputbox(Buscar palabra:)
Open c:\palabras.txt for Input as #1
Dim palabra as string
While not eof(1)
Input #1, palabra
If palabra=busca then encontrado=true
wend
Close #1
If encontrado=true then
Msgbox encontrado
Else
Msgbox no est & buscar
End if

Crear y eliminar carpetas, copiar y eliminar archivos.


Antes de continuar le recomendamos manejar con mucho cuidado estos
comandos, porque un archivo o carpeta que se elimine no es recuperable.
MkDir: Crea un directorio. Ej. MkDir c:\Datos
RmDir: Elimina un directorio vaco. Ej. RmDir c:\Datos
FileCopy: Copia un archivo. Ej. FileCopy c:\palabras.txt, c:\datos\palabras.txt
Kill: Elimina un archivo. Ej. Kill c:\palabras.txt
Nota: Si no existe un archivo o un directorio, se genera el error 53.

ESPECIAL N. 1
BASES DE DATOS
El fuerte de los lenguajes de programacin hoy en da son las bases de datos, por tal
razn se incluye este captulo.

Visual Basic permite conexin con varios motores de bases de datos, siendo los ms
comunes: Access, SQL Server, FoxPro, Oracle, Excel.

Es necesario, cuando se habla de Bases de Datos hablar tambin de SQL (Structured


Query Languaje) o Lenguaje de Consulta Estructurado, que es la base para manipular
bases de datos con cdigo.

En este documento se utilizan bases de datos de Access.

Nota: Se recomienda guardar la base de datos en la misma carpeta donde se guarda el


proyecto, as mismo todos los componentes que se creen en el proyecto de bases de
datos.

Qu se necesita para manejar bases de datos?


Necesitamos un componente que nos permita conectarnos con la base de
datos y realizar operaciones sobre ella, en este caso el componente que agrupa todo lo
necesario se llama DataEnvirontment (entorno de datos), el cual hace parte de los
Objetos Diseadores.

Para agregar este componente ingrese al men Proyecto, Agregar DataEnvirontment,


si no est disponible, ingrese al men Proyecto, componentes, en la ficha
Diseadores seleccione Data Environtment, vuelva a Proyecto, agregar
DataEnvirontment. Aparecer una ventana como se muestra en la imagen.
En el explorador de proyectos se crea una seccin Diseadores donde aparece
contenido el componente DataEnvirontment.

Al utilizar el DataEnvirontment debe tenerse en cuenta que este contiene los


objetos Connection para los cuales hay que establecer Un proveedor de Bases de
datos y Un archivo de Base de Datos.

Antes de continuar, es necesario tener disponible una Base de Datos, para la


explicacin se ha utilizado una base de datos Llamada Ejemplo, la cual contiene dos
tablas llamadas Datos y Precios. Hay que crear la base de datos y las tablas con los
datos como se muestra en la imagen.

Debe establecerse un nombre (en la ventana de propiedades) para el elemento


DataEnvirontment, en esta caso lo llamaremos Entorno, as mismo al objeto
Connection lo hemos llamado Ejemplo (igual que la base de datos).

Para conectar con la base de datos Haga click derecho sobre la conexin
(Ejemplo), elija propiedades, en la ficha Proveedor elija Microsoft Jet 4.0 OLE DB
Provider, en la ficha Conexin pulse el botn y busque la base de datos
(ejemplo.mdb) en la ubicacin donde est guardada, pulse el botn Aceptar.

Si observa las propiedades de la conexin, se ha creado una cadena en


ConnectionSource, la cual junto con otros datos conformarn la ConnectionString
que contendr todos los datos de la conexin.

Ahora necesitamos cargar las tablas, las cuales se identifican como comandos.
Haga clic con el botn derecho sobre la conexin, elija Agregar comando (Aparecer
Command1), haga clic con el botn derecho sobre el comando que acaba de crear, elija
Propiedades. En la ventana que aparece establezca:
Nombre de Comando : Datos
Conexin : Ejemplo
Objeto de base de datos : Tabla
Nombre de Objeto : Datos
Pulse Aceptar.
Ahora, la ventana de Entorno puede
aparecer como en la imagen.

Realice un procedimiento similar al anterior para cargar la Tabla Precios.

Visualizar los datos.


Antes de continuar es bueno aclarar lo siguiente.
Cuando se enlaza la base de datos mediante el DataEnvirontment, esta queda con una
ruta fija, de tal manera que si se copia el proyecto para utilizarlo desde otra ruta o en
otro computador, o se crea un instalador para el proyecto, lo ms seguro es que la ruta
de la base de datos cambie, por lo cual se generar un error cuando el programa no
encuentre la base de datos.
Para corregir esto, es recomendable cargar la base de datos con cdigo, de tal manera
que la ruta sea variable.

En el procedimiento Load del Formulario que ya se tiene programe el siguiente cdigo:

Esta ltima instruccin abre la base de datos, cuando el programa termine, es


recomendable cerrar la base de datos, por lo que en el evento Unload se colocara
Entorno.Ejemplo.Close.

Ahora lo que necesitamos es traer los datos de las tablas (objetos Command) y
utilizarlos de alguna manera, como por ejemplo mostrarlos en cuadros de texto, en una
cuadrcula, o simplemente almacenarlos en variables, para lograr esto se utilizan
instrucciones SQL, por ejemplo:
Coloque un botn de comando sobre el formulario y programe el siguiente cdigo.

Entendamos esto.
Estructura WithEnd With
En primer lugar, se ha utilizado una estructura WithEnd With, esta
estructura se utiliza con objetos, con el propsito de no tener que escribir el nombre del
objeto cada vez que se quiera colocar una propiedad, Ejemplo.
Supongamos que queremos cambiar varias propiedades de un cuadro de texto, llamado
txteditandoTexto, normalmente se hara:
txteditandoTexto.text=: txteditandoTexto.backcolor=qbcolor(5). Y as sucesivamente.
Utilizando la estructura With quedara:
With txteditandoTexto
.text= : .backolor=qbcolor(5) : .FontBold=True
.ForeColor=vbYellow
End With

Referirse a un objeto Command.


Segn la estructura en el Entorno de Datos, aparece Entorno\Ejemplo\Datos
como ruta para llegar a la tabla (command) Datos, con cdigo se omite la base de
datos (Ejemplo) y se antepone al nombre de la tabla un rs (que proviene de
RecordSet o Conjunto de Registros), es decir quedara Entorno.rsDatos.

Comprobar si un objeto Recordset (command o tabla) o un objeto


Connection est abierto.
Tanto para los objetos Command (rsDatos) como para los objetos Connection (Ejemplo)
existe la propiedad State, que devuelve 0 si el objeto est cerrado y 1 si el objeto est
abierto. En el cdigo anterior la instruccin If .State = 1 Then .Close se interpreta: si la
tabla ya est abierta, cirrela. Se hace esta comprobacin, porque si la tabla ya est
abierta, y se intenta abrirla de nuevo se genera el error 3705.

Abrir una tabla.


Al igual que una conexin, las tablas hay que abrirlas para recuperar los
datos, para la cual se utiliza Open, cuya sintaxis es:
Entorno.Command.Open instruccin SQL, objetoConnection, Const1, Const2
Donde la instruccin SQL determina qu datos se van a mostrar (Ver Instrucciones
SQL), el objetoConnection se refiere a la base de datos vinculada, Const1 y Const2 son
constantes para determinar la forma como se abrirn las tablas.

La forma ms comn es emplear adOpenKeyset, adLockOptimistic.


Cmo recorrer los registros de una tabla (desplazamiento de registros)?
Se utiliza un ciclo While cuya condicin es Not .EOF (Mientras no sea fin de
archivo) pues al abrir una tabla, el cursor queda ubicado en el primer registro; cada vez
que se ejecute el ciclo debe incluir la instruccin .MoveNext que desplaza el cursor al
siguiente registro.

BOF (Begin Of File) ser true si se est en el primer registro.


EOF (End Of File) ser true si se est en el timo registro.
MoveNext Desplaza al siguiente registro.
MovePrevius Desplaza al registro anterior.
MoveLast Desplaza al ltimo registro.
MovePrevius Desplaza al primer registro.

Utilice RecordCount para saber cuantos registros tiene una tabla.

Cmo acceder a un campo?


Puede referirse a un campo de la tabla utilizando !nombreCampo.

Nota: Si utiliza with, refirase al campo directamente, de lo contrario debe hacerse


como en el ejemplo:
Entorno.rsDatos!Nombre : Entorno.rsDatos!Apellidos

Por ltimo, tenga en cuenta de cerrar una tabla despus de realizar alguna operacin
sobre ella.
ESPECIAL N. 2
SQL (STRUCTURED QUERY LANGUAJE)

El Lenguaje de Consulta Estructurado se ha aplicado desde hace mucho tiempo a las


bases de datos, por esta razn es necesario conocer algunas de las operaciones ms
importantes de este lenguaje, que junto con Visual Basic constituyen un sistema
altamente eficiente.

Qu se puede hacer con el lenguaje SQL?

Las aplicaciones de este lenguaje son muchas, pero hablaremos solamente lo que
concierne a su uso con Visual Basic. Con este lenguaje podemos realizar las siguientes
operaciones:
Agregar datos a una tabla (insert into)
Modificar datos de una tabla (update)
Eliminar datos de una tabla (delete)
Seleccionar datos de una tabla (select)

En Visual Basic una instruccin SQL debe ejecutarse A nivel de Tabla (desde el objeto
Command) o A nivel de Base de datos (Desde el objeto Connection).

1. A nivel de tabla se aplica al momento de abrir una tabla as:


Entorno.rsDatos.Open Instruccin SQL
Bsicamente se utiliza Select.

2. A nivel de base de datos se refiere a ejecutar la instruccin as:


Entorno.Ejemplo.Execute instruccin SQL
La instruccin debe iniciar con Insert Into, Delete, Update.
Instrucciones bsicas en SQL

SELECT
Permite seleccionar registros de una tabla.
Sintaxis: select campos from tabla
Puede especificar qu campos desea seleccionar de la tabla separndolos con coma
(,), puede utilizar * para seleccionar todos los campos.
En tabla debe ir el nombre de la tabla en la base de datos de Access.
Ejemplos:
Select * from datos
Select nombre from datos

Clusula Where.
Est palabra, que significa donde, permite aplicar un criterio para filtrar informacin.
Ejemplos:
Select * from datos where nombre=luis jos
Select * nombre from datos where edad>20
Observe los apstrofos(comillas simples ) en el valor de comparacin para el campo
nombre, siempre deben ir si el campo es de tipo texto.

Puede utilizar varios criterios aplicando los operadores lgicos And y Or.
Ejemplos:
Select * from alumnos where curso=601 and jornada=A
Select * from alumnos where nombre=viviana or nombre=bibiana
En los criterios puede utilizar los operadores de relacin (<, >, <=, >=, =, <>) adems, el
operador Like (como) que se aplica a cadenas de texto.
Ese operador devuelve True si una cadena coincide dentro de otra.
Para utilizar Like debe incluirse el valor a buscar entre signos porcentaje (%)
Ejemplo:
Select * from alumnos where nombre like %na%
Mostrara Jhoanna, liliana, nayibe, natanael,
Concatenar campos: Puede unir campos mediante una instruccin SQL, as como
realizar alguna operacin entre campos numricos, en cualquiera de los casos debe
crearse un campo temporal o Alias para almacenar los datos resultantes utilizando la
instruccin as (como).
Ejemplos:
Select Apellidos & & Nombre as Estudiante from Alumnos
Select N1+N2+N3+N4 as acumulado from Alumnos.

Ordenar los datos: Puede ordenar los datos obtenidos despus de una instruccin
select utilizando la clusula Order By Campos.
Para ordenar ascendentemente aplique Order by campos.
Para ordenar descendentemente aplique Order by campos Desc.
Puede agregar varios niveles de ordenacin separando los campos con coma (,).
Ejemplos:
Select * from alumnos order by Nombre,Apellidos
Select * from alumnos order by Definitiva Desc, Apellidos.

Usar Funciones con la instruccin Select: puede utilizar una funcin


inmediatamente despus de la instruccin select, en este caso habr que aplicar un
alias para el resultado de la funcin.
Funciones:
Sum(): Halla la suma de una columna numrica de una tabla.
Ejemplo: select sum(cantidad) as unidadesvendidas from productos.
Avg(): Halla el promedio de una columna numrica de una tabla.
Ejemplo: select avg(definitiva) as promedio from notas.
Max(): Halla el valor mximo de una columna de una tabla.
Ejemplo: select max(id)+1 as siguiente from Facturas.
Min(): Halla el valor mnimo de una columna de una tabla.
Ejemplo: select min(definitiva) as MasBajo from notas
Count: Cuenta los elementos de una columna.
Mostrar una cuadrcula de datos.
Podemos visualizar un conjunto de datos recogidos mediante una instruccin select en
una cuadrcula (tabla) utilizando un DataGrid (agregar el componente Microsoft
DataGrid Control 6.0).

Objeto DataGrid: Permite visualizar el contenido de una tabla (Objeto command o


Recordset).
DataSource: Especifica el origen de los datos que se mostrarn. Aqu ir el nombre
del objeto DataEnvirontmen. Para cargar con cdigo se utiliza la instruccin set as:
Set DataGrid1.DataSource=Entorno
DataMember: Especifica la lista de datos que se mostrarn en la cuadrcula. Aqu
ir el nombre de un objeto Command (Tabla). Con cdigo se aplicara:
DataGrid1.Datamember=Notas.
AllowAddNew: Indica si se pueden agregar registros a la tabla desde la cuadrcula
en ejecucin.
AllowDelete: Indica si se puede eliminar registros de la tabla mediante la cuadrcula
en tiempo de ejecucin.
AllowUpdate: Indica si se pueden modificar los datos de la tabla a travs de la
cuadrcula en tiempo de ejecucin.
Columns: Aplicable con cdigo. Es una matriz que contiene el nmero de columnas
de acuerdo al nmero de campos de la tabla. Puede utilizarse de diferentes
maneras: Ejemplos.
Msgbox DataGrid1.Columns.count Muestra el nmero de columnas del DataGrid
Msgbox DataGrid1.Columns(1).Text Muestra el contenido de la segunda columna.
DataGrid1.Columns(3).Visible=False Oculta la cuarta columna.
DataGrid1.Columns(5).Width=800 Establece el ancho para la sexta columna.
DataGrid1.Columns(3).Alignment=dbgRight Alinea la cuarta columna a la derecha.

Constantes de alineacin de Columnas:


dbgCenter (2) : Centrado dbgGeneral (3): Predeterminado
dbgLeft (0) : Izquierda dbgRight (1) : Derecha
DataGrid1.Columns(3).NumberFormat=Currency Aplica formato de moneda.
DataGrid1.Columns(0).Locked=True La primer columna no admite entrada de datos.

Ejercicio N. 19
Ejercicio de bases de datos.
1. Cree una base de datos en Access llamada base1, cree una tabla llamada
empleados con la siguiente estructura:
Nombre Texto 20
Apellidos Texto 20
Edad Numrico Byte
Salario Moneda
Estrato Numrico Byte.
Agregue 12 registros.
2. En visual, agregue el componente Entorno de datos, vincule la base de datos.
3. Renombre DataEnvirontment1 ED, y a Connection1 como Datos.
4. Agregue un objeto Command que vincule la tabla Empleados, llmelo igual que esta.
5. Disee el formulario como se muestra a continuacin:
El botn Abrir BD se llama cmdAbrir, su propiedad Enabled est en True inicialmente.
El frame de mayor tamao se Llama frame, su propiedad Visible est en False
inicialmente, este frame contiene todo el resto de objetos.
El botn Contar se llama cmdContar, El botn Ver se llama cmdCampos, La lista
(debajo del botn ver) se llama lstCampos, La lista dentro del frame Contenido se llama
lstContenido, El Combo de OrdernarPor se llama cmbCampo, Los botones de opcin
de ordenar Ascendente y Descendente son una matriz llamada optOrden, La cuadcula
(DataGrid) se llama dgLista, El combo en frente de columna se llama cmbColumnas, La
casilla Bloquear se llama chkBloquear, La casilla Ocultar se llama chkOcultar, Los
botones de opcin para alinear son parte de una matriz llamada optAlinear, los cuales
estn indexados de izquierda a derecha.

No se olvide de guardar.
6. El cdigo del ejercicio se encuentra a continuacin, identifique qu cdigo lleva qu
objeto en qu evento.
No se olvide de guardar, ejecute el programa.
Retroalimentacin N. 4
De lo que se ha trabajado hasta ahora, formule las preguntas que tenga en el
siguiente formato, consulte a la persona ms adecuada para su solucin.
1. ___________________________________________________________________
R. ____________________________________________________________________
2. ___________________________________________________________________
R. ____________________________________________________________________
3. ___________________________________________________________________
R. ____________________________________________________________________
4. ___________________________________________________________________
R. ____________________________________________________________________
5. ___________________________________________________________________
R. ____________________________________________________________________
6. ___________________________________________________________________
R. ____________________________________________________________________
7. ___________________________________________________________________
R. ____________________________________________________________________
8. ___________________________________________________________________
R. ____________________________________________________________________
9. ___________________________________________________________________
R. ____________________________________________________________________
10. ___________________________________________________________________
R. ____________________________________________________________________
Anexo. ________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
INSERT INTO
Permite insertar datos dentro de una tabla.
Sintaxis: insert into tabla values(valor1, valor2)
Debe tenerse especial cuidado en el tipo de datos, un dato que se pretenda almacenar
en un campo tipo texto debe enviarse entre comillas simples ( ).
Ejemplo:
Insert into Empleados values(Juan Camilo,Jaramillo Neira,25,800000,3)
Se recomienda crear una variable tipo string y armar la cadena de datos antes de
enviarlos, con eso podremos comprobar que la cadena est bien creada, cualquier
inconsistencia ya sea en el nmero de datos o un apstrofo menos o de ms generar
errores.
Supongamos que tenemos los datos en cuadros de texto
y queremos armar la cadena.
Deberamos utilizar un cdigo como este:

Y msgbox cadena mostrara:

DELETE
Elimina uno o varios registros de una tabla.
Sintaxis: delete * from tabla where condicin
Si no se aplica una condicin se eliminarn todos los registros.
Ejemplos:
Delete * from empleados where edad<20 : Delete * from empleados
UPDATE
Se utiliza para actualizar los datos de una tabla.
Sintaxis: update tabla set campo1=nuevovalor,campo2=nuevovalor where condicin
Si no se aplica una condicin, los cambios se harn a todos los registros.
Ejemplos:
Update empleados set salario=salario*0.1 Incrementa el salario en 10%
Update empleados set estrato=4 where nombre=Juan Camilo

Alternativas para Insert y Update.


Observe el siguiente cdigo.

AddNew: Adiciona un nuevo registro a un objeto RecordSet.


Update: Actualiza un objeto RecordSet.
Observe el siguiente cdigo.
Ejercicio N. 20
1. Cree una base de datos llamada facturacin, dentro de ella las siguientes
tablas.

2. Vincule la base de datos y las tablas a un proyecto nuevo en Visual Basic.


3. Abra la base de datos en el evento load del primer formulario. El cdigo programado
para el ejercicio fue el siguiente:

4. Disee el formulario como en la imagen, llmelo frmInicio.

El botn Clientes lleva a un formulario llamado frmClientes (frmClientes.Show :


Unload frmInicio).
5. Disee el formulario Clientes como se muestra en la imagen.
Los cuadros de texto (primeros cuatro) hacen parte de una matriz llamada txt.
Los cuatro botones de comando de llaman cmdNuevo, cmdGuardar, cmdBorrar y
cmdBuscar respectivamente.
El cuadro de texto buscar (al lado izquierdo del botn buscar) se llama txtBuscar.
La casilla de verificacin se llama chkModifica.
El control DataGrid se llama gridClientes, la propiedad dataSource est asociada a
DE (objeto DataEnvirontment), coloque AllowUpdate = False.
6. A continuacin el cdigo programado para este formulario, transcrbalo.
No se olvide de guardar. Ejecute y pruebe el programa.

En el ejercicio encuentra Sub idCliente() y Sub ListarClientes() estos son


procedimientos independientes de cualquier objeto, pues se han creado con el
propsito de ahorrar cdigo.

Crear procedimientos y Funciones.

Procedimientos:
As como cuando se programa un evento de un objeto se crea un procedimiento, as
mismo podemos construir los propios, esto se hace con el propsito de evitar
redundancias en el cdigo. Se aplica en el siguiente caso:
Si en un programa se necesita ejecutar el mismo cdigo varias veces desde eventos,
objetos o formularios diferentes, entonces se crea un procedimiento independiente que
pueda ser llamado desde cualquier parte del programa.

Este tipo de procedimientos pueden ser locales o Globales, los procedimientos locales
pueden crearse dentro de un formulario utilizando Sub o Private Sub y solo sern
reconocidos dentro de el, un procedimiento Global debe crearse dentro de un archivo
de Mdulo (*.bas) y puede ser llamado desde cualquier parte del proyecto.

Los procedimientos puede incluir parmetros, estos son obligatorios al llamado del
procedimiento.
Ejemplos de Procedimientos:
Sub Mensaje()
Msgbox Hoy es un buen da
End sub
Su llamado se hace con Mensaje o Call Mensaje.
Sub Mensaje(Contenido As string)
Msgbox Contenido
End sub
Su llamado se hara Mensaje Hoy es un buen da (es obligatorio el parmetro),
tambin es obligatorio conservar el tipo de dato.
Sub Suma(x as byte, y as byte)
Msgbox x+y
End sub
Su llamado podra ser Suma 5,7
Para crear procedimientos globales debe crear un Mdulo (Proyecto, Agregar mdulo) y
dentro de el crear procedimientos utilizando Public Sub.
Ejemplo
Public Estado as boolean
Public Sub ValidarUsuario(Usuario as string)
If usuario=Admin. Then
Estado=True
Else
Estado=False
End if
End sub

NOTA: Puede utilizar un mdulo para crear variables globales utilizando la forma Public
NomVar as Tipo

Funciones.
Una funcin se diferencia de un procedimiento porque la funcin devuelve un dato,
por lo tanto una funcin tiene un Tipo Dato. Una funcin se crea utilizando la palabra
Function o Private Function (Locales) o Public Function (Globales).
Las funciones, al igual que los procedimientos pueden tener o no tener argumentos, hay
que tener en cuenta que si se va a recibir lo que devuelve la funcin debe colocarse los
argumentos entre parntesis.

Ejemplo:
Function Suma(x as Byte, y as Byte) as Integer
Suma=x+y
End Function
La funcin suma debe recibir dos valores tipo Byte y devuelve un valor entero. Observe
que la funcin dentro de si se comporta como una variable a la cual debe asignarse el
valor que se desea devolver. Su llamado podra ser msgbox sumar(5,7).

Ejemplo:
Funcin que convierte la primera letra de una cadena a mayscula.
Function Primera_Mayus(Palabra as string) as string
Primera_Mayus = UCase(Left(Palabra, 1)) & Right(Palabra, Len(Palabra) - 1)
End Function
Su llamado podra ser:
Print Primera_Mayusc(funcin)
Devolvera Funcin

Cree una funcin para saber si un nmero es primo o no.

Continuacin Ejercicio No. 20


7. Agregue un formulario nuevo, llmelo frmFacturas, diselo como en la imagen.
El comboBox se llama cmbClientes, el cuadro de texto se llama txtFactura y es de solo
lectura (Locked=True), el control que muestra la fecha es un DTPicker que se carga en
el grupo de componentes Microsoft Windows Common Contros-2 6.0, el cual se
llama dtkFecha, el botn guardar se llama cmdGuardar, el botn nuevo se llama
cmdNuevo.

8. A continuacin se encuentra el cdigo de este formulario, transcrbalo.


No se olvide de guardar, ejecute la aplicacin.
9. Haga un anlisis lgico en forma clara de cmo debera funcionar el formulario de
Pedidos.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
10.Cree el formulario de pedidos teniendo en cuenta lo siguiente:
Antes de empezar a llenar datos de los productos, debe seleccionarse el nmero de
factura, al hacer esto debe mostrar el nombre del cliente, el telfono y el total de la
factura.
Si la factura seleccionada ya tiene productos registrados, debe mostrarlos en un
DataGrid.
Antes de guardar un producto ha de calcularse el total.
Despus de guardar un producto debe calcularse la suma de los totales de la factura
actual.
Debe ejecutarse una consulta de actualizacin para que actualice el total de esa
factura con el valor calculado en el punto anterior, debe visualizarse el total actual de
la factura.
El formulario del ejercicio qued as:

El cdigo para el desarrollo de este formulario queda a libre eleccin del


estudiante. Puede desarrollarse colectivamente.

No se olvide de guardar.
11. Modifique el primer formulario (frmInicio) agregando un botn para consultas, de tal
manera que el formulario quede como en la imagen.

12.agregue un formulario nuevo, diselo como se muestra en la imagen.


13.Al cargarse el formulario se debe llenar la lista de clientes.
14.Al elegir un cliente debe mostrar la lista de facturas de ese cliente.
15.Al recorrer la lista de facturas debe mostrarse la lista de productos de esa factura.
16.A continuacin el cdigo sugerido para este formulario.
No se olvide de guardar. Ejecute y utilice el programa en forma completa.
FIN DEL EJERCICIO N. 20
Retroalimentacin N. 5
De lo que se ha trabajado hasta ahora, formule las preguntas que tenga en el
siguiente formato, consulte a la persona ms adecuada para su solucin.
1. ___________________________________________________________________
R. ____________________________________________________________________
2. ___________________________________________________________________
R. ____________________________________________________________________
3. ___________________________________________________________________
R. ____________________________________________________________________
4. ___________________________________________________________________
R. ____________________________________________________________________
5. ___________________________________________________________________
R. ____________________________________________________________________
6. ___________________________________________________________________
R. ____________________________________________________________________
7. ___________________________________________________________________
R. ____________________________________________________________________
8. ___________________________________________________________________
R. ____________________________________________________________________
9. ___________________________________________________________________
R. ____________________________________________________________________
10. ___________________________________________________________________
R. ____________________________________________________________________
Anexo. ________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
ESPECIAL N 3.
INFORMES

Cuando se trabaja con Bases de Datos, una parte fundamental y que est
completamente ligada a esta son los informes o reportes.

Su importancia radica en que a travs de estos se puede obtener desde un simple


listado de datos hasta una estadstica general sobre algn tema manejado en la base
de datos (ejemplo, grfico de ventas mensuales, rendimiento de determinado producto,
e.t.c.)

Cmo Funciona un Reporte?


Hasta el momento hemos utilizado el Entorno de datos, Objeto Connection y Objeto
Command para vincular y manejar los datos de una base de datos.

El Objeto command, como ya hemos comprobado, almacena un conjunto de datos


resultado de una instruccin SQL, podemos mostrar esos datos a manera de informe
Creando en el informe la estructura de la tabla (Importando la estructura de la tabla, es
decir los campos) los cuales podemos personalizar completamente (posicin,
propiedades) y luego, con cdigo, se conecta el reporte con el objeto Command.

El procedimiento realmente es sencillo, pues muy poco distinto a como se vincula un


control DataGrid con el objeto Command. Lo mas complicado puede llegar a ser disear
el informe.
Crear el Informe

Necesitamos cargar al programa otro componente diseador el cual se llama


Data Report a travs del men Proyecto, Agregar Data Report, si no est disponible
ingrese al men Proyecto, elija Componentes, en la ficha Diseadores active Data
Report, vuelva a Proyecto, Agregar Data Report.

Nota: Debe agregar un control Data Report para cada informe que desee crear.

Aparecer:

Examinemos algunas propiedades. Tenga en cuenta que si da clic sobre la cuadrcula,


aparecern solo las propiedades de la seccin seleccionada, debe hacer clic fuera de
esta (sobre el rea gris) para que aparezcan las propiedades del diseador.
Name: Identificacin del reporte que se utilizar para mostrarlo posteriormente.
Caption: Ttulo que tendr la ventana del informe.
DataSource: Establece el objeto DataEnvirontmen al cual se conectar el informe.
DataMember: Devuelve o establece el objeto Command vinculado al informe (dejar
libre para establecer con cdigo).
Grid x, Grid y: Permite establecer el tamao de la cuadrcula.
Icon: cono de identificacin para el informe.
Puede configurar las mrgenes utilizando:
TopMargin: Margen superior.
BottomMargin: Margen inferior.
LeftMargin: Margen izquierdo.
RightMargin: Margen derecho.
Nota: Los valores se establecen en Twips (1 Cm = 570 twips)

Luego de esto, debemos traer la estructura de un objeto Command para vincularla en el


diseo del informe.
Restaure la ventana actual, deje visibles la ventana del entorno de datos y la del
diseador de reportes.
En la ventana de entorno de datos ubique la tabla que desee vincular y arrstrela a
la seccin Detalle del Diseador.
Ver como aparecen tanto los ttulos (rptlabel) como los campos (rptTextbox) de la
tabla, ahora es cuestin de mejorar la apariencia del informe, por ejemplo ubicando
los ttulos en la seccin encabezado de pgina, cambiando las propiedades de los
elementos.

Ver el informe.
Despus de diseado el informe se puede vincular a una tabla y luego abrirlo,
de tal manera que se caguen los datos de la tabla abierta.
Ejemplo:

NOTA: Observe que la tabla NO SE CIERRA.


Podra mostrar

La coleccin Sections hace referencia a las partes del informe, las cuales tienen un
ndice as:
1 Encabezado de informe.
2 Encabezado de pgina.
3 Detalle.
4 Pie de pgina.
5 Pie de informe.
Cada seccin crea una coleccin Controls dentro de la cual se indexarn en forma
ordenada empezando en 1 los elementos que hayamos creado, de tal manera que
podamos referirnos a ellos con cdigo.

De esta manera, por ejemplo, se coloca el caption de la etiqueta que muestra la palabra
Clientes.
Herramientas.
El diseador de informes presenta una caja de herramientas que podemos utilizar para
cambiar la apariencia del informe. En su orden son:
1. Puntero (seleccin), 2. rptLabel (etiqueta), 3. rptTextBox (cuadro de texto),
4. rptImage (imagen), 5. rptLine (lnea), 6. rptShape (Forma), 7. rptFunction
(funcin). Esta ltima la podemos emplear para realizar operaciones sobre
los campos del informa, como calcular el valor mximo, mnimo, promedio,
suma; para lo cual habr que especificar FunctionType, DataMember y
DataField.

Tambin podemos insertar etiquetas con algunas funciones predeterminadas, como la


fecha, la hora, Nmero de pgina, etc. Para hacer esto, haga clic con el botn derecho
sobre la cuadrcula, ubquese en insertar control.

Modificacin al Ejercicio N. 20
1. Cree 3 reportes, uno para clientes, otro para facturas y otro para pedidos.
2. Modifique el primer formulario (frmInicio) de tal manera que quede como
en la imagen.

3. Programe cada botn para que habra el reporte correspondiente.


4. En el ejercicio se ha programado el siguiente cdigo para abrir el reporte Clientes:
No se olvide de guardar, ejecute el programa.

Retroalimentacin N. 6
De lo que se ha trabajado hasta ahora, formule las preguntas que tenga en el
siguiente formato, consulte a la persona ms adecuada para su solucin.
1. ___________________________________________________________________
R. ____________________________________________________________________
2. ___________________________________________________________________
R. ____________________________________________________________________
3. ___________________________________________________________________
R. ____________________________________________________________________
4. ___________________________________________________________________
R. ____________________________________________________________________
5. ___________________________________________________________________
R. ____________________________________________________________________
6. ___________________________________________________________________
R. ____________________________________________________________________
7. ___________________________________________________________________
R. ____________________________________________________________________
8. ___________________________________________________________________
R. ____________________________________________________________________
9. ___________________________________________________________________
R. ____________________________________________________________________
10. ___________________________________________________________________
R. ____________________________________________________________________
Anexo. ________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

Ejercicio N. 21
Un banco
Elabore un proyecto con base de datos que simule el funcionamiento de un
banco, utilice la siguiente estructura lgica para orientarse en como debe funcionar.

BANCO

APERTURA DE ESTRACTOS
OPERACIONES
CUENTAS (REPORTES)

EN OFICINA EN CAJERO

PAGO DE
RETIROS
SERVICIOS

CONSULTA
CRDITOS
SALDO

Nota: las operaciones en oficina deben ser ejecutadas por los cajeros o los asesores.
Nota: las operaciones en cajero deben registrar direccin del cajero, fecha, hora.
Formulario de preguntas para el ejercicio.

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

CREAR PROGRAMA DE INSTALACIN


Al desarrollar una aplicacin, sea cual sea el lenguaje, para poder distribuirla debe
crearse un programa de instalacin, visual Basic incluye esta funcin identificada como
Asistente para empaquetado y distribucin que se encuentra en Inicio, Programas,
Microsoft Visual Studio 6.0, Herramientas de Microsoft Visual Studio 6.0.

Antes de abrir el asistente tenga muy en cuenta lo siguiente:


Cree una carpeta para el proyecto.
Cree dos carpetas, una llamada Fuente y otra llamada Instalador.
Organice en la carpeta fuente todo el proyecto, incluyendo los archivos que utiliza
(Bases de datos, Imgenes, archivos de texto, etc.)
En la carpeta instalador se almacenar los archivos de instalacin.
Puede establecer el cono y el ttulo para el programa desde VisualBasic, teniendo el
proyecto abierto; ingrese por proyecto, propiedades de proyecto, Generar.
Puede Crear el ejecutable (archivo EXE) desde VisualBasic o dejar que el asistente
para instalacin lo cree, para el primer caso elija Achivo, Generar
nombreproyecto.Exe, asegrese de que se guarde dentro de la carpeta Fuente.

Creando el Instalador.
Para el ejemplo se ha tomado el ejercicio N. 20.
Paso 1. Establezca la ruta del proyecto en la primera ventana del asistente.
Paso 2. Pulse el Botn Empaquetar, si
el asistente detecta que el proyecto an
no tiene el archivo ejecutable,
aparecer la siguiente ventana.

Pulse el botn Compilar para que el asistente genere el ejecutable.

Si ya existe el ejecutable, el asistente puede mostrar el siguiente mensaje:

Si se ha hecho cambios al proyecto, elija Si, para actualizar el ejecutable.


Paso 3. Elija Paquete de instalacin estndar, pulse Siguiente.
Paso 4. Elija la ruta donde se almacenar el paquete de instalacin, para el ejemplo se
ha usado c:\MyPrograma\Instalador, pulse Siguiente.
Paso 5. Agregue otros archivos que utiliza el proyecto (Imgenes, bases de datos)
para el ejemplo se ha agregado la base de datos. Pulse Siguiente.

Paso 6. Elija la forma como se crearn los archivos .CAB. Pulse Siguiente.

Paso 7. Elija un ttulo para la instalacin.


Paso 8. Establezca la ubicacin para el Acceso Directo en
el men inicio. Pulse Siguiente.
Paso 9. Indique la ruta donde el asistente almacenar los
archivos al extraer en el asistente de instalacin en Ubicacin de instalacin.
Automticamente los archivos se ubican en $(AppPath), (ruta del ejecutable) o en $
(WinSysPath) (ruta del sistema), si los archivos que utiliza el proyecto se encuentran en
una carpeta deber indicar esa ruta, por ejemplo, supongamos que el programa maneja
varias bases de datos que se encuentran dentro de una carpeta Datos, deber
establecer para cada una de las bases de datos la ruta $(AppPath)\Datos, la carpeta
Datos se crear en el asistente. Pulse Siguiente.
Paso 10. Si el programa utiliza archivos compartidos, marque la casilla
correspondiente. Pulse Siguiente.
Paso 11. Puede guardar la configuracin establecida en el asistente para que no tenga
que volver a ejecutar todo el asistente si hace modificaciones a su proyecto. Para el
ejemplo se guard la secuencia de comandos como MyPrograma Rev Junio 20/2005,
Pulse el Botn Finalizar, luego Cerrar y Cerrar nuevamente.
En la carpeta Instalador aparece ahora:

Podemos instalar nuestro programa iniciando el ejecutable setup.


Nuestro
programa
instalado
ahora
aparece:

Ejercicio N. 22
Crear los Instaladores.
Cree una carpeta llamada desarrollos de sunombre, cree una carpeta para
cada uno de los ejercicios (Eje1, Eje2), cree dentro de cada una las carpetas Fuente
e Instalar. Genera el instalador para cada uno de los ejercicios.

Nota: Si el proyecto tiene errores, al compilar el asistente dir en que parte se


encuentran, habr que corregir y volver a intentarlo.
TABLA DE CONTENIDO
Visual Basic......................................................................................................................................1
Informacin Importante!.............................................................................................................1
Qu es Visual Basic?...................................................................................................................1
Para qu sirve en realidad?.........................................................................................................1
Qu necesito?..............................................................................................................................2
Componentes de un programa en Visual Basic............................................................................2
Cmo programar en Visual Basic?.............................................................................................3
Cmo empezar?..........................................................................................................................4
Descripcin del Espacio de Trabajo.............................................................................................4
Las propiedades............................................................................................................................5
Los Procedimientos......................................................................................................................7
Conociendo los objetos.....................................................................................................................9
Ejercicio N. 1:..........................................................................................................................10
A programar................................................................................................................................10
Algunas recomendaciones en el editor de cdigo......................................................................12
Escribiendo instrucciones...........................................................................................................12
Ejercicio N. 2.............................................................................................................................13
Ejercicio N. 3.............................................................................................................................15
Ejercicio (Complemento al N. 3).............................................................................................19
Ejercicio N. 4............................................................................................................................19
Ejercicio N. 5............................................................................................................................20
Las Variables:.............................................................................................................................22
Asignaciones:.............................................................................................................................24
Vectores y matrices.....................................................................................................................25
Ejercicio N. 6............................................................................................................................26
Retroalimentacin N. 1.............................................................................................................29
Las condiciones..........................................................................................................................30
Operadores Lgicos....................................................................................................................32
Ejercicio N. 7.............................................................................................................................33
Los Casos....................................................................................................................................34
Otras Funciones..........................................................................................................................35
Mostrar mensajes y pedir datos..................................................................................................35
Como validar la respuesta de una MsgBox?..............................................................................36
Concatenacin............................................................................................................................38
Ejercicio N. 8.............................................................................................................................38
Ejercicio N. 9.............................................................................................................................42
Ejercicio N. 10...........................................................................................................................45
Los ciclos....................................................................................................................................48
Ciclo automtico.........................................................................................................................49
Ejercicio N. 11...........................................................................................................................50
Ciclo Controlado........................................................................................................................55
Ejercicio N. 12...........................................................................................................................56
Ejercicio N. 13...........................................................................................................................57
Ejercicio N. 14...........................................................................................................................60
Retroalimentacin N. 2.............................................................................................................62
Ejercicio N. 15...........................................................................................................................64
Controles Adicionales.................................................................................................................66
Como Utilizar ShowOpen y ShowSave.....................................................................................67
Como utilizar ShowColor y ShowFont......................................................................................68
Ejercicio N. 16...........................................................................................................................70
Creacin de un Men..................................................................................................................71
Ejercicio N. 17...........................................................................................................................73
Trabjando con Mltiples Formularios........................................................................................74
Formulario Padre y Formularios Hijos.......................................................................................75
Creando Barras de Herramientas................................................................................................76
Programando la barra de herramientas.......................................................................................79
Ejercicio N. 17...........................................................................................................................80
Retroalimentacin N. 3............................................................................................................82
Guardar datos en el Registro del Sistema...................................................................................83
SaveSetting.........................................................................................................................83
GetSetting...........................................................................................................................83
DeleteSetting......................................................................................................................84
Ejercicio N. 18...........................................................................................................................84
Creando Archivos en Disco........................................................................................................84
Crear y eliminar carpetas, copiar y eliminar archivos................................................................86
ESPECIAL N. 1 BASES DE DATOS...........................................................................................87
Qu se necesita para manejar bases de datos?..........................................................................87
Estructura WithEnd With........................................................................................................90
Referirse a un objeto Command.................................................................................................91
Abrir una tabla............................................................................................................................91
Cmo acceder a un campo?......................................................................................................92
ESPECIAL N. 2 SQL (STRUCTURED QUERY LANGUAJE)..................................................93
Qu se puede hacer con el lenguaje SQL?................................................................................93
Instrucciones bsicas en SQL.....................................................................................................94
Ordenar los datos................................................................................................................95
Usar Funciones con la instruccin Select...........................................................................95
Mostrar una cuadrcula de datos.........................................................................................96
Ejercicio N. 19...........................................................................................................................97
Retroalimentacin N. 4..........................................................................................................101
Ejercicio N. 20.........................................................................................................................104
Crear procedimientos y Funciones...........................................................................................108
Continuacin Ejercicio No. 20.................................................................................................110
Retroalimentacin N. 5...........................................................................................................116
ESPECIAL N 3 INFORMES......................................................................................................117
Crear el Informe........................................................................................................................118
Ver el informe...........................................................................................................................119
Modificacin al Ejercicio N. 20..............................................................................................121
Retroalimentacin N. 6..........................................................................................................122
Ejercicio N. 21........................................................................................................................123
CREAR PROGRAMA DE INSTALACIN...............................................................................124
Creando el Instalador................................................................................................................124
Ejercicio N. 22........................................................................................................................127
TABLA DE CONTENIDO.......................................................................................................128