Está en la página 1de 214

Visual Studio 6.0.

Visual Basic
Lenguajes de Programacin



















Visual Basic 6.0 Microsoft

PAG. 2

















































Microsoft Visual Basic 6.0

PAG. 3



INDICE GENERAL
MICROSOFT VISUAL BASIC 6.0. PROFESSIONAL

HERRAMIENTA DE MICROSOFT VISUAL STUDIO 6.0.


LECCIN 01: INTRODUCCIN A VISUAL BASIC 6.0 ...............................

La primera aplicacin
La interfaz de Visual Basic
Proyectos
Administrar proyectos
Establecer opciones de VB
Tiempos de desarrollo
El sistema de Ayuda

LECCIN 02: PROGRAMACIN EN VISUAL BASIC.................................

Estructura del cdigo
Objetos en Visual Basic
Establecer propiedades
Utilizar mtodos
Entender los eventos

LECCIN 03: TRABAJAR CON MENS........................................................

El editor de mens
Elementos de mens
Teclas de mtodo abreviado
Eventos de men
Mens contextuales
Opciones de men contextual

LECCIN 04: CUADROS DE DILOGO ........................................................

Introduccin
Cuadros predefinidos
Control Dilogo Comn
Cuadros personalizados

LECCIN 05: CONTROLES BSICOS ...........................................................
Introduccin
Entrada de datos
Etiqueta +Cuadro de texto
Control Marco
Botones de comando
Bloquear controles

LECCIN 06: CONTROLES BSICOS (II) .....................................................
Casillas de verificacin
Botones de opcin
Cuadros de lista
Cuadros combinados


Visual Basic 6.0 Microsoft

PAG. 4

LECCIN 07: FUNDAMENTOS DE PROGRAMACIN .......................

Introduccin
Variables
Tipos de datos
Constantes
Operadores de Visual Basic

LECCIN 08: FUNDAMENTOS PROGRAMACIN (II) ......................

Estructuras de decisin
Expresiones lgicas
Matriz de controles
Estructuras de repeticin

LECCIN 09: FUNDAMENTOS PROGRAMACIN (III) ...................

Tipos de procedimientos
Crear procedimientos Sub
Llamar a procedimientos Sub
Crear procedimientos Function
Llamar procedimientos Function
Paso de parmetros
mbito de actuacin

LECCIN 10: EFECTOS GRFICOS .......................................................

El control Line
El control Shape
Arrastrar con el ratn
Colocar con el ratn

LECCIN 11: EL ADMINISTRADOR VISUAL DE DATOS .................

Introduccin
Disear la base de datos
Conocer el Administrador
Crear la base de datos
Crear ndices

LECCIN 12: ACCESO A BASES DE DATOS ........................................

El control Data
Controles enlazados
Recordset
Modificar la Base de datos
Aadir registros

LECCIN 13: PROGRAMAR CON LA BASE DE DATOS ...................

Moverse por el recordset
Buscar registros
Aadir registros
Eliminar registros
Editar registros



Microsoft Visual Basic 6.0

PAG. 5


LECCIN 14: OPCIONES AVANZADAS DE BASE DE DATOS ................

Introduccin
Cuadrcula enlazada a datos
Consultas en SQL
Criterios complejos
Validar la entrada
Validar con el control Data

LECCIN 15: TRABAJAR CON ARCHIVOS .................................................

Controles especializados
Conectar los controles
Manejadores de error
Archivos de texto
La instruccin FileCopy

LECCIN 16: UTILIZACIN DE OLE .............................................................

Introduccin
El Contenedor OLE
Edicin del objeto
Objetos insertables
Automatizacin OLE

LECCIN 17: APLICACIONES MDI ...............................................................

Una aplicacin MDI
Formularios MDI
Formularios secundarios
Instancias de formulario
El men Ventana
El evento QueryUnload

LECCIN 18: DEPURAR LA APLICACIN ...................................................

Tipos de error
Buscar el error
Seguir paso a paso
La ventana Depuracin
Inspeccin instantnea
Corregir y seguir
Llamadas a procedimientos

LECCIN 19: FINALIZAR LA APLICACIN ................................................
Introduccin
Compilar la aplicacin
Crear ejecutables
El Asistente de instalacin
Qu crea el Asistente?

LECCIN 20: OBJETOS DE DATOS ACTIVOS (ADO) ...............................
Introduccin
El control ActiveX ADO
Crear archivo vnculo de datos
El contol DataGrid 6.0



Visual Basic 6.0 Microsoft

PAG. 6

















































Microsoft Visual Basic 6.0

PAG. 7

Introduccin a Visual Basic


eguro Que est impaciente por empezar a programar en Visual Basic. Aunque las
prisas nunca son un buen aliado de una programacin de calidad, en este captulo
vamos a mostrarle cul es el proceso para crear aplicaciones con Visual Basic.

Los pasos a seguir en la creacin de una aplicacin son los siguientes:

1. Anlisis de la creacin a crear, tanto en su aspecto funcional como estructural. Es decir,
deber estudiar qu debe ser capaz de realizar la aplicacin y qu elementos intervienen en
la misma.

2. Diseo de la interfaz de usuario de la aplicacin. Dicha interfaz se compone de los
distintos formularios que necesite, adems del diseo particular de cada uno de stos, con
todos los controles y mens.

3. Establecer el valor de aquellas propiedades de los formularios y controles que desee
modificar.

4. Escribir cdigos para aquellos eventos que debe controlar, adems de rutinas que realicen
procesos especficos.

A lo largo de este curso aparecer a realizar cada uno de estos pasos, excepto el primero y
tal vez ms importante, que es el anlisis de la aplicacin.


o debe olvidar que est trabajando en una aplicacin Windows 95 como es Visual
Basic y que, muchos de los elementos que desear incorporar en sus propias
aplicaciones tambin estn presentes en Visual Basic.

En este captulo viajaremos a travs de la interfaz de Visual Basic para conocer las
herramientas de su entorno de programacin. El capitulo tiene verdadera importancia ya que ste
es el entorno en que trabajar cuando disee sus aplicaciones.






S
N
1.1. LA PRIMERA APLICACIN
1.2. LA INTERFAZ DE VISUAL BASIC
Visual Basic 6.0 Microsoft

PAG. 8

En la parte superior de la pantalla se sita la ventana principal de Visual Basic. En esta
ventana aparece la barra de mens constituida por un conjunto de mens desplegables que
facilitan los comandos necesarios para el trabajo en el entorno y la barra de herramientas, situada
inmediatamente debajo, que da acceso rpido a algunas de esas operaciones.

As, por ejemplo, podr agregar un nuevo proyecto , un formulario , abrir un
determinado proyecto o guardar el proyecto activo . Es importante indicar que slo puede
tener un proyecto abierto al mismo tiempo.

Otra serie de botones que aparecen en esta barra de herramientas sirven para establecer
criterios en Tiempo de ejecucin As, podr indicar la ejecucin , interrumpirla o finalizarla
, adems de establecer otras opciones tiles en el momento de depurar la aplicacin que est
creando.


La Caja de Herramientas que est anclada en la parte izquierda es un
componente fundamental del entorno de desarrollo de Visual Basic.

En esta caja se sitan botones que representan los distintos Controles que
podr utilizar durante el diseo de su aplicacin. Estos controles sern situados en
los distintos formularios que vaya creando. La forma de trabajar es pulsar en el
botn del control que desea agregar al formulario y dibujarlo en ste o hacer clic
sobre el botn, con lo que crea un control de tamao y posicin predeterminada.

Es importante tener localizada y a mano esta caja de herramientas ya que
es uno de los componentes del entorno que ms utiliza en el diseo de la aplicacin.

En la zona central se sita la ventana del formulario en el que est
trabajando. Si ha creado ms formularios, estas ventanas se van situando en esa zona
del entorno de programacin.

En la ventana del formulario es donde se agregan los distintos controles,
grficos e imgenes que constituyen la interfaz de su aplicacin.




En la parte de la derecha se sita la ventana
Proyecto. Esta ventana enumera los formularios y
mdulos del proyecto abierto. Si dicho proyecto est
compuesto por numerosos archivos, esta ventana le
servir para situarse en el formulario o archivo que le
interese.





Microsoft Visual Basic 6.0

PAG. 9



As, mediante el botn Ver objetos podr
situarse en un determinado formulario y mediante el
botn Ver cdigo mostrar el cdigo asociado con
el elemento que est seleccionado en la ventana.

Otro de los componentes fundamentales es la
interfaz es la ventana de Propiedades, donde se
enumeran las propiedades junto a los valore actuales
del formulario o control que tenga seleccionado. El
conjunto de estas propiedades es dependiente del tipo
de objetos al que se refiera.

Al hacer doble clic en un determinado formulario o control, aparece la ventana de cdigo
que tiene asociada. En esta ventana se escribe la parte del cdigo que se corresponde con el
objeto, como ir viendo a lo largo del curso.


En la parte superior de la
ventana de cdigo aparece dos listados
de seleccin: en la de la izquierda se
elige el Objeto al que se quiere hacer
referencia y en la de la derecha el
procedimiento o parte del cdigo que se
quiere programar.


Otros componentes de la interfaz de Visual Basic, es el uso de men contextual, a los que
se accede con el botn secundario del ratn (normalmente ser el botn derecho)

Este tipo de men es sensible al objeto sobre el que se ha pulsado y permite un acceso
rpido a las opciones ms tpicas que se utilicen sobre el mismo.


isual Basic proporciona muchas herramientas para la creacin de aplicaciones
Windows. Este tipo de aplicaciones suele ser sobre todo grficas y se ejecutan en
ventanas independientes.

Cuando usted este desarrollando una aplicacin con Visual Basic, estar trabajando en un
Proyecto en la jerga de Microsoft.

Los proyectos se identifica como un archivo con la extensin .VBP que realiza el
seguimiento de todos los componentes de la aplicacin

V
1.3. PROYECTOS
Visual Basic 6.0 Microsoft

PAG. 10

Es decir, un proyecto est compuesto de varios archivos que son los que usted va creando
a medida que desarrolla su aplicacin. As, un proyecto podr contener uno o ms archivos de
formularios, donde se guarda todo lo referente a los formularios o ventanas que vayan creando.
Estos archivos tienen la extensin .FRM y se guardan de forma independiente, uno por cada
formulario.

Tambin se genera de forma automtica un archivo .FRX para cada formulario que
contenga datos binarios en alguna propiedad (como puede ser una imagen o icono) de los
controles.

Tambin se guardan los programas o cdigos relacionados con el formulario en s y con
los controles que contiene.

Es posible que desee agregar funcionalidad a su aplicacin que no est relacionada con
ningn objeto en particular, como puedan ser procesos sobre archivos o utilidades que desee
utilizar en ms de un lugar. En estos casos, ese cdigo puede ser escrito en otro tipo de archivos:
archivos de mdulos.

La extensin de un mdulo estndar de Visual Basic es .BAS (Basic) y no est limitado a
un nico mdulo sino que puede crear los que estime convenientes. As podra utilizar varios
mdulos para tratar distintos aspectos de su aplicacin.

Otro tipo de archivos que puede encontrar en un proyecto son los llamados mdulos de
clase, cuya extensin es .CLS. Estos mdulos son utilizados para crear sus propios objetos, tema
ste que no ser tratado en este curso.

En los archivos de recursos (slo puede existir un archivo de este tipo por proyecto) se
guardan mapas de bits, cadenas de texto u otros datos que se utilizan en la interfaz de su
aplicacin. As en lugar de guardarlos en los ficheros de formularios, tal vez le interese hacerlo en
un archivo de recursos. Un uso tpico de estos archivos son las aplicaciones que deben funcionar
en ms de un idioma.

Adems de todos los archivos que se han comentado, existen los archivos con controles
personalizados, que tambin pueden estar presentes en un proyecto. Este tipo de controles sern
tratados a lo largo del curso.

Y finalmente un nico archivo de proyecto, con la extensin .VBP, donde se guarda la
informacin necesaria de cada uno de los archivos que forma el proyecto de programacin y que
han sido mencionados.

En definitiva, deber entender un proyecto en Visual Basic como la aplicacin que est
desarrollado. Toda la informacin que est relacionada con esta aplicacin se guardar en un
archivo especial: el de proyecto.

Usted puede trabajar a nivel de proyecto a nivel de los archivos que lo componen. As
existen comandos que afectan a todo el proyecto, como pueden ser las opciones del men
Archivo: Nuevo proyecto, Abrir proyecto, Guardar proyecto o Guardar proyecto como.

Microsoft Visual Basic 6.0

PAG. 11


ada una de estas opciones trabajan con el conjunto de proyecto. Por ejemplo, al
guardar un proyecto, actualizar el archivo de proyecto y cada uno de los archivos que
lo componen.

Sin embargo, otras opciones como Guardar archivo o Guardar archivo como slo
afectan al archivo de formulario o mdulo que tenga seleccionado.

Visual Basic permite que un mismo archivo est presente en ms de un proyecto. Podra
crear un formulario de bienvenida de introduccin de datos o tener utilidades en un mdulo
independiente y usarlo en ms de una aplicacin, sin necesidad de crearlos cada vez.



Si desea de tener una copia individual de ese archivo, podr utilizar el comando Guardar
archivo como una vez lo haya agregado.

Por otra parte, tambin tiene la posibilidad de eliminar un determinado archivo del
proyecto. En este caso la referencia a ese archivo en el proyecto es suprimida. Utilice el comando
Eliminar archivo y no lo elimine desde el exterior de Visual Basic ya que en este ltimo caso se
producira un error en el momento de abrir proyecto, al no poder encontrarlo.

Con Agregar proyecto puede trabajar con varios proyectos dentro de una misma sesin
del entorno de programacin.

As, puede usar un proyecto como borrador donde poder probar su cdigo, y a medida que
lo va depurando, incluirlo en el proyecto ejecutable de la aplicacin.

De forma predeterminada Visual Basic ejecuta el primer proyecto ejecutable .EXE
agregado a un grupo de proyectos.

Visual Basic muestra el nombre del proyecto de inicio en negrita dentro de la ventana
Proyecto.

El resultado final de su proyecto debe ser un archivo ejecutable, que podr tener o no
extensiones en forma de libreras de enlace dinmico (DLL). Visual Basic incorpora una opcin
en el men Archivo que crea un archivo ejecutable a partir de los archivos que componen el
proyecto: Generar archivos EXE. En la ltima leccin del curso tendr ms informacin
respecto a este asunto.







C
1.4. ADMINISTRAR POYECTOS
Visual Basic 6.0 Microsoft

PAG. 12


n Visual Basic podr definir opciones del entorno de desarrollo del proyecto que est
creando, opciones de formato de cdigo y de manejo de errores. Todas estas opciones
se establecen travs del comando Opciones del men Herramientas, y de Propiedades en el
men Proyecto.



Al elegir este comando del men Herramientas, aparece en cuadro de dilogo compuesto
por cinco fichas.

La ficha Editor especifica la configuracin de la ventana Proyecto y la de Cdigo. En la
seccin Opciones de cdigo hay que destacar las opciones de Comprobacin automtica de
sintaxis, con la que Visual Basic comprueba de forma automtica la sintaxis de cada lnea de
cdigo que se escribe.

Con Requerir declaracin de variable, le indicamos a Visual Basic que es necesario
definir las variables que utilicemos en la aplicacin.

Con Informacin rpida automtica activa, Visual Basic nos proporciona informacin
de los parmetros de la funcin que estamos utilizando.

La ficha Formato del editor sirve para establecer la apariencia del cdigo que escriba en
Visual Basic. Aspectos como la fuente utilizada o el color de los distintos elementos del cdigo,
para poder diferenciarlos, son establecidos en esta ficha.

E
1.5. ESTABLECER OPCIONES DE VISAL BASIC
Microsoft Visual Basic 6.0

PAG. 13

La ficha General establece aquellas opciones que se aplicarn sobre el entorno de
desarrollo. Entre las opciones ms interesantes de esta ficha, se pueden destacar la de Forzar
controles a cuadrcula. Los formularios aparecen rellenos por una especie de cuadrcula que
sirve para posicionar los controles de una forma alineada.



Si desactiva esta casilla, tendr una mayor libertad en la colocacin de los controles, pero
le ser ms difcil alinearlos.

La casilla Compilar a peticin determina si el proyecto debe ser compilida
completamente antes de iniciarse (la casilla estar desactivada) o la compilacin se realizara a
medida que sea necesario (casilla activada) En este ltimo caso la aplicacin se iniciar ms
pronto.

Si ha activado la anterior casilla, tal vez le interese usar la compilacin en segundo plano,
con lo que Visual Basic utiliza el tiempo en el que el procesador est inactivo ( por ejemplo
esperando una respuesta del usuario) para compilar el cdigo de su proyecto. Esto puede producir
una mejora en la velocidad de la aplicacin.

En el apartado de interceptacin de errores establece cundo debe ponerse en modo de
interrupcin Visual Basic si reconoce un error de ejecucin.

En la carpeta Acople podr establecer aquellas ventanas que estn fijadas al entorno de
desarrollo. As, si quiere tener flotante la ventana Posicin del Formulario, desactive su casilla.

Dentro de la ficha Entorno, en la seccin Cuando se inicie Visual Basic podemos elegir
entre dos opciones. Con Preguntar por un proyecto Visual Basic preguntar que proyecto quiere
abrir cada vez que inicie Visual Basic. Con Crear un proyecto predeterminado Visual Basic
creer un proyecto predeterminado .EXE cada vez que se inicie Visual Basic.
Visual Basic 6.0 Microsoft

PAG. 14


Una de las opciones ms importantes es la de Preguntar si se guardan los cambios ya
que permite guardar los cambios que haya efectuado en su proyecto, antes de ejecutarlo. Es
importante porque es posible que, al ejecutar un proyecto, ste se bloquea y no responda, con lo
que perdera los cambios efectuados desde la ltima vez que los guard.

Finalmente, la ficha Avanzada establece algunas opciones que son importantes y que slo
debe establecer si realmente entiende su significado.

La opcin Cargar el proyecto en segundo plano se utiliza para proyectos en los que
existen un gran nmero de archivos. Con esta opcin Visual Basic devuelve el control al
programador de una forma ms rpida, sin esperar que se carguen todos los archivos.

En la ficha propiedades del men Proyecto podr modificar la configuracin que afecta
al proyecto actual. As, podr indicar cul debe ser el Objeto inicial de la aplicacin (formulario
inicial), el nombre del proyecto, el archivo de ayuda que tenga asociada si has creado alguno,
etc.











Microsoft Visual Basic 6.0

PAG. 15


tro aspecto que se va a tratar antes de iniciar los conceptos propios de programacin
se refiere a los diferentes tiempos en los que trabaja un programador de Visual Basic.

Cuando usted desarrolla el proyecto utilizado formularios, agregando controles,
estableciendo propiedades o escribiendo cdigos, estar en tiempo de diseo.

En tiempo de diseo el entorno de programacin de Visual Basic est a su disposicin, las
distintas ventanas y mens pueden ser utilizados para disear su aplicacin

Cuando usted pulse el botn Iniciar o elige la opcin equivalente del men Ejecutar, se
traslada al tiempo de ejecucin, en el que interacta con la aplicacin del mismo modo que lo
har el usuario final. Este modo le permite comprobar el resultado de su esfuerzo de desarrollo.

Debe distinguir, en este tipo de ejecucin, las ventanas que corresponden a la aplicacin
que est creando y la ventana propia de Visual Basic, que sigue situada en la parte superior de la
pantalla. En ocasiones esta ventana no estar visible ya que puede que alguno de los formularios
de su aplicacin estn maximizados, ocupando toda la pantalla.

Cuando est en tiempo de ejecucin y pulsa el botn Interrumpir entra en el llamado
tiempo de interrumpir. En este tiempo realizar operaciones de cara a la depuracin de la
aplicacin.


l lenguaje de programacin de Visual Basic se compone de un gran nmero de
instrucciones y funciones que utilizar a medida que vaya programando aplicaciones,
adems del nmero de propiedades, eventos y mtodos aplicables sobre formularios y controles.

Por ello, Visual Basic incorpora un potente sistema de ayuda al que podr acudir en caso
de necesitar informacin sobre cualquier situacin que le surja en su trabajo.

Este sistema de ayuda forma parte del MSDN (Microsoft Developer Network). MSDN es
la referencia esencial para programadores que utilizan las herramientas de desarrollo de
Microsoft. Incluye ms de 1 GB de informacin de programacin tcnica, cdigo de ejemplos,
etc.

Esta versin de MSDN Library de genera mediante el sistema de Ayuda HTML de
Microsoft. Los archivos de Ayuda HTML se muestran en una ventana semejante a un
explorador, en una ventana de Ayuda de tres paneles.

El panel de exploracin se basa en cuatro fichas: Contenido, ndice, Buscar y Favoritos.
Las cuatro fichas permite encontrar la misma informacin, aunque la bsqueda se realiza de
distinta forma en cada una de ellas.
O
E
1.6. TIEMPOS DE DESARROLLO
1.7. EL SISTEMA DE AYUDA
Visual Basic 6.0 Microsoft

PAG. 16

En la ficha Contenido los temas de bsqueda se muestran en forma de libros. La forma de
abrir un libro y acceder a la informacin que contiene es haciendo doble clic sobre el mismo o
pulsando el botn Mostrar al tenerlo seleccionado.

Cuando abra un determinado tema representado grficamente por un libro, puede
encontrar de nuevo ms libros u hoja de informacin inmediata. En el primer caso, podr volver a
abrir el libro que representa un subtema, mientras que en el segundo, al abrir la hoja, la
informacin requerida se le mostrar directamente en pantalla.

La ficha ndice permite un acceso ms rpido a la informacin buscada, eso s, con la
condicin de que sea usted quien aporte una informacin ms concreta sobre el tema de bsqueda.

En este caso los temas de ayuda se sitan en una lista ordenada alfabticamente y que
aparece en la parte inferior de la ventana. Usted podr elegir un tema de la lista o escribirlo en la
parte superior. Si existe ms de un tema de ayuda relacionado con el texto que ha introducido o
elegido en la lista, aparecer una nueva ventana en la que deber elegir el tema concreto.

En muchas hojas de informacin podr encontrar los llamados Hipervnculos. La forma
de identificar un acceso de ese tipo es mediante el color azul y subrayado de su texto. Si hace clic
sobre un determinado acceso aparecer informacin sobre el mismo de forma que la bsqueda de
un tema original desencadena la obtencin de informacin sobre otros temas distintos, navegando
en el sistema de ayuda.

La ficha Buscar es similar a la ficha ndice ya que tiene que teclear el tema sobre el que
desea informacin. Sin embargo, permite una bsqueda ms amplia al poder introducir varias
palabras o incluso frases completas. El resultado de la bsqueda se ampla a todos los temas que
puedan estar relacionados con alguna de las palabras introducidas.

Una bsqueda bsica de temas se compone de la palabra o frase que desea encontrar.
Puede utilizar expresiones comodn, expresiones anidadas, operadores booleanos, coincidencias
de palabras similares, la lista de resultados anterior o ttulos de temas para afinar la bsqueda.

Sin embargo, el uso ms frecuente que har del sistema de ayuda ser a travs de la tecla
F1. Si desea informacin sobre alguna propiedad, mtodo, instruccin del lenguaje, etc., la forma
ms rpida y cmoda de conseguirla es situar el cursor en dicha palabra y pulsar la tecla F1.












Microsoft Visual Basic 6.0

PAG. 17

Programacin en Visual Basic


l cdigo que escribe en un proyecto de Visual Basic aparecer siempre en un mdulo.
Un mdulo es un archivo del proyecto pudiendo ser un mdulo de formulario, de
clase o mdulo de carcter general.

En cada mdulo, el cdigo se divide en dos secciones: declaraciones y procedimientos.

Los procedimientos son unidades de cdigo, como pequeos programas, escritos para
realizar funciones determinadas, con un propsito bien definido.

En cualquier mdulo, el programador dispone de una seccin especial llamada General en
la que sitan las declaraciones y en la puede incluir otros procedimientos creados por usted.

En el apartado de declaraciones podr introducir las constantes, variables y tipo de datos
que necesite en su aplicacin. (Todos estos conceptos sern tratados a lo largo del curso).



E
2.1. ESTRUCTURA DEL CDIGO
Visual Basic 6.0 Microsoft

PAG. 18

Los procedimientos pueden tener parmetros, especificados entre parntesis, que le
permite comunicar al procedimiento alguna informacin que necesite o que sea el propio
procedimiento quien devuelva algn valor, como ya veremos

En un mdulo de formulario el cdigo que se sita se refiere tanto a dicho formulario
como al resto de objetos que estn dibujados en l. En este tipo de mdulos cabe destacar los
procedimientos de evento que se encarga de dar respuesta programada a los eventos que ocurren
en la aplicacin.

Si ha escrito cdigo para algn procedimiento de evento, ste aparece en negrita en la lista
Procedimiento: de la ventana de cdigo.

Por otra parte, el cdigo de carcter general o que desea compartir en ms de un proyecto,
se sita en un mdulo general de Visual Basic. El cdigo que aparece en este tipo de mdulo no
se relaciona con un objeto determinado sino que tiene carcter general. En los mdulos generales
no podr incluir procedimientos de eventos como en el caso de los mdulos de formulario

Por otra parte, es conveniente aadir comentarios a las lneas de cdigo que escriba. De
esta forma podr entender sus programas aunque haga tiempo que los escribi. Para aadir un
comentario en una lnea utilice el carcter (apostrofe) Al introducir este carcter en una lnea,
Visual Basic entiende todo lo que le sigue en dicha lnea es un comentario y no lo tiene en cuenta.


partir de ahora deber acostumbrarse a or hablar de objetos si no es as. Aunque
Visual Basic no presenta todas las caractersticas de un lenguaje orientado a un
objeto, usted trabajar con objetos al crear la interfaz de su aplicacin.

En este sentido debe entender un objeto como todo elemento o entidad que puede
identificar en su ampliacin. Desde un formulario hasta una lnea grfica que dibuje, pasando por
la propia aplicacin que tambin es considerada como un objeto. Un objeto en Visual Basic se
caracteriza por tres componentes: propiedades, mtodos y eventos.

Las propiedades son aquellas caractersticas o tributos que permiten establecer el aspecto
de un objeto como el color, el tamao, la posicin en pantalla, etc., o el estado del mismo: activo,
deshabilitado, maximizado, etc. Existen propiedades que slo estn disponibles en tiempo de
diseco, otras slo estn disponibles o son slo lectura en tiempo de ejecucin.

Los mtodos son pequeos programas que actan sobre un determinado objeto y que
establecen su comportamiento. As un objeto puede moverse, ocultarse, etc. Usted podr utilizar
cualquier mtodo que forme parte del objeto.

Finalmente, un evento es una situacin que nos interesa identificar para establecer algn
tipo de respuesta por parte del objeto. As, podra hacer clic sobre un determinado objeto, creando,
de esta forma, un evento reconocible por el objeto. Que suceda algo o no como respuesta a este
evento depender de que haya programado alguna accin en el correspondiente procedimiento del
evento.
A
2.2. OBJETOS EN VISUAL BASIC
Microsoft Visual Basic 6.0

PAG. 19


uando dibuje objetos en sus formularios desear establecer alguna de las propiedades
que presenten. Dicha propiedades son aquellas caractersticas, propias del objeto, que
hacen que se distinga un objeto de otro. En este captulo se le presentan algunas propiedades,
utilizando el caso de un formulario.

En una aplicacin Windows podemos distinguir diversos tipos de ventanas, aunque lo
normal es identificar una ventana inicial que se puede maximizar o minimizar y uno o ms
cuadro de dilogo cuyo tamao suele ser fijo. Sin embargo, debe darse cuenta que, por ejemplo,
las barras de herramientas tambin son ventanas de una aplicacin.

Normalmente, la ventana inicial o de arranque ser la que presenta el men principal,
formado por mens desplegables en uno o ms de un nivel. El resto de ventanas no deberan
contener mens desplegable, aunque puede darse el caso de que as sea.

A continuacin estudiaremos algunas propiedades de los formularios. Las propiedades que
puede establecer en tiempo de diseco se sitan en la barra de Propiedades.

BordesStule: establece el estilo del borde del formulario. Puede indicar que sea un
formulario dimensionable o al estilo de los cuadros de dilogo, que no cambie de
tamao.
Caption: establecer el texto que aparece en la barra de ttulo del formulario.
ControlBox: permite mostrar o no el men de control de las ventanas de Windows.
Desde este mens podr cerrar, mover, etc., la ventana
Enabled: establece si el formulario puede o no responder a los eventos que genere el
usuario.
Font: establece las caractersticas de los objetos de texto que se siten en el
formulario.
Icon: permite cambiar el icono que representa el formulario y que est situado en la
parte izquierda de la barra de ttulo.
Left, Top, Height y Width: establece la posicin en pantalla dl formulario, as como
sus dimensiones. Left es la coordenada x, Top la coordenada y, Height la altura y
Width la anchura.
MaxButton y MinButton: Permiten indicar si se deben mostrar o no los botones
maximizar y minimizar, respectivamente. Tenga en cuenta que existen estilos de
bordes de formulario (establecidos con la propiedad BorderStyle) que impide que se
muestren los botones, independientemente del valor de las propiedades MaxButton y
MinButton.
MousePointer: permite modificar la forma del puntero del ratn.
Nombre: nombre identificativo del formulario. Deber utilizar este nombre en el
cdigo para referirse al formulario. La convencin de nombre puede verse final de
este captulo.
Visible: establece si el formulario se mostrar visible o no en tiempo de ejecucin. El
mostrarse no visible, no implica que se descargue de memoria.
C
2.3. ESTABLECER PROPIEDADES
Visual Basic 6.0 Microsoft

PAG. 20

WindwState: establece el modo en el que se cargar inicialmente el formulario.
Puede ser normal, es decir, como haya sido creado en tiempo de diseco, maximizado
o minimizado.

Todas estas propiedades y muchas ms estn disponibles, en tiempo de diseco, a travs de
la ventana Propiedades.

La forma de establecer el valor de una propiedad depende de su naturaleza. Existen
propiedades de valor numrico en las que simplemente se introduce el valor deseado; propiedades
de carcter textual, en las que tendr que introducir el texto; propiedades en las que tendr que
especificar un determinado archivo; propiedades compuestas en las que el valor est compuesto
por ms de una caracterstica y propiedades booleanas, en las que slo puede existir dos valores:
True (verdadero) o False (falso).

Adems, en tiempo de ejecucin, tambin puede cambiar o consultar el valor de algunas
propiedades que slo tiene sentido en ese tiempo de desarrollo.

Al escribir cdigo, las formas de establecer una propiedad o de poder consultarla es a
travs de la sintaxis: NombreObjeto.NombrePropiedad.Recuerde introducir el punto (.) entre
los dos nombres.

CONVENCIN PARA NOMBRAR OBJETOS DE VISUAL BASIC

A continuacin se mostrar una convencin, indicada por Microsoft, para nombrar los
distintos objetos que cree en su aplicacin, es decir, los formularios y controles.

Esta convencin se basa en la insercin de un prefijo identificado de la naturaleza del
objeto, junto al nombre descriptivo del mismo. El prefijo ser de tres letras en todos los casos.
Indicamos el nombre del objeto tanto en ingls como en espaol.


Objetos (Ingles) Objetos (Espaol) Prefijo

Form Formulario frm

Check box Casilla de verificacin chk

Combo box Cuadro combinado cbo

Dat-bound combo box Cuadro combinado
enlazado a datos dbc

Command button Botn de comando cmd

Data Control de datos dat

Directory list box Cuadro lista de directorios dir

Microsoft Visual Basic 6.0

PAG. 21

Drive list box Cuadro lista de unidades div

File list box Cuadro lista de archivos fil

Frame Marco frm

Grid Cuadrcula grd

Data-bound grid Cuadricula enlazada a datos dbg

Horizontal scroll bar Barra de desplazamiento hsb
Horizontal

Image Imagen img

Label Etiqueta lbl

Line Lnea lin

List box Cuadro de lista lst

Data-bound list box Cuadro de lista
enlazada datos dbl

Menu Men mnu

OLE container Contenedor OLE ole

Option button Botn de opcin opt

Piture box Cuadro de imagen pic

Shape Forma shp

Text box Cuadro de texto txt

Timer Temporizador tmr

Vertical scroll bar Barra de desplazamiento vsb
Vertical








Visual Basic 6.0 Microsoft

PAG. 22


n este captulo se le introduce el concepto d mtodo, mostrndolo a partir tambin del
objeto formulario.

Una vez ha establecido la parte estructural del formulario, es decir, sus propiedades,
puede pasar a programar el comportamiento que debe seguir, de forma que cumpla con el
objetivo para el que fue creado, utilizado mtodos.

Un mtodo es un componente ms del objeto, como lo puede ser una propiedad, que
puede ser utilizado directamente. Para ello deber llamar al mtodo e indicarle sobre qu objeto
desea aplicarlo, que deber admitirlo.

La sintaxis en este caso es: NombreObjeto. NombreMtodo [par1, , parn], donde la
lista de parmetros [par1, ,parn] es opcional y depende de cada mtodo.

Como puede observar, es la misma sintaxis empleada para acceder a una propiedad. Visual
Basic determina lo que quiere hacer a travs del nombre que introduzca detrs del punto.
Observe, adems, que no existen parntesis para la lista de parmetros.

Vemoslo con un ejemplo: el mtodo ms utilizado sobre un formulario es Show. Este
mtodo permite hacer visible un formulario en pantalla. Si el formulario no est cargado en
memoria lo carga automticamente y lo muestra.

Si desea mostrar el formulario frmPrincipal la sintaxis correcta seria:

FrmPrincipal.Show i

donde el parmetro de la i indica la forma en que se muestra el formulario: con valor 0, el
formulario es no modal, es decir, el enfoque puede pasar a otro objeto sin necesidad de realizar
alguna accin sobre el formulario.

En caso de tener valor 1, ser necesario realizar alguna accin sobre el formulario
(seguramente tendr que cerrarlo) para que el enfoque pueda pasar a otra ventana de la aplicacin.

El nmero de mtodos disponibles es realmente elevado y sensible al objeto sobre el que
puede ser aplicado. A lo largo del curso ir conociendo los ms interesantes, pero le
recomendamos que utilice el sistema de Ayuda de Visual Basic para conocer ms posibilidades.









E
2.4. UTILIZAR MTODOS
Microsoft Visual Basic 6.0

PAG. 23


l tercer componente de un objeto es el conjunto de eventos que reconoce. Este
conjunto de eventos est predefinido en el lenguaje de Visual Basic y usted no podr
crear nuevos eventos para objetos. De todas formas el conjunto es lo suficientemente amplio.

El conjunto de eventos reconocible por un objeto est fuertemente ligado con los
procedimientos de evento. Estos procedimientos son unidades de cdigo que le permite
especificar la respuesta que debe dar un objeto ante la ocurrencia de un evento que puede
reconocer.

La definicin de un procedimiento de evento tiene la forma:

PrivateSubNombreObjeto_NombreEvento([Listade parmetros])
<Introduccin>

EndSub

La palabra Private indica que el procedimiento slo est visible en el mdulo actual, en
contraposicin a lo que indica Public. Fjese cono la lista de parmetros puede ser opcional, pero
no as los parntesis.

GUARDAR UN PROYECTO EN DISCO

Al guardar un proyecto nuevo tendr que dar nombre tanto al archivo de los formularios
que lo compongan, como el de proyecto. Recuerde que los distintos formularios y mdulos que
cree se guardan en ficheros independientes.

Es conveniente crear una carpeta para guardar los distintos ficheros que vaya creando en
su proyecto de Visual Basic, para tenerlos siempre localizados.

Utilice la opcin Guardar proyecto del men Archivo o el botn equivalente de la barra de
herramientas .Al guardar el proyecto tambin se guardarn los formularios del mismo.













E
2.5. EXTENDER LOS EVENTOS
Visual Basic 6.0 Microsoft

PAG. 24

















































Microsoft Visual Basic 6.0

PAG. 25

Trabajar con Mens


na de las formas ms elegantes de poner un gran nmero de comandos en la ventana
del usuario es a travs del uso de mens.

Usted habr identificado en la mayora de aplicaciones de Windows un men principal en
la ventana inicial de la aplicacin y otros mens, como puedan ser los contextuales, en una o ms
ventanas.

Al usar mens est evitando ocupar mucho espacio en las ventanas ya que estos slo
aparecen cuando se despliegan explcitamente. Adems, puede crear hasta cinco niveles de
mens, por lo que el nmero, por lo que el nmero de comandos y posibilidades es
suficientemente amplio.

En Visual Basic se trabaja con el Editor de mens para crear, establecer propiedades y
modificar los mens. Par acceder a este editor deber pulsar el botn en la barra de herramientas
o elegir el comando equivalente del mens Herramientas.

Este botn slo estar activo cuando tenga abierto un formulario, ya que en men siempre
estar asociado con un determinado formulario.

El editor de mens presenta las principales propiedades que se pueden aplicar sobre los
mens.

U
3.1. EL EDITOR MENS
Visual Basic 6.0 Microsoft

PAG. 26

Caption: representa el texto que aparecer en el mens. En este sentido debe
distinguir entre lo que es un ttulo de men, o el men de nivel superior, y lo que es
un elemento de men o submens.

Fjese en la figura anterior. Existe en men principal en el que se sitan los ttulos de
men. Uno de estos ttulos de men es Formato.

Al desplegar el men Formato aparecen elementos de men, incluidos los separadores.
Uno de estos elementos de men es Fila.

Adems, el elemento Fila acta como un submen ya que al posicionarse en esta opcin se
vuelve a desplegar otro men, con ms elementos de men, entre los que se encuentra Mostrar.
Fjese como un elemento de men puede actuar al mismo tiempo como submen ( o ttulo de otro
men)

Name: es el nombre del control. La estrategia a seguir en este caso puede ser la de
anteponer el prefijo mnu ms el texto del ttulo, si es un ttulo de men. En el caso de ser
un elemento del men, debera incluir tambin el texto de su ttulo de men.
Cheeckd: establece si debe aparecer una marca de verificacin a la izquierda del texto del
objeto men. Esta marca suele utilizarse cuando desea informar al usuario de la opcin
que est activa en un momento determinado.
Enabled: indica si el objeto podr recibir eventos del usuario. Si tiene el valor False, el
elemento aparecer atenuado en el men.
Visible: indica si el objeto debe mostrarse o no. Si establece el valor False para esta
propiedad, los elementos situados a la derecha ocupan el lugar del elemento no visible.
WindowsList: Devuelve o establece un valor que determina si un objeto men mantiene
una lista de las ventanas MDI secundarias del formulario actual. Los formularios MDI son
tratados en una leccin posterior.

Las propiedades Enabled y Visible pueden tomar valor en tiempo de diseo o modificarlos
en tiempo de ejecucin. Por ejemplo, si desea que no aparezcan ttulos de un men principal ( y
sus elementos) debido a las circunstancias del momento, puede utilizar la propiedad Visible para
ello.

Un ejemplo de est ltima circunstancia puede encontrarlo en Word o Excel donde el
men principal cambia cuando no existen ningn documento abierto.


tilizando los botones de sangra determinar el nivel del objeto men que tenga
seleccionado. As, los ttulos de men se sitan en el nivel superior, mostrndose en
la lista inferior del editor de mens, lo ms a la izquierda posible.

Al pulsar el botn ms sangra el nuevo objeto men se sita en un nivel
inferior. Lo contrario ocurre al pulsar .

U
3.2. ELEMENTOS DE MEN
Microsoft Visual Basic 6.0

PAG. 27




Por otra parte, es una tcnica extendida en Windows la presencia de puntos suspensivos
() en el texto del elemento para indicar que dicho elemento origina la aparicin de un cuadro de
dilogo donde podr especificar opciones o introducir datos necesarios. Puede observar esta
situacin en cualquier aplicacin Windows.

En muchas aplicaciones Windows habr podido observar la existencia de una barra
horizontal en los mens desplegables que realiza la funcin de dividir en secciones dichos mens.
Este elemento es conocido en Visual Basic como un separador y su uso ms comn es el de
separar aquellos comandos del men que tengan un motivo comn.

Para crear un separador en un men lo nico que debe hacer es introducir un guin (-) en
la propiedad Caption. Debe saber que no podr crear un elemento en un nivel inferior (mayor
sangra) inmediatamente despus de un separador. Es decir, un elemento de men no podr tener
como ttulo de men a un separador, ya que no tiene sentido que al pasar por un separador se
despliegue otro men.

Adems con los botones puede mover de posicin elementos de men
que ya haya creado. Finalmente si desea insertar un nuevo elemento, utilice el botn Insertar. El
nuevo elemento se situar encima del elemento que tenga seleccionado.







Visual Basic 6.0 Microsoft

PAG. 28


l introducir el carcter & (ampersand) en el texto de un objeto men, est creando una
tecla de acceso a dicho objeto. Esta tecla se representa subrayada en el texto del
men y representa la tecla del tecleado que el usuario puede pulsar para ejecutar la accin.

Dicha tecla se corresponde con la letra que sigue al & en la propiedad Caption del objeto
men.

Si se trata de un ttulo men deber usar la tecla de acceso en combinacin con la tecla
[Alt]. Una vez abierto un ttulo de men y desplegado sus elementos, para acceder rpidamente a
un de ellos, puede usar la tecla de acceso directamente.

Debe tener cuidado en no utilizar la misma tecla de acceso para elementos de un mismo
nivel de men ya que en ese caso no funcionar.

El editor de men tambin permite la incorporacin de teclas de mtodo abreviado. Las
abreviaturas de men son combinaciones de teclas que el usuario puede utilizar en lugar de elegir
el elemento del men correspondiente.

Por ejemplo, es tpico que la tecla de funcin F1 muestre el sistema de ayuda de la
aplicacin o que los comandos Cortar, Copiar y Pegar tengan su propia combinacin de teclas.
Estas combinaciones permiten rpido acceso a dicho comando, sobre todo si estos se encuentra en
un nivel profundo de men.

Para crear una tecla de mtodo abreviado deber utilizar la propiedad Shortcut, a la que
puede acceder al crear el men desde el Editor de mens.



En este editor aparece una lista de
seleccin con las combinaciones de teclas
que puede elegir para crear la tecla de
mtodo abreviado. Normalmente este
shortcut o atajo ser una combinacin de las
teclas [Alt] o [Ctrl] con alguna tecla ms o
directamente las teclas de funcin.










A
3.3. TECLAS DE MTODO ABREVIADO
Microsoft Visual Basic 6.0

PAG. 29


uando en tiempo de diseo selecciona una opcin de men de un formulario que est
creando, Visual Basic le muestra el procedimiento de evento Click dedicho elemento
del men.

En el caso de un ttulo de men (nivel superior) el procedimiento Click tiene como accin
predeterminada la de mostrar los elementos de men del nivel inferior, por lo que no ser
necesario tener que programar esta accin. Esto tambin es aplicable a los elementos de un men
que son, a su vez, ttulos de submens.

Si desea realizar otras acciones en los eventos de aquellos objetos que actan como ttulos
de men, deber utilizar la ventana de cdigo y elegirlos de la lista.

En la mayora de ocasiones deber utilizar una opcin del men para descargar el
formulario y si es la ventana principal de la aplicacin, como suele ser el caso, finalizar la
aplicacin. Una opcin de texto Salir suele ser lo ms apropiado.

La instruccin Unload descarga de memoria el formulario que especificamos. Puede
especificar el formulario que desea descargar o utilizar la constante Me (la instruccin quedara de
la Forma Unload Me). La constante Me es propia del lenguaje Visual Basic y representa el
formulario al que est asociado el men.

Es una regla elegante de escritura de cdigo el uso de tabulaciones o niveles de sangrado
indicando estructuracin del cdigo. Acostmbrese a ello en sus aplicaciones, le facilitar la
lectura de sus programas.

NOTA: Un este curso no ser necesario que realice estos niveles de sangrado si no se le indica
expresamente mediante la tecla [Tab] para mayor sangra o [Mays+Tab] para menos sangra, ya
que la simulacin ya los crear por s misma.



i es un usuario experimentado de aplicaciones Windows seguro que habr utilizado en
alguna ocasin lo que se llama un men contextual.

Estos mens aparecen cuando hacemos clic con el botn secundario (normalmente el
derecho) del ratn sobre un determinado objeto y suelen presentar opciones que se corresponden
con las acciones ms usuales que se realizan con dicho objeto.

A diferencia del men que ha creado en los captulos anteriores, un men contextual puede
aparecer en cualquier ventana de su aplicacin.

C
S
3.4. EVENTOS DE MEN
3.5. MENS CONTEXTUALES
Visual Basic 6.0 Microsoft

PAG. 30

Sin embargo, no debe pensar que un men contextual se asocia con un determinado objeto
situado en un formulario. Un men contextual es exactamente igual que un men desplegable, por
lo que estar asociado a un determinado formulario.

Para mostrar un men contextual deber usar el mtodo PopupMenu del formulario
donde lo haya creado. La sintaxis completa es:


[objeto].PopupMenu NombreMen [, indicadores [, x [, y [, boldcommand]]]]


donde los corchetes [ ]especifican parmetros opcionales. Si no especifica el objeto sobre
el que se aplica el mtodo, Visual Basic entender que es sobre el formulario actual.

Normalmente la aparicin de un men contextual sucede en el evento MouseUp del objeto
al que se quiere asociar el men. Este evento representa el momento en el que el usuario suelta el
botn del ratn estando encima de dicho objeto.

A diferencia de MouseUp, el evento MouseDown representa el momento en el que el
botn del ratn es pulsado. El evento click es la combinacin de estos dos eventos, por lo que
siempre que se produce un evento Click se han producido tambin los eventos MouseDown y
MouseUp.

Tanto MouseDown como MouseUp permiten comprobar qu botn ha sido pulsado. Esto
se consigue gracias al parmetro Button de su procedimiento evento.

Consultando el valor de dicho parmetro, usted podr saber cul ha sido el botn del ratn
pulsado. El siguiente cdigo, situado en un procedimiento del evento MouseUp, ilustra esta
situacin:


If Button=2 Then
PopupMenumnuArchivo
End If


Aunque todava no se han explicado estructuras de programacin como If-Then-Else debe
entender que esta estructura permite realizar acciones dependientes de un determinado valor. En
este caso se muestra el men contextual mnuArchivo al pulsar con el botn derecho situacin
representada al tener parmetro Button el valor2.

Fjese como si necesita diferenciar con qu botn del ratn ha pulsado el Usuario para
realizar alguna accin deber utilizarlos eventos MouseDown o MotiscUp ya que el evento Click
no lo permite al no tener el parmetro Button.




Microsoft Visual Basic 6.0

PAG. 31


l hecho de tener siempre asociado un men contextual (y cualquier otro men) con un
determinado formulario, no impide que el men contextual aparezca cuando se pulsa
sobre uno de los controles situados e en el formulario. Adems, puede indicar la ubicacin exacta
del men contextual

Recordemos la sintaxis completa del mtodo PopupMenu:


[objeto].PopupMenu NombreMen [, indicadores [, x [, y [, boldcommand]]]]


El parmetro indicadores se encarga de definir la ubicacin respecto de las coordenadas x
e y tambin introducidas y el comportamiento del men contextual.

Los valores que puede tomar este parmetro respecto a la posicin del men son:

vbPopupMenuLeftAlign (valor0): valor predeterminado que indica que el lado izquierdo
del men viene dado por el valor x.
vbPopupMenuCenterAlign (valor 4): en este caso el men contextual se centra respecto
a x.
vbPopupMenuRightAlign (valor8): el lado derecho del men se sita en x.

Los valores que puede tomar respecto al comportamiento a seguir:

vbPopupMenuLeftButton (valor 0): los elementos del men contextual slo reaccionan
a los clic del ratn cuando se use el botn primario del ratn. Este es el valor
predeterminado.

VbPopupMenuRighButton (valor 2): los elementos del men contextual reaccionan a
los clic del ratn cuando se usen los botones primarios o secundarios.

En definitiva la instruccin:
FrmPrincipal.PopupMenu mnuArchivo, vbPopuMenu Center Align (o su
equivalente frmPrincipal.PompupMenuArchivo, 4), indica que se muestre el men mnuArchivo,
centrado respecto a la coordenada x del punto donde se pulse (si no se establece el valor de los
parmetros x e y dichos valores sern donde pulse el usuario con el ratn). Los elementos del
men debern ser seleccionados con el ratn (valor predeterminado).

Si desea utilizar ms de una constante en el parmetro indicadores, deber sumar el valor
de cada una de ests. Por ejemplo el valor 6 sera fruto de utilizar las constantes
vbPopupMenuCenterAling (4) y vbPopupMenuRigtbutton (2).




E
3.6. OPCIONES DE MEN CONTEXTUAL
Visual Basic 6.0 Microsoft

PAG. 32

El parmetro boldcommand o negrita establece qu comando del men emergente
aparecer en negrita. Esta caracterstica es propia de Windows y se suele aplicar para aquellos
comandos que tienen el mismo efecto que hacer doble clic sobre el objeto pulsado para mostrar el
men.

No es necesario introducir todos los parmetros opcionales que se muestran en la sintaxis
completa de mtodos, pero tendr que mantener la misma posicin que en la declaracin del
mtodo para poder indicar un parmetro situado ms a la derecha.


En el siguiente caso se indica que sea el elemento mnu
ArchivoSalir el que aparece en negrita:

PopupMenu mnuArchivo,,,,mnuArchivoSalir

Para ser coherente con la interfaz de Windows deber programar la misma accin de salir
al hacer doble clic en el objeto donde haya introducido est instruccin.






























Microsoft Visual Basic 6.0

PAG. 33

Cuadro de Dilogo


n la mayora de aplicaciones Windows el usuario hace uso de los cuadros de dilogo
para establecer opciones o introducir informacin que la aplicacin necesita para
realizar la accin indicada por el usuario. De ah el nombre de esta ventana, ya que establece un
dilogo entre el usuario y la aplicacin para conseguir el objeto perseguido.

Otro uso posible de los cuadros de dilogo es presentar informacin al usuario. El usuario
puede demandar detalles sobre algn aspecto de la aplicacin (por ejemplo el cuadro de dilogo
Acerca de que aparece en la mayora de aplicaciones) o haber pedido la realizacin de un
determinado proceso que implica mostrar el resultado en pantalla.

Los cuadros de dilogo se caracterizan, a diferencia de las ventanas principales de la
aplicacin, por ser modales y no permitir cambiar el tamao de la ventana, adems, no deberan
tener una barra de mens desplegable.

En definitiva, un cuadro de dilogo es un formulario ms de su proyecto de programacin
de Visual Basic en el que ha establecido ciertos valores en algunas de sus propiedades, para que
tenga el aspecto y se comporte como tal.

En Visual Basic podr crear tres tipos de cuadros de dilogo: personalizados,
predefinidos y a travs del control Dilogo Comn. Cada uno de estos tipos son estudiados en
esta leccin.


isual Basic incorpora dos funciones en su lenguaje que le permite agregar cuadros de
dilogo a sus aplicaciones de una forma rpida y sencilla, ya que no tiene que
preocuparse de su diseo, de la carga o cmo es mostrado el cuadro de dilogo.

En contra partida, usted tendr poco control sobre la apariencia del cuadro de dilogo que ,
por otra parte, ser siempre modal.

Recuerde que un formulario es modal cuando se tiene que cerrar (ocultar o descargar)
dicho formulario para que el foco de la aplicacin pase a otro formulario. Sin embargo, en un
formulario no modal, el foco puede pasar a otro formulario sin necesidad de realizar ninguna
accin en l.

En una leccin anterior usted ya utiliz un cuadro de dilogo predefinido al hacer uso de la
funcin MsgBox. Ahora completaremos la informacin que necesita conocer sobre dicha funcin.


La sintaxis completa d la funcin MsgBox es:
E
V
4.1. INTRODUCCN
4.2. CUADROS PREDEFINIDOS
Visual Basic 6.0 Microsoft

PAG. 34



MsgBox(mensaje[,botones] [,ttulo] [,archivoAyuda, contexto])


En esta tabla se muestran los valores que puede tomar el parmetro botones:

Constante Valor Descripcin

VbOKCancel 0 Muestra solamente el botn aceptar.

VbOKCancel 1 Botones Aceptar y Cancelar.

VbAbortRetryIgnore 2 Botones Anular, Reintentar e Ignorar

VbYesNoCancel 3 Botones Si, No y Cancelar.

VbYesNo 4 Botones S y No

VbRetryCancel 5 Botones Reintentar y Cancelar

VbCitrical 16 Muestra el icono de mensaje crtico.

VbQuestion 32 Icono de interrogacin.

VbExclamation 48 Icono de exclamacin.

VbInformation 64 Icono de mensaje de informacin.

VbApplicationModal 0 Cuadro de dilogo modal de
aplicacin.

VbSystemModal 4096 Cuadro de dilogo modal de sistemas.


El parmetro botones es de valor numrico y, adems de los botones que aparecen en el
cuadro de dilogo, tambin podr indicar el icono que acompae al mensaje (que debe aparecer
entre comillas) y el tipo de cuadro de dilogo modal que es.

Si se fija, existen dos tipos de cuadro modales: modal de aplicacin y modal de sistema.

Cuando un cuadro de dilogo es modal de aplicacin, deber cerrarlo para poder
interactuar con otra ventana de la misma aplicacin. Sin embargo, podr cambiar de aplicacin
utilizando algunos de los mtodos de Windows. Este tipo de cuadros de dilogo son los ms
usuales.


Microsoft Visual Basic 6.0

PAG. 35

Cuando un cuadro de dilogo es modal de sistema, todas las aplicaciones que estn
ejecutndose se suspenden hasta que el usuario responda al cuadro de dilogo y, en definitiva, lo
cierre. Este tipo de cuadros de dilogo slo tiene sentido en situaciones donde el mensaje que
muestran es crtico para el sistema.

Otro parmetro til de la funcin MsgBox es el ttulo de dicho cuadro de dilogo. Si no se
establece, Visual Basic utilizar el nombre del proyecto como ttulo de la ventana.

El otro cuadro de dilogo predefinido que presenta Visual Basic, se consigue a travs de la
funcin InputBox. Esta funcin se utiliza cuando necesita que el usuario introduzca alguna
informacin. Como toda funcin devuelve el valor, que en este caso de un ser la cadena
introducida por el usuario. En el caso de un MsgBox la nica informacin que podr obtener ser
qu botn ha pulsado el usuario para cerrarlo.

La sintaxis correcta es:


InputBox(mensaje[, ttulo] [, estndar] [, posx] [, posy] [, archivoAyuda,
contexto])


donde, aparte del mensaje que aparece en el cuadro de dilogo, puede indicar el ttulo de
ste y la cadena que devolver la funcin si no se escribe ninguna. Tambin puede indicar la
posicin en la pantalla del cuadro de dilogo.

La forma lgica de llamar a esta funcin ser en un expresin de asignacin, es decir,
recogiendo el valor que introduzca el usuario.

NOTA: Si no conoce el concepto de funcin, podr encontrarlo, as como la forma de
llamarlas en cdigo, en la leccin Fundamentos de programacin (III)



n objeto Dilogo Comn nos permite mostrar cinco cuadros de dilogo estndar en
nuestra aplicacin. Estos cuadros de dilogo se corresponden con los de Abrir,
Guardar como, Imprimir, Fuente y Color que de seguro ha utilizado en alguna aplicacin
Windows.

Adems, tambin podemos hacer uso del control dilogo comn para invocar el motor de
Ayuda de Windows, de forma que pueda presentar el archivo de ayuda en lnea de su aplicacin.

Estos cuadros de dilogo tienen el mismo aspecto en la mayora de aplicaciones de
Windows y funcionan de la misma forma. Para ello Visual Basic 6.0 incorpora el nuevo control de
dilogo comn para que usted no tenga que disearlos.

U
4.3. CONTROL DILOGO COMN
Visual Basic 6.0 Microsoft

PAG. 36

Al crearse un objeto dilogo comn, se sita en una posicin y con un tamao estndar. No
es necesario cambiarlo de posicin ya que este control no se mostrar en tiempo de ejecucin.

Un nico objeto dilogo comn nos puede servir para utilizar ms de un cuadro de dilogo
estndar. Para ello, haremos uso de sus propiedades y utilizaremos el mtodo apropiado en cada
situacin, pero siempre sobre el mismo objeto.

En el caso, por ejemplo, de querer utilizar el cuadro de dilogo Guardar como:

Propiedades del objeto Dilogo Comn:

DialogTitle: texto que debe aparecer en la barra de ttulo del cuadro de dilogo.
DefaultExt: extensin con la que se guardar el nuevo archivo.
Filter: indica qu tipos de archivos deben mostrarse en el cuadro de dilogo.

En el caso de la propiedad Filter, puede indicar que se muestre ms de un tipo de archivos
en el cuadro de dilogo. Para ello utilice la sintaxis descripcin1 filtro1 descriccin2
filtro2Por ejemplo, si desea que se todos los archivos de texto o todos los archivos de base de
datos mdb, la forma de indicarlo sera: Archivo de texto*.txtBase de datos*.mdb. De esta
forma aparecern dos opciones en la lista de tipo de archivo del cuadro de dilogo.

Mtodo del objeto Dilogo Comn:

ShowSve: muestra el cuadro de dilogo Guardar Como.

Cuando el usuario, utiliza el cuadro Guardar Como, introduzca un nombre e indique en
qu carpeta desea guardar el archivo, tendr dos opciones: pulsar en Guardar, con lo que Visual
Basic facilitar al programa el nombre y ubicacin del nuevo archivo que deber crear o, pulsar en
Cancelar, con lo que se devuelve una cadena de texto vaca.




Microsoft Visual Basic 6.0

PAG. 37

Para utilizar otros cuadros de dilogo, deber establecer las propiedades oportunas u
utilizar el mtodo adecuado. A continuacin se refieren los mtodos disponibles.

ShowOpen: cuadro de dilogo Abrir.
ShowSave: cuadro de dilogo Guardar Como.
ShowColor: cuadro de dilogo Color
ShowFont: cuadro de dilogo Fuente.
ShowPrinter: cuadro de dilogo Imprimir.
ShowHelp: invoca la Ayuda de Windows.

Como puede ver, un objeto dilogo comn tambin puede utilizar para llamar al motor de
ayuda de Windows y mostrar as la ayuda en lnea de su propia aplicacin. Para ello deber haber
creado un fichero de ayuda compatible con Windows, aspecto ste que est fuera del propsito de
este curso.

En la figura lnea de cdigo se llama al motor de ayuda de Windows con un determinado
fichero de ayuda.


With CommonDialog1
.HelpFile = C:\Vb\vb.hlp
.HelpCommand = edlHelpContents
ShowHelp
EndWith


Fjese cmo se establecen ciertas propiedades del cuadro de dilogo comn y despus se
llama al mtodo ShowHelp para usarlo como motor de ayuda de Windows, a diferencia de
ShowSave que mostraba el cuadro de dilogo Guardar Como.

En este caso la propiedad HelpFile indica la ubicacin y nombre del archivo de ayuda que
debe mostrarse. Finalmente la propiedad HelpCommand indica cmo debe aparecer, es decir, si
debe aparecer la ficha Contenido, ndice o Buscar. En este caso se mostrar la ficha Contenido.
Busque HelpCommand en el archivo de ayuda de Visual Basic para ver las opciones que tiene.


lo largo de esta leccin ha podido utilizar distintos cuadros de dilogo en su
aplicacin sin crear ninguno de ellos

Aunque estos cuadros de dilogo son muy interesantes y permiten mostrar en pantalla
cuadros de dilogo apropiados en muchas situaciones, usted tambin tiene la posibilidad de crear
sus propios cuadros de dilogo.

A
4.4. CUADROS PERSONALIZADOS
Visual Basic 6.0 Microsoft

PAG. 38

Recuerde que, en definitiva, un cuadro de dilogo no es ms que un formulario que debe
comportarse de una determinada forma y en el que deben de estar siempre presentes algunos
elementos.
Por lo tanto, crear cuadros de dilogo no es ms un estilo de programacin correcta en
Windows que un elemento del lenguaje que utilice para ello, excepto en el caso de utilizar cuadros
de dilogo incorporados en el propio lenguaje, como ha hecho en los anteriores captulos.
Un cuadro de dilogo se caracteriza por tener el valor 3 Fixed Dialog en la propiad
BorderStyle del formulario. De esta forma, el cuadro de dilogo no puede cambiar de tamao ni
maximizar o minimizar.

Al elegir dicho valor para la propiedad BorderStyle, Visual Basic ya introduce el valor
False para la propiedad MaxButton y MinButton, que se refiere a la presencia de los botones
maximizar y minimizar, respectivamente.

Adems todo cuadro de dilogo debe ser modal, por lo que deber utilizar el mtodo Show
con nico parmetro establecido al valor 1

Cuando incorpore controles a los cuadros de dilogo, es posible que necesite cambiar el
tamao del formulario. Para ello, simplemente debe arrastrar, en tiempo de diseo, los lados del
formulario, como una ventana Windows redimensionable.

Por otra parte, es muy importante establecer la propiedad BorderStyle para que no se
pueda cambiar el tamao en tiempo de ejecucin. Piense, por ejemplo, qu pasara al maximizar
un cuadro de dilogo que tiene unos controles situados de forma simtrica respecto al tamao
utilizado en tiempo de diseo.
TRABAJ AR CON FORMULARIOS
En tiempo de ejecucin, los formularios no se muestran en pantalla si no se especifica
explcitamente a travs del cdigo. Slo en el caso del formulario inicial esto no es necesario ya
que el cdigo inicial es justamente el contenido en dicho formulario, por lo que se muestra
automticamente en pantalla al iniciar la ejecucin.
Antes de mostrar un formulario en pantalla, debe cargarlo en memoria. Para ello existe la
instruccin Load. As una lnea de cdigo del tipo Loag frmNombre hace en el formulario
frmNombre se cargue en memoria y tenga acceso, as, a todas sus propiedades y mtodos.

Debe saber que al utilizar el mtodo Show el formulario se carga en memoria si no lo
estaba ya. Visual Basic proporciona la instruccin Load para los casos en los que deseamos
acceder a algn elemento de algn elemento de un formulario sin que ste se muestre en pantalla.

Cuando no desee un formulario se muestre en pantalla tiene dos posibilidades: ocultarlo o
descargarlo.

Para ocultar un formulario se utiliza el mtodo Hide del formulario, esto es equivalente a
establecer a False la propiedad Visible del formulario. Al utilizar el mtodo Hide, el formulario
sigue cargado en memoria, por lo que se mantiene la posibilidad de acceder a sus propiedades.

Si lo que desea es descargarlo de memoria, liberando de esta forma todos los recursos que haya
utilizado, deber hacer uso de la instruccin Unload.

Microsoft Visual Basic 6.0

PAG. 39

Controles bsicos


a primera fase en la creacin de una aplicacin con Visual Baste es la de disear la
interfaz de usuario de dicha aplicacin. Esta Interfaz est constituida por el conjunto
de formularios que aparecen a lo largo de su ejecucin.

A estas alturas del curso ya ha aprendido a crear formularios y a establecer las propiedades
ms interesantes de stos. En esta leccin se estudian los controles, que son aquellos elementos
grficos que aparecen en dichos formularios y que sirven para obtener datos y presentar la salida
que produce la aplicacin.

Entre los numerosos controles que presenta Visual Basic, esta leccin y la prxima
introduce aquellos que se consideran bsicos y que aparecern prcticamente en todas las
aplicaciones que cree con Visual Basic: etiquetas, cuadros de texto, botones de comando, etc.

Existen otros muchos controles e incluso controles personalizados que aparecen
independientemente de Visual Basic. Estos controles se encuentran en archivos separados, por lo
que deben ser incorporados a la caja de herramientas para poder utilizarlos.

Cada uno de estos controles son tratados como objetos en Visual Basic, por lo que no debe
olvidar que tendrn su propio conjunto de propiedades, mtodos y eventos.


os controles muy relacionados y que se utilizan en la funcin de entrada de datos son
las etiquetas y los cuadros de texto.

Las etiquetas son controles que nos permiten mostrar texto en los formularios y que tienen
la particularidad de que el usuario no puede modificar dicho texto (aunque el programador s que
lo puede hacer en tiempo de ejecucin). Podr dibujar etiquetas en sus formularios a travs del
control situado en la caja de herramientas.

Sin embargo, los cuadros de texto son el control estndar de entrada de datos en Visual
Basic. Su propsito es el de permitir al usuario introducir aquella informacin que necesita la
aplicacin. El texto que introduzca est a disposicin del usuario, pudiendo llegar a modificarlo.
El control de la caja de herramientas le permite dibujar cuadros de texto.







L
D
5.1. INTRODUCCIN
5.2. ENTRADA DE DATOS
Visual Basic 6.0 Microsoft

PAG. 40




Entre las numerosas propiedades de un objeto etiqueta cabe destacar:

Alignment: establece la alineacin del texto de la etiqueta.
Autosize: si tiene valor True, el tamao de la etiqueta se adapta automticamente a su
contenido.
Caption: es el texto que se visualiza en la etiqueta.
Enabled: permite o no interactuar con la etiqueta. Esta propiedad no se uti1iza mucho ya
que una etiqueta no puede recibir el foco. Si tiene valor False se mostrar en gris.
Font: establece el estilo de la escritura, esto es, la fuente, tamao y realces del texto que
aparece en la etiqueta.

Los cuadros de texto son semejantes a las etiquetas, pero con la diferencia que el usuario
puede modificar su contenido. El texto que se introduzca puede ser tanto numrico como
alfanumrico (nmeros y letras).

A diferencia de una etiqueta, el tamao del cuadro de texto es fijo al no permitir la
propiedad Autosize. Esto es lgico ya que un cuadro de texto suele estar pensado para introducir
datos de distinta longitud.

Las propiedades ms interesantes de un cuadro de texto son las siguientes:

Alignmet : alineacin de la informacin introducida. Utilice alineacin a la izquierda para
el texto y a la derecha para los nmeros. Tambin puede centrarla.
CausesValidation: determina si el control desde el que ha cambiado el enfoque ativa su
evento validate.
Enabled: permite o no que el usuario realice acciones sobre el cuadro de texto.
Font: exactamente igual que en el caso de las etiquetas.
Multiline: muy importante ya que permite introducir ms de una lnea de texto en el
objeto.
Microsoft Visual Basic 6.0

PAG. 41

PasswordChar: establece qu carcter se muestra al realizar una entrada en el objeto.
Independientemente de lo que introduzca el usuario, en pantalla slo se mostrar dicho
carcter.
ScrollBars: permite mostrar barras de desplazamiento para el caso de que el texto
introducido no se pueda visionar completamente.
TabIndex: establece el orden de tabulacin fijado para el objeto.
TabStop: indica si, al utilizar el tabulador para desplazarse entre los controles del
formulario, debe o no tenerse en cuenta este control.
Text: texto que se visualiza en el control y que suele haber sido introducido por el usuario.
ToolTipText: texto mostrado cuando el ratn se sita sobre el contol.


n aquellas ventanas de entrada de datos es muy comn tener la combinacin de
etiqueta y cuadro de texto. Esto es debido a que un cuadro de texto no tiene la
propiedad Caption que permite crear teclas de acceso.

Por ello, cuando desee permitir un acceso rpido a cierto cuadro de texto, el uso de una
etiqueta asociada es la forma ms sencilla de hacerlo. Utilice el carcter & en la propiedad
Caption de la etiqueta asociada y ya habr creado la tecla de acceso para el cuadro de texto.

A medida que va creando controles en el formulario, Visual Basic asigna el orden de
tabulacin. Dicho orden establece la secuencia con la que se desplazar el foco de un control a
otro al pulsar la tecla [Tab]. Este orden aparece en la propiedad TabIndex.

Por ello si desea crear teclas de acceso para los cuadros de texto, deber asegurarse que la
etiqueta asociada al cuadro de texto tenga el valor anterior. En dicha propiedad, al del cuadro de
texto. De esta forma al pulsar [Tab] el foco pasar al cuadro de texto sin pararse en la etiqueta,
que no puede recibirlo.

La mejor forma de asegurarse esta situacin es crear la etiqueta e inmediatamente despus
el cuadro de texto asociado. Sin embargo, tambin puede cambiar el orden de tabulacin
modificando el valor de la propiedad TabIndex, en este caso el resto de controles se reordenarn.


i desea estructurar un formulario en distintas secciones, agrupando controles en stas
para que la lectura sea ms clara, el control que debe utilizar es el control Marco
(Frame).

Dicho control puede tener una intencin puramente esttica o de legibilidad como sera el
caso mencionado o de mayor necesidad, como podr ver cuando estudiemos el control casilla de
opcin.

Para dibujar un control Marco, utilice el botn de la caja de herramientas.
E
S
5.3. ETIQUETAS + CUADRO DE TEXTO
5.4. CONTROL MARCO
Visual Basic 6.0 Microsoft

PAG. 42

La nica propiedad interesante de un control marco, aparte de su nombre, es la propiedad
Caption que se refiere al texto que se muestra en la parte superior izquierda del marco.

El control Marco nos permite introducir el concepto de contenedor. Cuando dibuja
controles en un formulario, estos son controles independientes que poseen la caracterstica de estar
situados en un determinado formulario. En este caso se dice que el objeto contenedor es el
formulario.

Sin embargo, la incorporacin de un control marco al formularlo puede cambiar este
aspecto y permitir que sea dicho marco el contenedor de otros controles que se dibujan en su
interior.

Esta caracterstica tiene su importancia ya que los valores de las propiedades Left
(Izquierda) y Top (Arriba) se establecen en funcin del objeto contenedor del control. Por ello,
cuando mueve un formulario tambin se mueven los controles que estn situados en l.

Para que un objeto marco sea el objeto contenedor de otros objetos dibujados, deber
haber dibujado primero el objeto marco y despus dibujar el resto de objetos en el interior del
objeto marco. Si ya tiene controles dibujados y quiere introducirlos en un marco, entonces deber
copiarlos o cortarlos y pegarlos en el marco. As tambin ser el control marco el objeto
contenedor de los objetos pegados.


n este captulo se estudiar el control ms utilizado en cualquier aplicacin Windows:
el botn de comando.

La manera ms sencilla de permitir que un usuario interacte con su aplicacin es
proporcionarle un botn para que haga clic en l.

Los botones de comando son una manera natural e intuitiva de ejecutar acciones en la
aplicacin complementan en este sentido el uso de mens, ya sean despegables o contextuales.
Podr dibujar un botn de comando a travs del control situado en la caja de herramientas.

El control botn de comando (ComandButton) es muy sencillo, por lo que no necesitar
establecer muchas propiedades. Indique en Caption el texto que deba aparecer en el botn e
introduzca su nombre de objeto. El resto de propiedades las utilizar pocas veces. Como en el
resto de controles que presentan esta propiedad, tambin podr crear una tecla de acceso al botn.

Adems, es una regla establecida de hecho en la interfaz de Windows indicar con los
puntos suspensivos ( ... ) que al pulsar un botn se abrir otra ventana, como suceda en los
elementos de men.

El uso principal de los botones de comando es justamente realizar acciones en la
aplicacin. Sin embargo, tambin debe situar algn botn de comando para poder cerrar
expresamente la ventana en la que se encuentra.

E
5.5. BOTONES DE COMANDO
Microsoft Visual Basic 6.0

PAG. 43

En los cuadros de dilogo normalmente aparecern los botones los botones Aceptar y
Cancelar mientras que en otras ventanas de la aplicacin puede encontrarse con botones como el
de Cerrar, cuya funcionalidad es la de cerrar (ocultar o descargar) el formulario abierto.

Debe disear los formularios de forma que los controles que sirvan para lo mismo se
siten siempre en la misma posicin. Por ejemplo, coloque siempre en el mismo lugar los
botones que permitan cerrar las ventanas, de forma que el usuario llegue a acostumbrarse a verlos
en esa posicin y los use de una forma casi impulsiva.

Un buen lugar para estos botones es la parte inferior derecha, como puede observar en
muchas aplicaciones Windows.

Existen dos propiedades que se aplican a los botones comentados que permiten cerrar una
ventana. Si desea cerrar la ventana de forma que las acciones que haya podido hacer no lleguen a
tener efecto (tpico en el sentido de un botn Cancelar), ser importante establecer la propiedad
Cancel a True.

Al establecer esta propiedad permite que el usuario pueda uti1izar tanto el botn Cancelar
como la tecla [Esc].

Sin embargo, si desea que se lleven a cabo las acciones realizadas en la ventana, utilice un
botn Aceptar y establezca su propiedad Defauf a True. De esta forma permitir utilizarla tecla
[Intro] como si pulsara en dicho botn.

El botn Cerrar suele encontrarse en ventanas donde se realizan acciones sin necesidad de
cerrar la ventana. Su propsito es el de permitir cerrar la ventana cuando el usuario lo decida.
Tambin suele responder a la tecla [Intro]

Recuerde la importancia que tienen los botones que permiten cerrar una ventana, aunque el
usuario tambin podra utilizaras el botn cerrar de la propia ventana. Este botn debe tener el
mismo sentido que pulsar un botn Cancelar en un cuadro de dilogo o un botn Cerrar x en otro
tipo de ventanas.


uando haya situado distintos controles en un formulario y le guste la disposicin
obtenida, es una buena idea bloquear los controles para que no puedan moverse de
forma accidental.

Para ello, el men Formato de Visual Basic facilita la opcin Bloquear controles, cuya
presencia se justifica de esta forma.






C
5.6. BLOQUEAR CONTROLES
Visual Basic 6.0 Microsoft

PAG. 44



Cuando active este botn y mientras no
desbloquee los controles pulsando de nuevo en el
mismo botn, no podr mover ninguno de los controles
formulario activo.

Sin embargo, si abre otro formulario o crea uno
nuevo, sus controles no estarn bloqueados ya que este
botn slo afecta a los controles del formulario que est
activo en el momento de pulsarlo.

Adems, si tiene un formulario con los controles
bloqueados y aade nuevos controles, estos tambin
permanecern bloqueados y no podr moverlos de la
posicin en la que los dibuje.


PROPIEDAD PREDETERMINADA DE UN CONTROL

Los controles tienen, entre sus propiedades, una que acta como predeterminada. Es decir,
si desea consultar o establecer el valor de esa propiedad, no ser necesario hacer referencia a la
misma, sino simplemente utilizar el nombre del control.

As, por ejemplo, los cuadros de texto tienen como propiedad predeterminada la propiedad
Text. Imagnese que tiene un cuadro de texto de nombre txtNombre, entonces seran equivalentes
las siguientes dos lneas de cdigo:

txtNombre.Text ="Hola"
txtNombre ="Hola"

ya que en la segunda lnea se establece la propiedad Text, que es la predeterminada para el control
cuadro de texto.

El uso de las propiedades predeterminadas puede reducir el cdigo de sus aplicaciones,
pero hace que sea ms difcil de leer. Deber ser usted quien decida utilizar las propiedades
predeterminadas o no.











Microsoft Visual Basic 6.0

PAG. 45

Controles bsicos II


n muchas ocasiones desear proporcionar la posibilidad de elegir entre distintas
opciones a los usuarios.

En estas situaciones podr incorporar a sus formularios distintos controles que presentan
opciones como pueden ser las casillas de verificacin, botones de opcin o a travs de una lista.

Las casillas de verificacin (CheckBox), permiten establecer opciones que no son
excluyentes entre s, es decir, puede seleccionar una ms de una, todas o incluso ninguna de las
opciones. Utilice el botn de la caja de herramientas.

Una casilla de verificacin puede estar
activada (checked), indicando que dicha
opcin ha sido seleccionada o desactivada
(unchecked), indicado lo contrario. Adems la
casilla puede estar atenuada (grayed),
indicando que el objeto no est disponible al
tener un valor indeterminado. La propiedad
que tiene estos valores es Value.

El evento ms utilizado en este tipo de
objetos es el momento en el que se pulsa en la
casilla. En esta situacin el usuario quiere
indicar que desea activar o desactivar la
casilla, dependiendo de cul sea su valor.


os botones de opcin (OptionButton) tambin permiten presentar opciones al usuario,
pero con la particularidad que slo podr seleccionar una de dichas opciones al mismo
tiempo.

Por ello es importante establecer conjuntos de botones de opcin. Si desea que en un
mismo formulario se pueda seleccionar ms de un botn de opcin, deber crear distintos
conjuntos de botones de opcin. Acceda a este control a travs del botn de la caja de
herramientas.

Un botn de opcin slo puede presentar dos posibles valores en la propiedad Value:
False, que indica que el botn no est activado, y True, que representa la situacin en el que el
botn est activado. El resto de propiedades de este control son similares a otros controles ya
vistos.
E
L
6.1. CASILLAS DE VERIFICACIN
6.2. BOTONES DE OPCIN
Visual Basic 6.0 Microsoft

PAG. 46

As, por ejemplo, podra necesitar indicar si un producto est indicado para hombres o
mujeres y si el pedido est pagado o es contra reembolso.

Si este tipo de situaciones se presenta en su aplicacin, tendr que utilizar un control para
que haga de contenedor cada grupo de botones de opcin. Como ya ha podido ver, este control
puede ser el control Marco (Frame) estudiado en la pasada leccin.

Como ocurra en la anterior leccin, para que esto funcione, es necesario dibujar los
botones de opcin que configuren un grupo independiente en el interior del marco. Si no es as,
seguira siendo el formulario el objeto contenedor, por lo que no podra seleccionar ms de un
botn de opcin.

Es importante utilizar los botones de opcin slo en aquellos casos en el que el nmero de
opciones posibles sea fijo a lo largo de la vida de la aplicacin. En caso contrario, la inclusin de
una opcin o modificacin de alguna de las existentes podra implicar la modificacin de partes de
la aplicacin que trabajen con dichas opciones, algo no deseable.


tra forma de presentar opciones al usuario es a travs de una lista donde se siten
dichas opciones.

De forma predeterminada, las opciones que contiene el cuadro de lista (ListBox) se
presentan verticalmente en una nica columna, aunque tambin puede establecerse ms de una
columna. Adems, si es necesario, aparecern barras de desplazamiento. Para dibujar un cuadro de
lista en un formulario, utilice el botn .

Entre las propiedades que debe conocer de un cuadro de lista cabe destacar:

ListIndex: indica el ndice del elemento seleccionado en la lista. El primer elemento de la
lista tiene el valor 0 como ndice.
ListCount: indica el nmero de elementos existentes en la lista en todo momento.
Text: texto del elemento seleccionado en la lista.

Todas estas propiedades son utilizadas en tiempo de ejecucin, cuando se interacta con la
lista. En tiempo de diseo, sin embargo, podr indicar si desea que la lista se mantenga ordenada.
Para ello utilizar la propiedad Sorted que predeterminadamente est a False, lo que indica que no
se mantiene ordenada.

Para que pueda seguir mejor la explicacin que se realiza en el curso, presentamos aqu un
grfico donde puede ver el nombre de cada control que se utiliza.





O
6.3. CUADROS DE LISTA
Microsoft Visual Basic 6.0

PAG. 47




A la hora de agregar elementos a la lista es necesario utilizar un mtodo de sta. El
mtodo AddItem se encarga de ello. Las siguientes lneas son el cdigo escrito para el
procedimiento del botn Agregar del formulario utilizado en el curso en pantalla.


PrivateSubcmdAgregar_Click()
lstDeportes.Addltem txtDeportes.Text
IbICount = IstDeportes.ListCount
txtDeportes.Text = ""
txtDeportes.SetFocus
EndSub


En la primera lnea del procedimiento est indicndole al objeto IstDeportes, que es el
cuadro de lista dibujado en el formulario, que aada a sus elementos el elemento que se encuentra
en el cuadro de texto de la parte superior (de nombre txtDeportes) y que es donde el usuario
introduce las entradas que se aaden a la lista.. Este texto es accesible a travs de la propiedad
Text de dicho cuadro de texto.

El mtodo AddItem aadir el nuevo elemento al final de la lista si sta no est ordenada o
en el lugar adecuado si est ordenada. Tambin podra indicar en qu lugar (ndice) debe
agregarse el nuevo elemento. En este caso la sintaxis completa sera:


NombreLista.AddItem elemento, ndice


Adems, como hemos aadido un elemento a la lista, tendremos que actualizar el nmero
de dichos elementos a travs de la etiqueta situada en la parte inferior de nombre IstCount. Esto se
consigue con la lnea lbICount=IstDeportes.ListCount, que consulta la propiedad ListCount del
cuadro de lista. Esta propiedad se actualiza al agregar o eliminar elementos de la lista.

Visual Basic 6.0 Microsoft

PAG. 48

Para eliminar un elemento de la lista, deber utilizar el mtodo RemoveItem. Sin
embargo, este mtodo necesita que indique qu elemento desea eliminar de la lista. Aqu puede
ver el cdigo asociado al procedimiento de evento Click del botn Eliminar.


PrivateSubcmdEliminar_Click0
Dim Indice As Integer
Indice=IstDeportes.ListIndex



If Indice >= 0 Then
IstDeportes.RemoveItem Indice
End If
IbICount.Caption = IstDeportes.ListCount
txtDeportes.SetFocus
EndSub


Como se ha dicho, RemoveItem necesita que se le indique qu elemento desea eliminar de
la lista. En este caso, dicho elemento ser aquel que el usuario haya elegido en la lista y, que por
lo tanto, estar seleccionado en la misma.

Para conseguir dicho elemento, se utiliza la propiedad ListIndex de la lista. Esta
propiedad se guarda en la variable Indice y posteriormente se comprueba si realmente existe algn
elemento seleccionado en la lista. As slo en el caso de que Indice sea>=0 se borrar el elemento
(recuerde que el primer elemento de la lista tiene el ndice 0).

Finalmente se actualiza la etiqueta que muestra el nmero de elementos de la lista y se da
el foco al cuadro de texto para permitir introducir ms elementos.

Si desea el eliminar todos los elementos de una lista, no es necesario hacerlo de uno en
uno. Utilice el mtodo Clear para hacerlo de una vez.

Aqu aparece el cdigo asociado al procedimiento Click del botn Limpiar.


PrivateSubcmdLimpiar_Click()
IstDeportes.Clear
IbICount.Caption = IstDeportes.ListCount
txtDeportes.SetFocus
EndSub


Como puede observar, lo nico que hace es limpiar la lista (utilizar su mtodo Clear),
actualizar el nmero de elementos y permitir introducir nuevos elementos.

Microsoft Visual Basic 6.0

PAG. 49

Por otra parte, al utilizar el mtodo AddItem en una lista ordenada, es decir, que tenga sus
propiedad Sorted establecida a True, no debe indicar el lugar en el que desea que se inserte el
nuevo elemento, ya que en ese caso puede provocar resultados con ordenaciones impredecibles.


n cuadro combinado (ComboBox),conjuga las caractersticas de un cuadro de lista y
de un cuadro de texto en un nico control.

Generalmente el uso de un cuadro combinado en detrimento de un cuadro de lista ocurre
cuando el programador desea sugerir opciones al usuario, mientras que en el caso del cuadro de
lista no son sugerencias sino que el usuario est limitado a elegir una de las opciones que se le
presentan.

Un cuadro combinado ocupa menos espacio que un cuadro de lista ya que el usuario
deber desplegarlo para poder elegir la opcin deseada. Por otra parte, tambin podr introducir
directamente dicha opcin (por ello la presencia de un cuadro de texto como parte del objeto
cuadro combinado).

La principal propiedad que debe establecer para un objeto Cuadro combinado es Style.


El estilo 0-Dropdown Combo es el valor predeterminado. En este
tipo de objetos el usuario puede elegir un elemento de la lista, desplegndola
o introduciendo directamente el valor en el cuadro de texto.


El estilo 1-SimpleCombo es el menos utilizado y se caracteriza por
presentar en todo momento la lista en pantalla. El usuario, sin embargo,
tambin puede hacer uso del cuadro de texto para introducir un valor nuevo
o uno de los que aparecen en la lista.


Finalmente el estilo 2-DropdownList se comporta como un cuadro
de lista, pero en este caso el usuario deber desplegar la lista para que se
muestren las opciones. Cuando utilice este estilo, el usuario no podr hacer
uso del cuadro de texto, por lo que no podr elegir un valor que no forme
parte de la lista.

Adems, todas las propiedades y mtodos mencionados para los cuadros de lista tambin
son vlidos para los cuadros combinados.






U
6.4. CUADROS COMBINADOS
Visual Basic 6.0 Microsoft

PAG. 50
















































Microsoft Visual Basic 6.0

PAG. 51

Fundamentos de Programacin


n las lecciones anteriores ha podido aprender a crear la interfaz de una aplicacin
Windows utilizando Visual Basic.

Adems ya conoce cul debe ser la forma adecuada de programar una aplicacin en este
entorno de desarrollo: crear la interfaz, establecer propiedades y finalmente escribir cdigo.

Aunque ha sido inevitable utilizar estructuras de programacin y conceptos que no haban
sido introducidos, el objetivo principal de dichas lecciones han que a estas alturas del curso
conozca el entorno de programacin de Visual Basic y cmo crear la interfaz de una aplicacin
Windows.

Es el momento de reforzar conceptos de programacin que debe tener muy claros a la
hora de escribir cdigo ms complejo. Se introduce formalmente las variables, constantes,
procedimientos, funciones, estructuras de control, tipo de datos,

En definitiva, el usuario poco establecido en estos temas agradecer enormemente estos
fundamentos de programacin y aquel que ya tiene cierta experiencia, conocer cmo se aplican
en Visual Basic.


na variable es una ubicacin temporal de memoria donde el programador almacena
datos que le interesa retener durante la ejecucin de la aplicacin.

Una variable puede contener texto, un valor numrico, una fecha o una propiedad de cierto
objeto. En definitiva, es una forma de dar nombre a una porcin de datos con la que deseamos
trabajar en nuestro programa.

Las variables se caracterizan por un nombre que las identifica y por un tipo de datos, que
establece el conjunto de valores posibles que pueden contener y operaciones en las que puede
participar. El valor de una variable puede cambiar a lo largo de la vida de sta (de ah el nombre
de variable).

En la mayora de lenguajes de programacin es necesario declarar una variable para poder
utilizar en el programa. Sin embargo en Visual Basic esto no es obligatorio aunque s
recomendable.

Al declarar una variable se reserva a memoria para ella y se le indica a Visual Basic qu
valores puede contener a travs de su tipo de datos. As Visual Basic podr realizar comprobacin
de tipos y establecer errores en tiempo de compilacin.

E
U
7.1. INTRODUCCIN
7.2. VARIABLES
Visual Basic 6.0 Microsoft

PAG. 52

Si desea establecer la declaracin de una variable antes de ser utilizada en el cdigo, puede
indicarlo en la ficha Editor del cuadro de dilogo Opciones en el men Herramientas.

Al activar la casilla Declaracin de variables requerida, Visual Basic introduce la
instruccin Option Explicit en la seccin de declaraciones de cada mdulo nuevo que se cree, no
de los ya existentes donde tendr que introducirla manualmente. Esta instruccin obligar a
declarar las variables antes de utilizarlas, lo que es muy recomendable.

Utilizar variables por diversos motivos: almacenar una entrada del usuario, realizar
clculos intermedios, establecer la salida en un formulario, etc.

Adems, el uso de variables puede hacer ms rpida su aplicacin. As, si utiliza en
muchas ocasiones un determinado resultado, es mejor guardarlo en una variable y utilizarla que
tener que volver a establecer dicho resultado, lo que puede implicar distintos clculos.

Por otra parte, es ms rpido el acceso a una variable que a una propiedad de un objeto,
por lo que en muchas ocasiones guardar el valor de una propiedad utilizando una variable.

Veamos un ejemplo.


Dim Variable
Variable= txtEntrada.Text
txtSalida.Text=Variable


La forma de declarar una variable es a travs de la instruccin Dim. En la primera lnea
est declarando la variable de nombre Variable y al mismo Visual Basic guarda espacio en
memoria para poder utilizarla.

En la segunda lnea ya utiliza la variable. En este caso sirve para guardar el valor que
existe en un cuadro de texto llamado txtEntrada (representado por su propiedad Text)

En la tercera lnea est haciendo justo lo contrario. Utiliza la variable para establecer el
valor de la propiedad Text del cuadro de texto txtSalida.

Si ahora introduce estas dos nuevas lneas de cdigo:


Variable = 125
txtNmero.Text =Variable


Fijase que ahora ha establecido Variable a un valor numrico. Sin embargo en las
anteriores lneas lo haba establecido a un valor de texto ya que la propiedad Text es de ese tipo de
datos. Analizaremos despus este asunto.


Microsoft Visual Basic 6.0

PAG. 53


l tipo de datos de una variable establece el conjunto vlido de valores que sta puede
tomar, as como el conjunto de operaciones en las que puede tomar parte como
operando.

En Visual Basic dicho tipo de datos se especifica al declarar la variable de forma que se
guarda espacio en memoria para poder almacenar los valores de dicho tipo de datos.

Es importante indicar el tipo de datos ya que no todos tienen la misma representacin en
memoria, ocupando distinto espacio fsico.

Sin embargo, de forma predeterminada y si usted no indica el tipo de datos, Visual Basic
establece el tipo Variant para todas las variables. As, al utilizar una instruccin como
DimNombreVariable, est especificando implcitamente el tipo Variant para dicha variable.

Esto tambin se aplica cuando utiliza las variables sin haberlas declarado previamente.

El tipo Variant es un tipo especial de datos que puede contener cualquier clase de datos
excepto cadenas de longitud fija y tipos definidos por el usuario. Al utilizar variables de este tipo,
no tiene que preocuparse de efectuar conversiones entre tipos para utilizarlas en distintos
contextos, Visual Basic lo hace por usted.

Por ejemplo en el captulo anterior declar la variable con Dim Variable, por lo que su
tipo de datos es el Variant.

Pudo asignar texto a dicha variable (a travs de la propiedad Text de un cuadro de texto) y
tambin pudo asignarle un valor numrico (a travs de la sentencia Variables=125). Sin embargo,
cuando Variable almacenaba un valor numrico (125) pudo utilizarla para establecer el valor de la
propiedad Text del cuadro de texto (txtNumrico.Text =Variable), sin necesidad de realizar
ninguna conversin.

La flexibilidad del tipo Variant se tiene que pagar con el aumento en el consumo de
memoria y disminucin de velocidad que implica dicho tipo de datos. Visual Basic escoger
automticamente la representacin en memoria ms eficiente para dicha variable, guardando la
memoria necesaria, cuando se le asigne un valor.

Esta representacin puede variar a lo largo de la vida de la variable al ir asignando valores
distintos.
Por ello, es responsabilidad del programador establecer siempre que sea posible un tipo
para cada variable que utilice. La forma de hacerlo es indicndolo al final de la instruccin Dim de
la forma:


Dim Nombre Variable As Nombre Tipo.

E
7.3. TIPOS DE DATOS
Visual Basic 6.0 Microsoft

PAG. 54

A continuacin indicamos los principales tipos de datos disponibles en Visual Basic:


Tamao de Valores posibles
Nombre del tipo de datos almacenamiento
Entero (integer) 2 bytes -32.768 a 32,767
Entero largo (Long) 4 bytes -2. 147.483.648 a
2. 147.483.647
-3.402823E38 a
1.401 298E-45 para valores
Simple (Single) 4 bytes negativos. 1.401298E-45 a
3.402823E38 para valores
Positivos.
-1.79769313486231 E308a
-4.94065645841247F-324
para valores
Doble (Double) 8 bytes negativos.4.940656458412-
47E-324a
1,79769313486232E308
para valores positivos.
8 bytes -922337203685477,5808 a
Moneda ( Currency) 92237203685477,5807
Desde 0 hasta
aproximadamente 2.000
Cadena de millones (aproximadamente
Caracteres(String) 1 byte por carcter 65.400 para Microsoft
Windows versin 3.1 y
anteriores). Las cadenas de
Caracteres deben aparecer
entre comillas dobles ()
Byte 1 byte 0 a 255
Verdadero (True) o Falso
Booleano (Boolean) 2 bytes (False).
Del 1 de Enero de 100 al
Fecha (Date) 8 bytes 31 de Diciembre de 9999.
Cualquier referencia a un
Objeto (Object) 4 bytes Objeto.
Nulo, Error, cualquier valor
Variant 16 bytes+1 byte por
cada carcter
Numrico de rango Doble, o
cualquier texto de







Microsoft Visual Basic 6.0

PAG. 55


i en su aplicacin encuentra un valor que se repite frecuentemente, es posible que le
interese guardarlo en una constante.

Las constantes son semejantes a las variables, pero con la particularidad de que su valor no
puede cambiar a lo largo de la aplicacin. Una constante es utilizada para aumentar la legibilidad
de su cdigo. Por ejemplo en lugar de utilizar el valor3.1415 podra utilizar la constante Pi.

En definitiva deber darle un nombre a la constante y establecer su valor, que no podr ser
cambiado en el resto de cdigo.

Para utilizar una constante, deber declararla previamente, en este caso s que es
obligatorio. La forma de declararla es a travs de la instruccin ConstNombreConstante =
Expresin, donde Expresin ser un valor literal (nmero, texto, fecha, etc.) o un conjunto de
palabras que se evalen a un valor vlido.

Por ejemplo:


Const FestivosSemana = 2


A partir de ahora podr utilizar el identificador FestivoSemana en lugar del valor 2. Al
hacer esto podr aadir legibilidad a sus programas, adems de permitir la modificacin de
opciones globales de una forma ms sencilla.

As, por ejemplo, si quiere cambiar el nmero de das festivos en una semana para su
aplicacin, slo necesitar modificar el valor en la declaracin de la constante y esta modificacin
se extender a todos los lugares donde se use.

Una constante puede ser utilizada en cualquier lugar donde su valor sea adecuado, as, por
e ejemplo podra utilizar la constante FestivosSemana en la siguiente lnea:


Variable = 125+FestivosSemana, estableciendo el valor 127 para Variable.


Por otra parte, el lenguaje Visual Basic incorpora un gran nmero de constantes que puede
utilizar directamente en sus programas.

En el cuadro de dilogo Referencias (men Proyecto) se sitan aquellas aplicaciones o
libreras que estn disponibles en nuestra aplicacin. Estos componentes permiten el uso de sus
objetos en nuestras aplicaciones de forma automtica, siempre que su casilla de activacin est
activada.


S
7.4. CONSTANTE
Visual Basic 6.0 Microsoft

PAG. 56

Cuando Visual Basic
encuentra un identificador
vlido, comprueba primero
si est declarado en nuestra
aplicacin y, en caso
negativo, comprueba si est
disponible en alguno de los
componentes que se siten
activados en este cuadro de
Referencias.

Recuerde, por e
ejemplo, que en la anterior
leccin utiliz la constante
vbChecked para comprobar
el valor de una casilla de
opcin. Dicha constante
pertenece a la librera
VBRUN Objetos y
procedimientos de la
biblioteca de tiempos de ejecucin de Visual Basic.

EI Examinador de Objetos ,disponible a travs del men Ver, permite mostrar todos
los objetos que puede tener disponibles en su proyecto de programacin y cuyos orgenes se
muestran activados en el cuadro de dilogo Referencias. Tambin muestra aquellos objetos
creados en el propio proyecto.

En la lista de la derecha se muestran los objetos disponibles para la seleccin realizada.
Fjese cmo una constante perteneciente a la clase CheckBoxConstants, es decir, constantes
referentes al control CheckBox o casilla de verificacin, es justamente la constante utilizada en la
anterior leccin, vbChecked.


Microsoft Visual Basic 6.0

PAG. 57

Recuerde que una constante no puede cambiar su valor despus de haber sido declarada.
Intentarlo originara un error en tiempo de compilacin.


n Visual Basic existe un gran nmero de operadores que puede utilizar para crear
formulas de cierta complejidad.

Estos operadores trabajan con los operados sobre los que se aplican siempre que el valor
que posean sea compatible con el operador. Hay que tener cuidado en este aspecto ya que Visual
Basic realiza conversiones de tipo implcitas cuando lo necesita, produciendo, en ocasiones,
resultados inesperados.

Los operadores ms utilizados en una aplicacin Visual Basic son los siguientes:

Operador Operacin que realiza
+ Suma / Concatenacin de cadenas de caracteres.
- Resta.
* Multiplicacin.
/
\
Divisin.
Divisin entera.
Mod Resto de la divisin entera.
^ Exponenciacin.
& Concatenacin de cadenas de caracteres.

El operador + es un caso especial. Dicho operador puede actuar con operados de texto y
con operados numricos, efectuando operaciones distintas (se dice que el operador est
sobrecargado).

En el primer caso realiza lo que se llama concatenacin de cadenas, es decir, crea una
cadena nueva al situar la segunda cadena dada inmediatamente despus de la primera. Por ejemplo
si realiza la operacin "hasta " +luego", el resultado sera "hasta luego" (fjese que la primera
cadena contena espacio en blanco al final).

En el caso de contener valores numricos, +acta como el operador suma normal. Es decir
una operacin del tipo 1 +2 dara como resultado 3.

Por ello es conveniente utilizar el operador & para concatenar cadenas de caracteres en
lugar del operador +.

Visual Basic realizar conversiones implcitas de tipo para poder utilizar un determinado
operador siempre que los operados tengan una representacin vlida para este operando.

As, por ejemplo la operacin 4" - 2" no provocara un error de compilacin sino que
dara el resultado 2, ya que tanto la cadena de caracteres 4 como "2" tienen una representacin
numrica vlida, no as, por ejemplo, la cadena hola.
E
7.5. OPERADORES DE VISUAL BASIC
Visual Basic 6.0 Microsoft

PAG. 58
















































Microsoft Visual Basic 6.0

PAG. 59

Fundamentos de Programacin II


l lenguaje de Visual Basic incorpora estructuras de control que permiten controlar el
flujo de ejecucin de un programa.

Si no existen tales estructuras en su cdigo, ste se ejecutar de izquierda a derecha y de
arriba a abajo segn lo haya escrito.

Sin embargo, en muchas ocasiones desear ejecutar una lnea u otra dependiendo de cierta
condicin o desear repetir un nmero de veces el mismo conjunto de lneas. En estos casos la
introduccin de las estructuras de control modifican el flujo normal de la ejecucin.

Entre las estructuras de control cabe citar las estructuras de decisin, estudiadas en este
captulo y las estructuras de repeticin, que son analizadas en el siguiente.

La instruccin If-Then-Else es la estructura clsica de decisin y presenta la siguiente
sintaxis:


If condicin1 Then
[instrucciones1]
[ElseIf condicin2 Then
[instrucciones2]]

[Else
[instruccionesN]]
End If


Donde los corchetes ([ ]) representan partes opcionales de la instruccin. Adems es
posible que exista ms de una clusula ElseIf en la misma instruccin If-Then-Else, de ah la
aparicin de los puntos suspensivos ().

Debe entender esta instruccin de la siguiente forma: Si condicin1 se cumple entonces se
ejecuta el bloque instrucciones1, en caso contrario se ejecutara el bloque de instrucciones(2N-
1) de la primera clusula EbeIf cuya condicin se cumpla. Si finalmente no se cumple ninguna de
estas condiciones, se ejecutara el bloque instruccionesN correspondiente a la clusula Else.

Y donde condicin es una expresin, es decir, cualquier conjunto de palabras, que se
evalan a Verdadero o Falso, sin posibilidad de poder tener otro valor. Se dice que una condicin
se cumple cuando se evala a Verdadero y que fracasa en caso contrario. Las condiciones tambin
se conocen como expresiones lgicas.


E
8.1. ESTRUCTURAS DE DECISIN
Visual Basic 6.0 Microsoft

PAG. 60

Veamos un ejemplo:


Dim idioma
idioma= Istldioma.ListIndex
lf idioma = 0 Then
MsgBox "Bienvenido"
ElseIf idioma = 1 Then
MsgBox "We1come"
ElseIf idioma = 2 Then
MsgBox "Bienvenue"
Else
MsgBox "Actualmente no hay ms idiomas soportados"
EndIf


Se utiliza una variable para almacenar el
valor de la propiedad que indica qu opcin del
cuadro de lista lstIdioma est seleccionada.

Una vez conocida la opcin seleccionada,
debemos sacar el mensaje adecuado: necesitamos
una estructura de decisin.

La instruccin de la clusula Else slo se
ejecuta cuando el resto de condiciones han
fracasado. Es como si la clusula Else tuviera una
condicin implcita que se evala a Verdadero slo cuando el resto de condiciones se evalan a
Falso.

Por otra parte, es importante darse cuenta que cualquiera de los bloques [instruccin]
puede contener un nmero arbitrario de instrucciones, incluida la posibilidad de que existan
nuevas instrucciones If-Then-Else.

Cuando existe un gran nmero de condiciones evaluar, es posible que la instruccin If-
Then-Else se complique de gran manera. En estos casos Visual Basic permite el uso de otra
estructura de decisin: la instruccin Select Case.

Select Case no incorpora mayor potencia al lenguaje, pero hace que el cdigo sea ms
legible y eficiente. La sintaxis de la instruccin Select Case es la siguiente:

Select Case expresinDeComparacin
[Case listaExpresiones1]
[insrucciones1]

[Case Else
[instruccionesN]]
End Select
Microsoft Visual Basic 6.0

PAG. 61


Donde de nuevo los corchetes ([]) representan partes opcionales y donde puede existir un
nmero indeterminado de clusulas [Case listaExpresiones].

Esta instruccin evala slo una vez la expresin de comparacin y ejecuta el bloque de
instrucciones de la primera clusula [Case listaExpresiones] cuya listaExpresiones cumpla con
la expresin de comparacin.

En caso de que no se pueda cumplir ninguna de las listas de expresiones, se ejecutara el
bloque instruccionesN correspondiente a la clusula [CaseElse], de forma similar a la instruccin
If-Then-Else.

Veamos como quedara el cdigo anterior utilizando la instruccin Select Case en lugar de
If-Then-FIse:


Select Case idioma
Case 0
MsgBox "Bienvenido"
Case 1
MsgBox "WeIcome"
Case 2
MsgBox "Bienvenue"
Case Else
MsgBox "Actualmente no hay ms idiomas soportados"
End Select


Adems, la 1ista de expresiones de cada clusula Case puede ser mucho ms complicada.
As podra referirse a ms de un valor, a un rango de valores, etc.

A continuacin se muestra algn ejemplo:


Case 1 To 9: valores desde el 1 hasta el 9.
Case 1, 2, 3: valores 1, 2 y 3.
Case 1, 2, 5 To 12: valores 1, 2 y desde el 5 hasta el 12.



l lenguaje de Visual Basic incorpora una serie de operadores de comparacin que
son tiles a la hora de establecer condiciones.

Hasta ahora slo ha usado el operador de igualdad(=) pero existen los siguientes:


E
8.2. EXPRESIONES LGICAS
Visual Basic 6.0 Microsoft

PAG. 62


= Igual a
<> Distinto a
> Menor que
< Mayor que
<= Menor o igual que
>= Mayor o igual que

Adems de esto, puede utilizar los llamados operadores lgicos: And, Or, Not, Xor. Estos
permiten establecer condiciones que dependan de ms de un criterio de seleccin.

Todos los operadores mencionados hacen que la expresin en la que se encuentren se
evale Verdadero o a Falso, sin posibilidad de cualquier otro valor.

As, la expresin exp1 AND exp2 se evala a Verdadero slo en el caso de que tanto exp1
como exp2 se evalen a Verdadero. En cualquier otro caso se evala a Falso.

La expresin exp1 OR exp2 se evala a Verdadero cuando alguna de las expresiones exp1
o exp2 se evalen a verdadero (fjese cmo puede pasar que ambas se evalen a Verdadero).

La expresin NOT exp1 se evala a Verdadero si exp1 se evala a Falso y se evala a
Falso si exp1 se evala a Verdadero.

Finalmente la expresin exp1 XOR exp2 se evala a Verdadero slo en el caso de que una
y slo una de las expresiones exp1, exp2 se evale a Verdadero.


n array o matriz de controles es un grupo de controles que comparten el mismo
nombre, tipo y conjunto de procedimientos de evento.

El nmero de controles que pueden pertenecer a tina matriz es indeterminado y depende de
los recursos y memoria de su ordenador. De todas formas el lmite para plataformas de 32 bits
(Windows 95) se sita en 32767 controles.

Deber crear la matriz de controles en tiempo de diseo, aunque en tiempo de ejecucin,
podr agregar ms controles a la matriz.

Esta es la forma de crear nuevos controles en tiempo de ejecucin, ya que en otro caso
dichos controles no tendran procedimientos de evento. Sin embargo, al agregar nuevos controles
a una matriz, estos comparten los procedimientos del resto de controles de lar matriz.

Para crear una matriz de controles, debe crear dos controles con el mismo nombre,
entonces Visual Basic le indicar esta circunstancia y le preguntar si desea crear una matriz.



U
8.3. MATRIZ DE CONTROLES
Microsoft Visual Basic 6.0

PAG. 63

Cuando se crea una matriz de controles, usted puede seguir trabajando con cada uno de los
controles de forma individual. Para referirse a un control en particular deber utilizar la propiedad
Index de dicho control. Dicha propiedad se establece al valor 0 para el primer control creado y se
va incrementando a medida que se crean los nuevos controles.



En la figura anterior puede ver cmo el procedimiento de evento Click posee un parmetro
especial, Index, que determina qu botn se ha pulsado. Recuerde que todos los controles
comparten los mismos procedimientos, por lo que tendr que usar dicho parmetro para
diferenciar uno de otro.

Si quiere crear nuevos controles en tiempo de ejecucin deber utilizar la instruccin
Load. La sintaxis correcta sera: Load objeto(ndice), donde objeto se refiere al nombre del
control original que dio paso a la creacin de la matriz e ndice es el lugar que ocupar en la
matriz.

Deber mantener en alguna variable el nmero de controles que existen en la matriz. Por
ejemplo, para la matriz de botones utilizada en el curso, el siguiente botn debera tener el ndice
3, por lo que una forma de crearlo, en tiempo de ejecucin sera a travs de la instruccin Load
Command1(3).

Tambin puede eliminar un control que haya sido creado en tiempo de ejecucin, a travs
de la instruccin Unload objeto(ndice). Esta instruccin no permite eliminar controles creados
en tiempo de diseo, independientemente de que pertenezcan o no a una matriz de controles.



Visual Basic 6.0 Microsoft

PAG. 64


n esta leccin ya ha podido utilizar estructuras de decisin para controlar el flujo de
ejecucin de un programa.

Otro tipo de estructuras que pueden modificar dicho flujo de ejecucin son las estructuras
de repeticin, tambin llamadas bucles. Estas estructuras sirven para repetir una y otra vez un
conjunto de instrucciones.

En este sentido puede querer repetir un nmero determinado de veces el conjunto de
instrucciones o no conocer dicho nmero y desear repetirlas hasta que se cumpla cierta condicin
(o mientras se cumpla otra).

En definitiva existirn dos tipos de estructuras de repeticin: aquellas en las que se conoce
el nmero de repeticiones y aquellas que dicho nmero se establece en la propia ejecucin.

La estructura de repeticin For ... Next es adecuada cuando conocemos el nmero de
veces que debe repetirse un conjunto de instrucciones y deseamos disminuirla cantidad de cdigo
escrito.

La sintaxis completa de esta estructura de repeticin es la siguiente:


For contador = principio To fin [Step incremento]
[Instrucciones]
[ExitForl
[Instrucciones]
Next [contador]


Donde contador es el nombre de una variable que sirve como contador de las veces que se
ha de ejecutar el bucle. A dicha variable se le asigna un valor inicial y se indica el valor final o
aquel en el que, una vez superado, el bucle no volver a repetirse.

En el cuerpo del bucle se sitan el conjunto de instrucciones que deben ejecutarse cada
vez, existiendo la posibilidad de introducir una instruccin Exit For para salir del bucle antes de
que se repita el nmero de veces establecido.

Finalmente, una vez ejecutada cada una de las instrucciones del cuerpo del bucle se ejecuta
la lnea Next contador, en la que se aproxima el valor del contador hacia el valor final en el
nmero de unidades indicado en el incremento.

Aproximarse puede ser incrementar el valor, si el valor inicial es menor que el valor final,
o decrementarlo, si el valor inicial es mayor que el final. Si no se determina ningn incremento,
Visual Basic toma como valor predeterminado una unidad.

E
8.4. ESTRUCTURA DE REPETICIN
Microsoft Visual Basic 6.0

PAG. 65

El ejemplo utilizado en el curso es:


Dim i As Integer
For i = 3 To 5
LoadCommand1(i)
Command1 (i).Visible = True
Command1(i).Top = Command1(i-l).Top + 600
Next i


En este caso se utiliza la variable i, de tipo entero, como contador del bucle. Dicho bucle
se ejecutar 3 veces, en las que el valor de i ser 3, 4 y 5.

Las instrucciones que forman el cuerpo del bucle crean, en tiempo de ejecucin, un botn
de comando nuevo en la matriz de controles. Fjese cmo el ndice de cada uno de los nuevos
botones ser justamente el valor del contador en cada pasada del bucle.

Por otra parte se sita el nuevo botn de forma que aparezca debajo del botn anterior en
600 unidades.

En muchas ocasiones desconocer cuntas veces debe repetir un bucle. En estos casos
deber utilizar una estructura de repeticin que dependa de una condicin.

En este sentido puede interesarle repetir un bucle mientras se cumpla o hasta que se
cumpla una condicin. En ambas situaciones Visual Basic presenta estructuras adecuadas.

La estructura de repeticin genrica es Do...Loop. Dicha estructura es utilizada cuando no
conocemos cuantas veces debe ejecutarse el bucle.

La sintaxis de esta instruccin es:


Do [{While / Until} condicin
[Instrucciones]
[ExitDo]
[Instrucciones]
Loop

Puede usar esta sintaxis vlida equivalente:


Do
[Instrucciones]
[Exit Do]
Instrucciones]
Loop [{While / Until} condicin]

Visual Basic 6.0 Microsoft

PAG. 66

Fjese cmo puede usar bien la palabra While o bien la palabra Until. En el primer caso el
bucle se repite mientras la condicin se cumpla; en el segundo caso el bucle se repetir hasta que
la condicin d el valor Verdadero.

Por otra parte en la primera sintaxis, la condicin es comprobada al principio del bucle,
por lo que si no se cumple al iniciarse, entonces el cuerpo del bucle no se ejecutar. Sin embargo,
en la segunda sintaxis, la condicin es comprobada a la salida del bucle por lo que por lo menos
una vez es seguro que el cuerpo del bucle se va a ejecutar.

Existen otras estructuras de repeticin en el lenguaje que no son tratadas en este captulo.
Es recomendable utilizar el sistema de ayuda y buscar informacin sobre repetir instrucciones.




































Microsoft Visual Basic 6.0

PAG. 67

Fundamentos de programacin III


n esta leccin finalizaremos en el repaso de conceptos propios de programacin y en
su aplicacin en el entorno de desarrollo particular de Visual Basic.

Como ya sabe, los procedimientos son unidades de cdigo en las que puede dividir su
programa para facilitar la programacin. Un procedimiento es un conjunto de lneas de cdigo que
deben realizar operaciones o tareas bien definidas.

En Visual Basic existen cuatro tipos de procedimientos: Sub, Function, Property y
Event.

Los procedimientos Sub ya son conocidos por usted, al haber trabajado con los
procedimientos de evento que son de este tipo.

Los procedimientos Function se distinguen de los primeros en que siempre devuelven un
valor asociado al nombre del procedimiento. Este valor puede ser usado en el cdigo que lo ha
llamado.

Finalmente los procedimientos Property sirven para crear y manipular propiedades
personalizadas de los objetos y los Event para declarar eventos definidos por el usuario en un
mdulo de clase y no los veremos en este curso.


n este capitulo aprender a crear procedimientos Sub. Para ello utilizaremos el
proyecto Videoclub. vbp, en el que estuvo trabajando en pasadas lecciones.

Estudiaremos el caso en el que un socio del videoclub desea llevarse una determinada
pelcula, es decir, cuando se produce un prstamo.

As. El usuario introducir una pelcula, el socio que se la lleva y pulsar el botn Prestar.
La aplicacin guardar dicho prstamos y mostrar un mensaje indicando el da de la devolucin.

Puede imaginar que necesitaremos calcular el da de devolucin. Este proceso puede
depender de muchas circunstancias o ser tan sencillo como el que vamos a mostrar.







E
E
9.1. TIPOS DE PROCEDIMIENTOS
9.2.CREAR PROCEDIMIENTOS SUB
Visual Basic 6.0 Microsoft

PAG. 68




Podra realizar el clculo de dicho da en el procedimiento de evento Click del botn
Prestar, pero esto no es muy buena idea.

Piense, por ejemplo, que dicho clculo puede ser necesitado en otras partes de la
aplicacin. Si es as, necesitara escribir el cdigo correspondiente en cada lugar que se necesite.

Qu sucedera si posteriormente se modifican los criterios de dicho clculo? Tendra que
realizar la modificacin en todos y cada uno de los lugares donde se realiza.

En estos casos es donde el uso de procedimientos facilita la labor de programacin y de
mantenimiento de su aplicacin.

Para crear un procedimiento tiene dos alternativas igualmente vlidas: utilizar la opcin
Procedimiento del men Insertar de Visual Basic o escribirlo completamente en la ventana de
cdigo.

En la definicin de un procedimiento Sub puede diferenciar dos partes: lacabecera y el
cuerpo del procedimiento.

En la cabecera del procedimiento se indica el mbito (si es pblico o privado) del mismo,
su tipo mediante la palabra Sub, su nombre y la lista de parmetros entre parntesis.

La lista de parmetros sirve para poder comunicar el procedimiento con el resto del cdigo
de la aplicacin. Por ejemplo en el procedimiento que se encarga de calcular el da de devolucin
al realizar un prstamo de una pelcula, necesitamos indicarle si la pelcula aprestar es una
novedad o no.

Para ello se utilizar un parmetro queindique de alguna forma dicha circunstancia. Un
parmetro se comporta corno una variable en el cuerpo del procedimiento, pudiendo simplemente
utilizar su valor o incluso modificarlo.

Adems, el procedimiento debe ser capaz de comunicar el da de la devolucin a aquel
cdigo que lo llame.

Microsoft Visual Basic 6.0

PAG. 69

Cuando un procedimiento quiere comunicar algn dato a la aplicacin, deber utilizar un
parmetro para ello. Es decir, un parmetro puede servir bien para comunicar un valor al
procedimiento o bien para que ste lo comunique a la aplicacin.

En la figura puede ver cmo quedara el procedimiento y cules son las partes del mismo:





Recapitulemos: se utiliza el parmetro novedad para indicarle al procedimiento si la
pelcula es o no es una novedad y hemos utilizado el parmetro da para que el procedimiento
pueda indicar o devolver el da calculado de la devolucin de la pelcula. Ambos parmetros han
sido utilizados en el cuerpo del procedimiento como dos variables ms.

Adems, el propsito del procedimiento Sub ha sido claramente definido: calcular el da de
devolucin. Este procedimiento no hace ni ms ni menos que lo que debe hacer.


n el anterior captulo aprendi a crear procedimientos y a especificar tanto el cdigo
del mismo como la lista de parmetros que tenga definida.

En este captulo vamos a aprender a utilizarlos procedimientos Sub. En la terminologa de
programacin cuando en una parte del cdigo desea utilizar un procedimiento se dice que realiza
una llamada al mismo.

La llamada aun procedimiento Sub es igual que cualquier otra instruccin del lenguaje.
As, para llamar al procedimiento mostrado en el captulo anterior debera escribir la siguiente
lnea.


Calcular Prstamo argnovedad, argda


Como este procedimiento tiene dos parmetros, es necesario llamarlo con dos argumentos:
argnovedad y argdia.

Estos argumentos deben coincidir en la llamada en nmero y tipo con la definicin del
procedimiento. Tanto si especifica en la llamada un nmero distinto de argumentos corno si
alguno de stos no pueden convertirse al tipo declarado en la definicin del procedimiento, se
crear un error de compilacin.
E
9.3. LLAMAR A PROCEDIMIENTOS SUB
Visual Basic 6.0 Microsoft

PAG. 70

Al realizar la llamada CalcularPrstamo argaovedad, argdia, est indicando que se
ejecute el cdigo situado en el cuerpo de dicho procedimiento con los valores que tenga
almacenados en los argumentos argnovedad y argdia. Es decir el parmetro novedad declarado en
la definicin del procedimiento tomar el valor de argnovedad y el parmetro da el valor del
argumento argda.

Por lo tanto necesitar declarar dos variables, del tipo adecuado, en el procedimiento de
evento Click del botn Prestar, para poder llamar al procedimiento CalcularPrstamo.

Recuerde que el procedimiento CalcularPrstamo guardaba el da de devolucin en su
parmetro da. Una vez se ha realizado la llamada dicho valor estar en la variable argda,
declarada en el procedimiento de evento y utilizada como argumento para llamar al
procedimiento.

Para resumir diremos que cuando cree un nuevo procedimiento escribir las lneas de
cdigo necesarias para llevar a cabo el propsito del mismo y especificar la lista de argumentos
que utilizar en su cuerpo.

Sin embargo la llamada al procedimiento ser como una instruccin ms del lenguaje,
donde se especificar el nombre del procedimiento seguido, sin parntesis, de una lnea de
argumentos que deber coincidir en nmero y tipo con los parmetros de la definicin y que darn
valora los parmetros para que se ejecute el cuerpo del procedimiento.

Una vez se llega a la instruccin End Sub del procedimiento, el flujo de ejecucin vuelve a
la lnea siguiente a la que ocasion la llamada.

Es posible que alguno de los argumentos utilizados en la llamada, haya sido modificado en
su valor, pudiendo utilizar el nuevo valor en las lneas de cdigo que siguen a la llamada al
procedimiento.


l concepto de procedimiento es vlido para un procedimiento Function, pero a
diferencia de los procedimientos Sub, un procedimiento Fuction siempre debe
devolver un valor asociado al nombre del mismo.

Por lo tanto, en el cuerpo del procedimiento aparecer una asignacin del valor a devolver
con el nombre del procedimiento.

El uso de los procedimientos Function suele estar ms restringido que el de los
procedimientos Sub.

Un procedimiento Function es utilizado cuando necesitamos obtener un nico valor,
resultado de un clculo o proceso a realizar. Un procedimiento de este tipo no debera realizar ms
que lo que se le pide: ni mostrar mensajes, ni devolver ms valores en los parmetros, etc.

E
9.4.CREAR PROCEDIMIENTOS FUCTION
Microsoft Visual Basic 6.0

PAG. 71

Vamos a sustituir el procedimiento Sub Calcular Prstamo por un procedimiento Function
equivalente. En este caso es casi ms lgico utilizar un procedimiento Function ya que nico que
debe hacer es realizar un clculo y devolver un nico valor.

Las diferencias en la definicin de un procedimiento Sub y otro Function comienzan por la
propia cabecera. As, aunque el procedimiento Function tambin puede tener su lista de
parmetros, no debe aparecer ninguno que sirva para devolver el valor que calcula, ya que dicho
valor debe asociarse con el mismo nombre del procedimiento Function.

Adems, al tener que devolver un valor asociado al nombre del procedimiento Function, el
procedimiento tiene que tener un tipo de datos. Esto se especifica indicando la clusula As Tipo al
final de la cabecera del procedimiento, una vez indicada la lista de parmetros. Si no especifica
ningn tipo de datos, se aplicar la misma regla que con las variables, es decir, tendr el tipo
Variant.

Public Function CalcularPrstamo (novedad AS Bolean) As Date
If (novedad =Ture) Then
CalcularPrstamo =(Date +prstamonovedad)
Else
Calcular Prstamo =(Dare +prstamospelcula)
Endd If
End Function

En la siguiente figura puede ver cmo quedara el procedimiento Function equivalente:

En este captulo ha podido crear un procedimiento Furiction que realiza el mismo proceso
que un procedimiento Sub. Ha conocido las diferencias entre uno y otro tipo de procedimientos en
cuanto a su definicin.

En el prximo captulo aprender las diferencias en cuanto a su llamada.


s como la llamada a un procedimiento Sub es como una instruccin ms del lenguaje,
la llamada a un procedimiento Function suele estar situada como parte de una
expresin y no como una lnea independiente de su cdigo.

Ya que el procedimiento Function devuelve un valor asociado a su nombre, este valor
suele asignarse a alguna variable para poder utilizarlo en el cdigo que ha realizado la llamada.

As, una sentencia como argda= CalcularPrstamo (argnovedad) ser la forma normal
de llamar al procedimiento Function CalcularPrstamo.

Fjese cmo ya no necesitamos el segundo argumento, ya que la definicin del
procedimiento Function slo presenta un parmetro.

A
9.5. LLAMAR A PROCEDIMIENTOS FUNCTION
Visual Basic 6.0 Microsoft

PAG. 72

Si desea utilizar el valor que devuelve el procedimiento Function, como es el caso, deber
encerrar la lista de argumentos, en la llamada, con parntesis. Recuerde que esto no es as en el
caso del procedimiento Sub.

Por ejemplo sera correcto utilizar la llamada al procedimiento Function de la siguiente
forma:


mensaje = "El da de devolucin es: " & CalcularPrstamo (argnovedad)
Esto no podra haberlo hecho utilizando el procedimiento equivalente Sub, ya que ste
acta como una instruccin ms del lenguaje.

Por otra parte, el lenguaje de Visual Basic incorpora un gran nmero de funciones que
puede utilizar directamente en sus proyectos. En este caso no ser necesario realizar la definicin
de las mismas, sino que lo nico que deber hacer es llamarlas correctamente.

Utilice el si sistema de ayuda para conocer las numerosas funciones que tiene disponible.
Algunas de ellas, como MsgBox,InputBox, Date, etc. ya las ha utilizado a lo largo del curso.


la hora de escribir la definicin de un procedimiento Sub o Function puede
especificar como se pasan los parmetros de su lista de parmetros: por valor o por
referencia.

Cuando el paso es por valor, se utiliza la palabra clave ByVal antecediendo al nombre del
parmetro en la definicin del procedimiento. En este caso el procedimiento recibe una copia del
argumento utilizado en la llamada y no el mismo argumento. Si realiza cambios en su valor, estos
cambios podrn ser utilizados en el interior del procedimiento, pero no afectarn para nada a la
variable que acta como argumento en la llamada.

As, si en la definicin del procedimiento Sub CalcularPrestmo, hubiera insertado la
palabra ByVal: Sub CalcularPrstamo(argnovedad As Boolean, By Val argda As Date), no
podra haber comunicado el da de devolucin, ya que al final del la ejecucin del procedimiento
argda mantendra el mismo valor que tena antes de utilizarse como argumento en la llamada a
dicho procedimiento.

La otra forma de realizar el paso de parmetros es por referencia. En este caso no se
necesita especificar ninguna palabra clave, aunque tambin puede hacerlo con la palabra ByRef.


s una buena estrategia de programacin laocultacin de datos, en el sentido de que
no todas las partes del cdigo escrito deben conocer las interioridades de otras partes
de cdigo, sino slo lo que necesitan utilizar.
A
E
9.6. PASO DE PARMETROS
9.7. MBITO DE ACTUACIN
Microsoft Visual Basic 6.0

PAG. 73


Cuando su proyecto est compuesto por distintos mdulos, ya sean de formulario, de clase
o mdulos generales de Visual Basic, es importante delimitar dnde se pueden utilizar y dnde no,
los procedimientos, variables y constantes que tenga definidos o declaradas.

El nivel de ocultacin es establecido por el programador al declarar variables y constantes
o al de definir procedimiento, utilizando las palabras Public y Private.

Una declaracin de variables del tipo Public NombreVariable As Tipo indica que dicha
variable puede ser utilizada tanto en el mdulo donde se realiza la declaracin como en el resto de
mdulos de la aplicacin.

Sin embargo, si la declaracin fuera como PrivateNombreVariable AsTipo, dicha
variable slo podra ser conocida y por lo tanto utilizada, en el mismo mdulo donde se declara.

El uso de las palabras Public y Private tambin puede aplicarse a la definicin de los
procedimientos: Public [Sub/Function] NombreProcedimiento () o Private [Sub/Function]
NombreProcedimiento(). El significado es el mismo.

Un caso especial se encuentra cuando declaramos variables en el interior de un
procedimiento. En estos casos, dichas variables slo pueden ser conocidas por el propio
procedimiento, por lo que no es vlida la declaracin Public de stas.

Adems, si existe conflictos de nombre, al haber declarado dos variables con el mismo
nombre, una a nivel de mdulo y otra a nivel del procedimiento, siempre tendr preferencia la ms
local, es decir, la declarada a nivel de procedimiento.

Al utilizar Dim en la declaracin de variables, en lugar de Private o Public, la visibilidad
de dichas variables es la que deban tener por defecto: a nivel de mdulo est visible para todos los
procedimientos del mdulo y a nivel de procedimiento slo para ste.

Finalmente, puede utilizar variables, constantes y procedimientos que estn declaradas o
definidos en distintos mdulos. Para ello deber utilizar el nombre del mdulo para que no exista
confusin. Si la variable o procedimiento deseado se encuentra en un mdulo general, no ser
necesario incluir el nombre del mdulo a no ser que desee evitar conflictos de nombre.

As, si ha declarado la variable x en el mdulo Form1 y la variable x en el mdulo Form
2, deber utilizar el nombre Form.x o Form2.x para poder utilizar una u otra variable, siempre
que sean pblicas. El mismo razonamiento es aplicable a los procedimientos situados en distintos
mdulos.








Visual Basic 6.0 Microsoft

PAG. 74

















































Microsoft Visual Basic 6.0

PAG. 75

Efectos Grficos


a incorporacin de elementos grficos a sus aplicaciones, harn que stas sean ms
agradables a los usuarios.

La impresin externa de su aplicacin es muy importante, sobre todo al estar inmersa en
un sistema operativo cuya interfaz de usuario es grfica.

Visual Basic incorpora una serie de controles grficos que permiten la incorporacin de
elementos de este tipo a sus formularios. En este captulo aprender a utilizar el control Line para
dibujar lneas.

Si desea agregar lneas a sus formularios, Visual Basic le facilita el control Line en la caja
de herramientas.

Este control tiene pocas propiedades, pudiendo establecer el grosor mediante la propiedad
Border With o el color de la misma mediante BorderColor.

Tambin podr cambiar el estilo de lnea, de forma que aparezca discontinua o a puntos
mediante la propiedad BorderStyle.

El resto de propiedades son poco interesantes. En (X1, Y1) tiene el punto inicial y en
(X2,Y2) el punto final de la lnea.


isual Basic permite dibujar distintas formas a travs del control Shape (Forma).
Utilizando dicho control podr dibujar un crculo, un valo, un rectngulo, un
cuadrado, etc.

Aunque no existe un gran nmero de posibilidades, es recomendable utilizar estos
elementos con el objetivo de destacar aquello que ms le interese o por simple carcter esttico.

Podr dibujar formas en sus formularios a travs del botn de la caja de herramientas.

La apariencia inicial del objeto Shape es la de un rectngulo. Dicha caracterstica se
establece a travs de la propiedad Shape.

Utilizando la propiedad Shape podr dibujar cinco formas distintas: rectngulo
(Rectangle), cuadrado (Square), valo (Oval), crculo (Circle), rectngulo con esquinas
redondeadas (Rounded Rectangle) y cuadrado con esquinas redondeadas (Rounded Square).

L
V
10.2. EL CONTROL SHAPE
10.1. EL CONTROL LINE
Visual Basic 6.0 Microsoft

PAG. 76

Otras propiedades interesantes de este control se refieren al relleno de las formas. Con la
propiedad FillStyle podr indicar un patrn de relleno, es decir, si desea que la forma dibujada
aparezca rellena de lneas verticales, horizontales, etc.

Tambin, mediante FillColor podr establecer el color de dicho relleno. O cambiar el
color del borde de la forma, mediante BorderColor, como si fuera un control Line


n muchas ocasiones habr podido practicar el arrastre de objetos en las aplicaciones
Windows. Esta es una caracterstica muy utilizada que permite la realizacin, de una
forma rpida, de procesos que de otra forma pueden necesitar varias acciones para llevarse a cabo.

Visual Basic permite que el programador indique cundo y cmo un control puede ser
arrastrado con el ratn por la ventana en la que se encuentra.

Los controles situados en dicha ventana podrn darse cuenta que un determinado control
est siendo arrastrado por encima de ellos, presintindoles responder de la forma adecuada.

Si desea permitir que el usuario pueda arrastrar un control en tiempo de ejecucin tiene
dos posibilidades: realizar un arrastre automtico o controlar cundo debe empezar dicho arrastre.
Esto se controla mediante la propiedad DragMode del objeto que desea arrastrar.

Esta propiedad tiene dos valores: manual y automtico. En el primer caso deber ser
usted quien controle cundo debe permitirse arrastrar un control. Normalmente esto depender de
alguna circunstancia que ser comprobada cuando se pulse en dicho control, es decir, en el evento
MouseDown.

Si DragMode se establece a automtico, el usuario podr arrastrar el control sin necesidad
de que usted programe nada ms. En este caso, perder control sobre el arrastre, pero ser mucho
ms sencillo de programar.

Otra circunstancia que debe tener en cuenta al arrastrar un objeto por la ventana en tiempo
de ejecucin, es el aspecto que tendr el puntero del ratn cuando lo haga.

Si no especifica nada en la propiedad DragIcon, Visual Basic muestra un icono como
puntero del ratn que es el contorno del objeto arrastrado. Normalmente le interesar mostrar un
icono distinto, indicando la accin de arrastrar el objeto.

DragMode y DragIcon son las dos propiedades que debe tener en cuenta a la hora de
permitir el arrastre de objetos en su aplicacin. Por otra parte, el evento a tener en cuenta es
DragOver.

El evento DragOver sucede cuando el usuario arrastra un objeto por encima de otro. Es
este ltimo, es decir, el destino, el que reconoce el evento DragOver.

E
10.3. ARRASTRAR CON EL RATN
Microsoft Visual Basic 6.0

PAG. 77

El procedimiento de evento DragOver trabaja con cuatro parmetros: Source, X, Y y
State. El parmetro Source representa el control que est siendo arrastrado, siendo X e Y la
posicin exacta en la que se encuentra.

El parmetro State indica si el movimiento del ratn, al realizar el arrastre, es para entrar
en el objeto destino o para salir del mismo. Todos estos parmetros estn situados en la cabecera
del procedimiento DragOver.

Si State tiene el valor 0, entonces el movimiento del objeto que est siendo arrastrado es
para entrar en el objeto que reconoce el DragOver. En el caso de que State sea igual a uno, el
movimiento de arrastre es hacia afuera, es decir, saliendo. Utilizando el valor de este parmetro
podr decidir que debe ocurrir. Por ejemplo, le puede interesar cambiar el icono de un control
imagen destino, etc.

Por lo tanto recuerde: establezca la propiedad DragMode y DragIcon del objeto que va a
ser arrastrado y utilice el evento DragOver del objeto destino del arrastre.

IDENTIFICAR OBJETOS MEDIANTE LA PROPIEDAD TAG

En muchas ocasiones le interesar poder identificar un determinado objeto en tiempo de
ejecucin. Para ello, existe una propiedad que, establecida en tiempo de diseo le permite
identificar los objetos en ejecucin, dicha propiedad es Tag.

Al establecer una cadena descriptiva en tiempo de diseo en la propiedad Tag, usted podr
consultar dicha propiedad y dependiendo de su valor, realizar una accin u otra.


uando el usuario pulsa con el ratn en un objeto y lo mueve, est haciendo un arrastre
o drag del objeto.

Cuando decide soltar el botn del ratn se dice que est colocando el objeto o que est
haciendo un drop del mismo. Cuando esto sucede, el evento DragDrop es generado y reconocido
por el objeto sobre el que se ha soltado.

Es posible que el usuario suelte el botn del ratn sobre otro objeto dibujado o que lo haga
en una zona del formulario vaca. En este ltimo caso es el formulario el que reconoce el evento
DragDrop, mientras que en el primer caso, es el objeto sobre el que se ha soltado.

El procedimiento DragDrop posee en su cabecera tres parmetros que tienen el mismo
significado que en el caso de DragOver Source X eY.

Usted debe decidir qu sucede cuando el usuario arrastra un objeto y lo suelta sobre otro.
El hecho de soltarlo en una posicin distinta a la que se encontraba no implica absolutamente
nada, es decir, el objeto lo cambiar de posicin si no lo indica usted expresamente a travs de la
programacin.
C
10.4. COLOCAR CON EL RATN
Visual Basic 6.0 Microsoft

PAG. 78

En el siguiente procedimiento de evento DragDrop se indica qu debe ocurrir cuando
soltamos el objeto identificado con la cadena Disquete en su propiedad Tag:


Private Sub imgDestino_DragDrop (Source As Control, X As
Single, Y As Single)
If Source.Tag = "Disquete" Then
imgDestino.Height = imgDestino.Height + 150
imgDestino.Width = imgDestino.Width + 150
Source.Visible = False
End If
End Sub


En este caso se aumentar el tamao del control destino, hacindolo a travs de sus
propiedades Height (altura) y Width (anchura) y no se mostrar en pantalla el objeto arrastrado,
al poner su propiedad Visible a False..

Para Finalizar, vale la pena comentar que puede desear mover un objeto en tiempo de
ejecucin arrastrando y soltndolo en la nueva posicin. Para ello podr utilizarlos parmetros del
procedimiento DragDrop y el mtodo Move.

As podra incluir una instruccin del tipo Source.MoveX,Y en el procedimiento
DragDrop, con lo que movera el objeto arrastrado a la nueva posicin especificada por (X,Y).
























Microsoft Visual Basic 6.0

PAG. 79

El Administrador Visual de Datos


on esta leccin comienza el tratamiento de las bases de datos en Visual Basic. Este
entorno de desarrollo est especialmente enfocado a la creacin de aplicaciones de
bases de datos.

Si usted ha elegido Visual Basic como lenguaje de programacin habr sido,
fundamentalmente, por la facilidad que presenta en el control de distintos orgenes de bases de
datos.

Visual Baste puede acceder a distintos formatos de bases de datos. El acceso ms sencillo
es a una base de datos creada con el Motor Jet que incorpora Visual Basic y que es compartido
por Access. Es decir, s usted crea una base de datos en Access o en el Administrador visual de
datos de Visual Basic, el acceso a la misma ser inmediato.

Otro tipo de bases de datos a las que podr acceder sin ms en Visual Basic, son las
llamadas bases de datos ISAM (Mtodo de Acceso Secuencial Indexado) entre las que se
incluyen bases de datos de Btrive, dBASE, FoxPro y Paradox.

El otro tipo de acceso ms comn es a una base de datos compatible con ODBC
(Conectividad abierta de bases de datos), en las que es necesario un controlador ODBC para el
tipo especfico de base de datos. Si posee dicho controlador, el acceso tambin ser inmediato a
travs del mismo.

En esta leccin aprender a trabajar con el Administrador de datos incorporado en Visual
Basic para crear nuestra base de datos. En lecciones posteriores aprender a utilizar dicha base de
datos tanto para mostrar la informacin que almacena como para extraer resultados de la misma.

A partir de ahora se supone que el alumno ya tiene ciertos conocimientos sobre bases de
datos, en especial con la tecnologa de bases de datos relacionales. Si no es as, debera pensar
hacer el curso sobre Access que tenemos disponible.


n el resto del curso accederemos a un slo tipo de bases de datos: las creadas con el
Motor Jet incorporado en Visual Basic y compartido por Access.

Visual Basic 6.0 incorpora la versin 3.51 del Motor J et de bases de datos (para 32 bits).
Este Motor J et es un completo Sistema Gestor de Bases de Datos con el que podr crear y
manipular una base de datos.

C
E
11.2. DISEAR LA BASE DE DATOS
11.1. INTRODUCCIN
Visual Basic 6.0 Microsoft

PAG. 80

La creacin de una base de datos es un proceso en el que se pueden diferenciar dos partes:
el anlisis y el diseo.
Usted realizar el anlisis de la base de datos cuando piense qu necesita almacenar para
tenerlo disponible siempre que lo desee.

Piense por ejemplo en la aplicacin del videoclub: necesitar guardar informacin sobre
los socios, sobre las pelculas, sobre los prstamos, etc. Dicha informacin debe permanecer
aunque usted salga de la aplicacin o apague el ordenador.

El segundo paso es el diseo de la base de datos. Este proceso es dependiente del tipo de
base de datos que vaya a utilizar. En la actualidad no existen dudas: utilizar el tipo relacional.

Al crear una base de datos relaciona tendr que trabajar con tablas, registros, campos,
ndices, relaciones, etc.


isual Basic incorpora el Administrador visual de datos con el que podr crear y
establecer las propiedades de las tablas que con formen su base de datos.

Sin embargo, si posee Microsoft Access es recomendable utilizarlo en lugar del
Administrador de datos, ya que generar el mismo tipo de bases de datos pero con una facilidad y
flexibilidad mucho mayor.

Para acceder al Administrador visual de datos utilice la opcin de mismo nombre en el
men Complementos.

A travs de esta opcin accede al Administrador de datos, que es una aplicacin
independiente, pudiendo utilizarla desde fuera de Visual Basic.

El Administrador de datos permite modificar una base de datos ya creada o crear una
nueva.

Una base de datos creada con
el Motor jet est compuesta por un
nico archivo, de extensin .MDB.
Tanto si la crea con el Administrador
de datos como con Access el resultado
ser el mismo.

Una base de datos, MDB se
compone de un conjunto de tablas y
de QueryDef. Las tablas sol la
estructura fundamental de la base de
datos, formadas por los distintos
V
11.3. CONOCER EL ADMINISTRADOR
Microsoft Visual Basic 6.0

PAG. 81

campos y sus valores en los registros introducidos.

Las QueryDef son instrucciones SQL, que veremos posteriormente, que han sido
guardadas con un nombre al tener inters en utilizarlas en futuras ocasiones.

En una leccin posterior aprender ms sobre el lenguaje de consulta SQL, por ahora sepa
que SQL es un lenguaje que permite, entre otras cosas, extraer resultados de una base de datos.



Para ver o modificar el diseo o de una determinada tabla, pulse con el botn derecho del
ratn sobre el nombre de la tabla y seleccione Disear..., entonces estarn disponible el conjunto
de campos que posee la tabla, adems de las principales propiedades de estos campos.

Podr crear nuevos ndices para la tabla o modificar los ya existentes. Utilice el botn
Agregar ndice de esta ventana.

Otro aspecto importante en la estructura de la base de datos es el conjunto de relaciones
que se hayan establecido.







Visual Basic 6.0 Microsoft

PAG. 82



o primero que debe hacer al crear una base de datos es indicar donde se guarda el
archivo de la misma y darle un nombre vlido.

Es una buena idea tener todos los archivos que vaya generando su proyecto de Visual
Basic en la misma carpeta, incluyendo el archivo de base de datos que respalde la aplicacin.

Una vez ha creado el archivo de base de datos, es el momento de ir creando las tablas que
constituirn la misma.

Utilice el men contextual de la Ventana de base de datos para crear nuevas tablas.


Deber introducir el nombre de la nueva
tabla, los campos que la constituyen as como su
tipo y tamao. Puede utilizar ms de una palabra
para los nombres de los campos, de forma que el
nombre sea lo suficientemente descriptivo. Es
mejor Registro pelcula que RegPel, por ejemplo.

En cuanto a los tipos de datos disponibles,
decir que aparecen los tpicos de las bases de datos
como: Booleano (verdadero/falso), numrico, flecha, texto, etc.

Es posible, por ejemplo, que desee crear un campo de tipo contador. Estos campos son de
tipo numrico, pero es el sistema el que se encarga de generarlos, asegurando as la unicidad de
dichos valores. Deber seleccionar un campo de tipo Long y activarla casilla AutoIncrField.

L
11.4. CREAR LA BASE DE DATOS
Microsoft Visual Basic 6.0

PAG. 83




Tambin podr establecer propiedades ms avanzadas como: reglas de validacin, valores
por defecto (predeterminado), etc.


l siguiente paso a dar debe ser la creacin de ndices. Sobre todo es muy importante
establecer la clave principal de la tabla, es decir, aquella cuyo valor ser nico para
todos los registros de la misma.

Utilice el botn Agregar ndices del cuadro Estructura de tabla de la base de datos y
agregue o elimine los ndices necesarios.

Al crear un ndice, debe indicar el nombre con el que se conocer y podr ser utilizado en
el cdigo escrito en Visual Basic, los campos de la tabla que constituirn dicho ndice y otras
caractersticas como la necesidad de introducir un valor en un campo siempre que se cree nuevo
registro (casilla Required)o la obligatoriedad de que no existan dos o ms registros con el mismo
valor en dicho campo (casilla nico).



Es importante que se d cuenta de
la jerarqua que existe al crear una base
de datos. Una base de datos est
constituida por un conjunto de tablas y de
QueryDef. Y las tablas, a su vez, estn
constituidas por conjuntos de campos.
Adems cada tabla tiene su
correspondiente conjunto de ndices...


E
11.5. CREAR NDICES
Visual Basic 6.0 Microsoft

PAG. 84

A continuacin se muestra el esquema de la base de datos Videoclub.mdb, utilizada a lo
largo del curso.

TABLA ACTORES

- Campos:

Nombre del campo Tipo de datos Tamao
Nombre actor Texto 100
Registro pelcula Entero largo 4

- ndices:

Nombre del ndice Campos que intervienen Clave principal
Clave principal (Nombre actor,
Registro pelcula) S
PELICULASACTORES Registro pelcula No


TABLA PELCULAS

- Campos:

Nombre del campo Tipo de datos Tamao
Registro pelcula Entero largo (contador) 4
Ttulo Texto 150
Director Texto 100
Productor Texto 100
Pblico Texto 25
Gnero Texto 50
Ao Texto 4

- ndices:

Nombre del ndice Campos que intervienen Clave principal
Clave principal Registro pelcula Si












Microsoft Visual Basic 6.0

PAG. 85


TABLA PRSTAMO

- Campos:

Nombre del campo Tipo de datos Tamao
Registro pelcula Entero largo 4
Nif Texto 13
Fecha prstamo Fecha/Hora 8
Fecha devolucin Fecha/Hora 8
Devuelto Booleano 1

- ndices:

Nombre del ndice Campos que intervienen Clave principal
Clave principal (Registro pelcula, Nif
Fecha prstamo) Si
PELCULASPRSTAMO Registro pelcula No
Prstamo Nif Nif No
Prstamo Registro Registro pelcula No
SOCIOSPRSTAMO Nif No


TABLA SOCIOS

- Campos:

Nombre del camp Tipo de datos Tamao
Nif Texto 13
Nombre Texto 100
Apellidos Texto 100
Direccin Texto 255
Telfono Texto 25
Fecha introduccin Fecha/Hora 8

- ndices:

Nombre del ndice Campos que intervienen C lave principal
Clave principal Nif Si









Visual Basic 6.0 Microsoft

PAG. 86

















































Microsoft Visual Basic 6.0

PAG. 87

Acceso a base de datos


n este captulo aprender a utilizar el control Data para crear sencillas aplicaciones de
bases de datos.

Con dicho control podr acceder a una base de datos, mostrar la informacin que sta
posea, modificarla e incluso introducir nuevos registros en alguna de sus tablas. Todo sin
programar ni una lnea de cdigo.

El control Data permite establecer la conexin con la base de datos a utilizar y a partir de
entonces cualquier tabla o consulta de dicha base de datos est disponible en su aplicacin.

Los pasos a seguir para utilizar una base de datos en su aplicacin Visual Basic son:

1. Dibujar un control Data y establecer la conexin a la base de datos apropiada.

2. Utilizar otros controles para manejar la informacin almacenada en la base de datos.
Estos controles son conocidos corno controles enlazados, al depender del control Data como
origen de los datos que muestran.

Para dibujar un control Data en su formulario, utilice el botn situado en la caja de
herramientas de Visual Basic.

El control Data tiene cuatro botones al estilo de un reproductor de vdeo. Con los botones
podr acceder al anterior y posterior registro, respectivamente. Con los botones
acceder al primer y ltimo registro.

Las propiedades del control Data que debe establecer para crear la conexin con la base de
datos son:

Connect: indica el tipo de base de datos a la que vamos a acceder. Por omisin este tipo
es Access, es decir, una base de datos creada con el Motor jet como aprendi en la leccin
anterior.

DatabaseName: en esta propiedad se indica el archivo de bases de datos a la que se quiere
acceder. Indicando la ubicacin exacta de dicho archivo.

RecordSource: permite indicar el conjunto de datos especfico, de la base de datos
indicada en la anterior propiedad, al que queremos acceder. Normalmente ser el nombre
de una tabla de la base de datos o una instruccin SQL.

Estableciendo adecuadamente el valor de estas tres propiedades se crea la conexin con la
base de datos, no es necesario absolutamente nada ms.

E
12.1. EL CONTROL DATA
Visual Basic 6.0 Microsoft

PAG. 88

Si conoce la base de datos y el conjunto de datos a los que desea acceder en tiempo de
diseo, podr utilizar la ventana Propiedades para establecer estas propiedades, en caso contrario
lo podr hacer en el cdigo que escriba.

CUIDADO CON LA PROPIEDAD DATABASENAME

Hay que tener mucho cuidado al establecer la propiedad DatabaseName. Si indica en esta
propiedad una ubicacin especfica del disco duro, entonces esta propiedad seguir teniendo ese
valor al crear el fichero ejecutable de la aplicacin.

Fjese que la aplicacin ser ejecutada en los equipos de los usuarios finales, por lo que
seguramente se producir un error en tiempo de ejecucin al no poder encontrar la ubicacin
especificada en DatabaseName.

Por ello, cuando vaya finalizando la aplicacin, es conveniente utilizar el nombre del
directorio donde se instalar la aplicacin en la propiedad DatabaseName, en lugar de un valor
especfico. Esto lo podr conseguir de la siguiente forma en su cdigo:
DatabaseName = App.path & "\" & NombreBasedeDatos
donde se utiliza el directorio en el que se encuentra la aplicacin (se supone que no es el directorio
raz), representada aqu por el objeto App. El archivo de bases de datos especificado deber estar
en este directorio.

Al instalar la aplicacin en el equipo del usuario final, dicho directorio se actualizar con
la eleccin efectuada por el usuario. En la ltima leccin del curso podr encontrar ms detalles
sobre los programas de instalacin.


na vez establecida la conexin a la base de datos e indicado el conjunto de datos a los
que vamos a acceder mediante el control Data, es necesario utilizar otros controles
para mostrar o introducir dicha informacin.

Estos controles son conocidos como controles enlazados, ya que el origen de la
informacin que muestran est ligado (o enlazado) a un determinado control Data.

Existen dos propiedades que deber modificar para enlazar controles con el control Data:
DataSource y DataField.

DataSource: en esta propiedad indicaremos el control Data que actuar como origen de
datos.

DataField: campo especfico al que se enlazan el control.





U
12.2. CONTROLES ENLAZADOS
Microsoft Visual Basic 6.0

PAG. 89

Por ejemplo:


txtNif.DataSource = datSocios
txtNif.DataField = "Nif"


indica que se ligue el control txtNif al campo Nif de la tabla SOCIOS, a la que se accede
mediante el control Data datSocios. Este control deber tener correctamente establecidas las
propiedades Connect, DatabaseName y RecordSource.


l utilizar un control Data y establecer la conexin con la base de datos, est indicando
el conjunto de datos sobre los que quiere tener acceso. En Visual Basic a dicho
conjunto de datos se llama Recordset, siendo una propiedad del control Data.

En Visual Basic 6.0 existen tres tipos de Recordscts: Table, Dynaset y Snapshot. Dicho
tipo se establece mediante la propiedad RecordsetType del control Data, que
predeterminadamente tiene el valor Dynaset.

Un recordset del tipo Dynaset es un conjunto dinmico de registros que representa una
determinada tabla o el resultado de una consulta, segn se haya establecido la propiedad
RecordSource del control Data. Puede agregar nuevos registros, modificar los existentes e incluso
eliminar registros y todos estos cambios se reflejarn en la base de datos afectada.

Un recordset de tipo Table representa una determinada tabla de la base de datos. Al crear
un recordset de este tipo estar representando dicha tabla, cargndose en memoria un slo registro,
que se corresponde con el registro actual. Toda modificacin que realice, incluida la eliminacin o
introduccin de nuevos registros, se ver reflejada en la tabla.

Finalmente el tipo Snapshot crea una copia esttica del conjunto de datos al que se accede
mediante el control Data. En este caso no podr actualizar la base de datos sino slo mostrar los
datos accedidos.

Tanto el tipo Dynaset como el Snapshot permiten acceder a datos de ms de una tabla, no
as el tipo Table en el que slo podr trabajar con una tabla.









A
12.3. RECORDSETS
Visual Basic 6.0 Microsoft

PAG. 90


i crea un recordset ya sea del tipo Dynaset o del tipo Table, podr realizar
modificaciones en la base de datos subyacente sin tener que programar una lnea de
cdigo.

Al ejecutar la aplicacin, podr desplazarse a travs de los registros utilizando el control
Data y, cualquier modificacin que realice en dichos registros se ver reflejada en la base de datos
al acceder a un nuevo registro.

Adems, podr comprobar, mediante la propiedad DataChanged de un control enlazado,
si el valor mostrado por dicho control ha sufrido modificaciones respecto al valor original. En
caso afirmativo, dicha propiedad tendr el valor True.


ambin podr agregar nuevos registros a una base de datos sin tener que programar
para ello. En este caso deber situarse en el ltimo registro y moverse al siguiente.

Si establece correctamente la propiedad EOFAction, al realizar dicha accin, se crear un
nuevo registro en el que podr introducir la nueva informacin.

La propiedad EOFAction del control Data de Visual Basic 6.0 que puede tener tres
valores: Move Last, EOF o Add New. Esta propiedad permite establecer lo que ocurre cuando se
llega al final del recordset del control Data.

Si EOFAction tiene el valor MoveLast, entonces mantiene el ltimo registro como
registro actual, sin desplazarse al siguiente, que no existe, aunque pulsemos el botn del control
Data para desplazarnos al prximo registro.

Si el valor es EOF, deja el registro actual invalidado (ya que dicho registro todava no
existe) y desactiva el botn que permite desplazarnos al siguiente registro. Deber controlar esta
situacin en su cdigo ya que cualquier intento de acceder a la informacin del registro actual
producir un error al no ser un registro vlido.

Si posee el valor AddNew entonces cuando se desplace ms all del ltimo registro,
Visual Basic crear un registro nuevo en la base de datos, donde podr introducir la nueva
informacin.

Este ltimo valor, Add Nex es el que permite aadir registros a la base de datos
(especficamente a una tabla de la base de datos) sin tener que programar para ello. Recuerde que
para crear un nuevo registro deber sobrepasar el ltimo registro que tenga en esos momentos
entonces Visual Basic limpiar el valor de los controles enlazados permitindole introducirla
informacin del nuevo registro. Cuando se mueva a otro registro, se aadir a la base de datos.

S
T
12.4. MADIFICAR LA BASE DE DATOS
12.5. AADIR REGISTROS
Microsoft Visual Basic 6.0

PAG. 91

Al igual que se puede indicar qu debe ocurrir cuando se llega al final de un recordset
tambin podr hacerlo cuando se llega al principio mediante la propiedad BOFAction del control
Data.

Utilice el sistema de ayuda para informarse al respecto.

En esta leccin ha aprendido a utilizar el control Data para modificar y aadir datos a una
base de datos sin tener que programar ni una lnea de cdigo. En la prxima leccin aprender a
programar el control Data para realizar dichas operaciones de una forma ms controlada y
flexible.






































Visual Basic 6.0 Microsoft

PAG. 92
















































Microsoft Visual Basic 6.0

PAG. 93

Programar con la base de datos


En la leccin anterior aprendi a acceder a una base de datos sin necesidad de programar,
slo estableciendo las propiedades oportunas del control Data.

En esta leccin aprender a escribir cdigo para realizar procesos que ya hizo en la
anterior leccin, pero de una forma ms flexible y potente.

El control Data nos permite movernos por el Recordset de una forma rpida y sencilla a
travs de sus botones. Sin embargo, en muchas ocasiones desear escribir cdigo en el que es
necesario moverse a un determinado registro rpidamente.

Para ello es necesario entender que aunque un Recordset es una propiedad de un control
Data, tambin tiene carcter de objeto como s mismo, por lo que sern aplicables otras
propiedades y mtodos.

La forma de hacerlo ser con la sintaxis estndar:


Nombre.ControlData.Recordset.NombrePropiedad
NombreControlData.Recordset.NombreMtodo


donde tanto NombrePropiedad como NombreMtodo son del Recordset y no del control
Data.

A continuacin resumimos los mtodos que puede utilizar para desplazarse por el
Recordset.

MoveFirst: nos desplazamos al primer registro del recordset. Este mtodo es equivalente
a pulsar en el botn del control Data.
MovePrevious: permite desplazarse al registro anterior del Recordset. Equivalente a
pulsar en el botn del control Data.
MoveNext: permite desplazarse al registro siguiente del recordset. Equivalente a pulsar en
el botn del control Data.
MoveLast: nos desplazamos al ltimo registro del recordset. Este mtodo es equivalente a
pulsar en del control Data.
Move filas [,inicio]: permite desplazarnos un nmero especfico de registros hacia delante
o hacia atrs respecto del marcador inicio.

Podr utilizar dichos mtodos del Recordset para desplazarse por los registros que
muestran los controles enlazados.

13.1. MOVERSE POR EL RECORDSET
Visual Basic 6.0 Microsoft

PAG. 94

El Recordset contiene un registro actual que es aquel cuya informacin se muestra en los
controles enlazados.

Al utilizar los mtodos comentados anteriormente o al hacer uso de los botones
equivalentes del control Data, desplaza el registro actual, movindose en el recordset. Por ello
cada vez que desplace el registro actual deber consultar las propiedades BOF y EOF del
recordset para comprobar si el registro al que se mueve es un registro vlido.

Como puede comprobar en la figura, existe un marcador BOF
que le india que se encuentra al principio del recordset y otro EOF que
le indica que est al final del recordset.

Si sita el registro actual en dichos marcadores, no se producir
error pero no deber intentar acceder a la informacin del registro
actual ya que no es un registro vlido.

Si sobrepasa dichos marcadores, producir un error en tiempo
de ejecucin. Utilice las propiedades BOF y EOF para prevenir este
tipo de errores.

La accin indicada por el valor de las propiedades BOFAction y EOFAction del control
Data, se ejecutan cuando el registro actual se sita en los marcadores BOF y EOF,
respectivamente.


n muchas ocasiones desear encontrar un registro determinado. Para localizar registros
puede utilizar los mtodos Find cuando trabaje con recordsets de los tipos Dynaset o
Snapshot, o utilizar el mtodo Seek para un recordset del tipo Table.

Todos estos mtodos son mtodos del objeto Recordset.

El mtodo Find presenta cuatro variantes: FindFirst, FindLast, FindNext y
FindPrevious.

FindFirst busca el primer registro que cumpla un determinado criterio; FindLast busca
el ltimo que lo cumpla; FindNext y FindPrevious siguen la bsqueda hacia delante o hacia
atrs.

Para que pueda seguir mejor el curso en pantalla, en la figura siguiente se muestra el
formularlo (y el nombre de cada control) que es utilizado en este y el prximo captulo. El
formulario permite prestar pelculas.





E
13.2. BUSCAR REGISTROS
Microsoft Visual Basic 6.0

PAG. 95




Como podr imaginar. Cuando se realiza un prstamo de cierta pelcula, ser necesario
controlar que la persona que se la lleva existe en nuestra base de datos. Es decir, necesitaremos
buscar un registro especfico en la tabla SOCIOS.

Por ello se ha insertado en el formulario el control Data datSocios, que permite acceder a
la tabla SOCIOS de la base de datos (estableciendo las propiedades DatabaseName y
RecordSource).

Es recomendable consultar el manual, en la leccin 12, para ver la estructura de la tabla
SOCIOS.

Antes de hacer todo esto, necesitare lleva la pelcula es un socio vlido.

Para ello se utiliza el siguiente cdigo:


With datSocios
.Recordset.FindFirst Nif =& txtNumsocio.Text&`
lf. Recordset.NoMatch Then
MsgBox Lo siento, no es un socio vlido."
ExitSub
End If
EndWith


Mediante el uso de la estructura With se ahorra el tener que teclear mucho cdigo. As, en
este caso y hasta que se indique el fin de la estructura con End With, no ser necesario incluir la
palabra datSocios en el cdigo.

En la lnea. Recordset.FindFirstNif='& txtNumsocio.Text es donde se realiza la
bsqueda de un determinado registro del recordset.

Fjese cmo, si no hubiese utilizado la estructura With, tendra que haber escrito el nombre
del control data: datSocios.Recordset.FindFirstNif= ` & txtNumsocio.Text &

Visual Basic 6.0 Microsoft

PAG. 96

Al utilizar el mtodo FindFirst del recordset, est indicando que se busque el primer
registro del recordset cuyo valor en el campo Nif coincide con el valor que se ha introducido en el
cuadro de texto txtNumsocio, donde el usuario de la aplicacin introducir el Nif del socio.

Si comprueba la estructura de la tabla SOCIOS, ver cmo el campo Nif es un campo de
texto, por lo que es necesario que al realizar el criterio de comparacin, en cerremos entre
apstrofos(') el valor buscado. Si el valor de comparacin fuera numrico, no hara falta utilizar
estos apstrofos. El criterio en si encierra entre comillas dobles().

Por otra parte, fjese en el uso del operador concatenacin & para crear el criterio de
bsqueda. Si por ejemplo, se hubiera introducido el Nif 00.000.001-A en el cuadro de texto, esta
lnea quedara de la siguiente forma:

datSocios.Recordset.FindFirstNif ='00.000.001-A

Seguidamente se utiliza el mtodo Nomatch del Recordset para comprobar, una vez
realizada la bsqueda, si se ha encontrado algn registro o no. Si no se ha encontrado, el mtodo
Nomatch devolver True por lo que se mostrar un mensaje mediante MsgBox y se saldr
inmediatamente del procedimiento, utilizando ExitSub.

En este caso es lgico que si el nmero de socio no existe en nuestra base de datos,
salgamos inmediatamente del procedimiento, sin realizar el prstamo de la pelcula.

Fjese cmo no ha sido necesario utilizar el nombre del control datSocios en las lneas
situadas entre With y End With.

En el caso de encontrar el socio, el mtodo Nomatch devolver el valor False, por lo que
no entraremos en la estructura If-Then sino que seguiremos con el resto del procedimiento.


i recuerda la leccin anterior, poda utilizar el valor AddNew propiedad EOFAction
del control Data para agregar nuevos registros a una tabla.

Esta forma, aunque muy sencilla, slo es adecuada cuando estamos accediendo a una nica
tabla en el recordset.

El objeto Recordset contiene el mtodo AddNew que permite la creacin de un registro
nuevo (en blanco) donde podr asignar los valores a sus campos.

Una vez introducida dicha informacin, deber hacer uso del mtodo Update del
Recordset, con el objetivo de que el nuevo registro se actualice en la tabla. Si no utiliza Update, el
nuevo registro no se agregar finalmente.

En el formulario Prestar pelculas se ha dibujado un control Data que nos permite tener
acceso a la tabla PRSTAMO de la base de datos. El control tiene el nombre datPrstamo y ser
S
13.3. AADIR REGISTRO
Microsoft Visual Basic 6.0

PAG. 97

utilizado para agregar los prstamos que se vayan sucediendo. Estudie la estructura de la tabla
PRSTAMO si es necesario.

Veamos qu cdigo debe aadir al procedimiento de evento CIick del botn Prestar para
agregar un nuevo registro a la tabla PRSTAMO.

Una vez calculado el da de devolucin de la pelcula y validado el socio que se la lleva, es
el momento de realizar el prstamo en s:


'Agregar a la tabla PRSTAMO el nuevo registro
datPrstamo.Recordset.AddNew
datPrstamo.Recordset("Registro pelicula") = Val(txtCdigo Pelcula.Text)
datPrstamo.Recordset("Nif ) = txtNumsocio.Text
datPrstamo.Recordset("Fecha prstamo") = CDate(txtFecha prstamo.Text)
datPrstamo.Recordset("Fecha devolucin")=argda
datPrstamo.Recordset("Devuelto") = False
datPrstamo.Recordset.Update


Una vez creado el nuevo registro del recordset mediante el mtodo AddNew, deberemos
dar el valor adecuado a los campos de dicho registro. La forma de acceder aun determinado
campo es mediante la sintaxis siguiente:


NombreControlData.Recordset("Nombre Campo")


En definitiva, cada uno de los campos acta como una propiedad del Recordset, a la que
tenemos que acceder mediante el uso de parntesis.

En el cdigo anterior se van rellenando el valor de cada campo del nuevo registro de
PRSTAMO. En dos ocasiones se ha tenido que utilizar una funcin para convertir el texto, que
es el tipo de datos de todo cuadro de texto, en el tipo adecuado para que coincida con el tipo de
datos de los campos de la tabla.

Una vez introducidos todos los datos, se utilizaUpdate y el registro queda insertado en la
tabla.

Debe tener en cuenta que el hecho de aadir un nuevo registro no implica que ste se
convierte automticamente en el registro actual del recordset.

Si desea que el nuevo registro sea el registro actual puede utilizar la propiedad del
Recordset, LastModified, para indicar el desplazamiento al registro que haya sido el ltimo en
modificarse, que ser el nuevo registro aadido.



Visual Basic 6.0 Microsoft

PAG. 98

En esta lnea de cdigo lo puede ver:

datPrstamo.Recordset.Bookmark = datPrstamo.Recordset. LastModified.


donde se utiliza la propiedad Bookmark para saltar rpidamente al nuevo registro
(indicado por el marcador LastModified). Bookmark le permite guardar el puntero del registro
actual y colocarse rpidamente en un registro especfico:


Dim registroActual
registroActual = datPrstamo.Recordset.Bookmark 'Se guarda el registro actual
datPrstamo.Recordset.MoveFirst 'Desplazamos el registro actual
datPrstamo.Recordset.Bookmark=registroActuaI 'Vuelve al marcador guardado


En este captulo ha aprendido a aadir nuevos registros en una base de datos. Cuando se
aaden nuevos registros o se modifican los ya existentes, es necesario establecer la correccin de
los nuevos valores de los campos.

Es decir, deber introducir en sus aplicaciones de bases de datos, controles de validacin
de todo aquello que introduzca el usuario. Este proceso no se ha visto reflejado en este captulo,
ya que ser tratado en la siguiente leccin.


ediante el mtodo Delete podr eliminar un registro entero de recordset. En este caso
deber haberse situado en dicho registro y hacer uso del mtodo.

Tenga cuidado despus de eliminar un determinado registro, ya que el registro actual sigue
siendo el registro eliminado, por lo que cualquier intento de acceder a la informacin del registro
actual provocar un error de ejecucin.

Por ello es conveniente desplazarse a un registro vlido una vez haya utilizado el mtodo
Delete. Por otra parte, no ser necesario utilizar Update para hacer efectiva la eliminacin.

A continuacin se muestra el cdigo que permite eliminar el registro actual del recordset:


If datPelculas.Recordset.EOF = False Then 'No borrar si est vaco
datPelculas.Recordset.Delete
If datPelculas.Recordset.EOF = True Then
cmdEliminar.Enabled=False
End If
datPeliculas.Recordset.MoveLast
End If

M
13.4. ELIMINAR REGRISTROS
Microsoft Visual Basic 6.0

PAG. 99

En la primera lnea se comprueba si el recordset est vaco es decir, si su propiedad EOF
tiene valor True.

Esta comprobacin no debera ser necesaria ya que si permite eliminar un registro es
porque esta accin debe poder llevarse acabo, si no, a nivel de interfaz de usuario debera haberlo
impedido. Sin embargo es conveniente establecer ms de un sistema de validacin por si alguno
falla, sobre todo cuando est interactuando con la base de datos.

Finalmente nos movemos al ltimo registro mediante MoveLast, ya que el registro actual
no es vlido al haber sido eliminado. En el caso de no existir ningn registro vlido, MoveLast
nos situar en el marcador EOF.


uando utiliza un control Data y otros controles enlazados para mostrar la informacin
de la base de datos, puede modificar el valor de los campos y, al trasladarse a otro
registro, dicha modificacin se actualiza en la base de datos.

Esto sucede si el tipo de recordset no es Snapshot, que no es actualizable.

Esta situacin la puede reflejar en el cdigo mediante primero el mtodo del recordset Edit
y despus la actualizacin mediante el mtodo Update.

De la misma forma que en el caso del mtodo AddNew, si no se realiza la actualizacin,
los cambios no se llevarn a cabo en la base de datos asociada.

Para permitir una mejor comprensin del curso en pantalla, se muestra aqu el formulario
en el que se est trabajando en este captulo de la leccin. Este formulario refleja la situacin en la
que un determinado socio devuelve una pelcula que tena en prstamo.



En esta situacin, el usuario introduce el cdigo de la pelcula devuelta y se lleva acabo la
devolucin. Es necesario, por lo tanto, encontrar el registro de la tabla PRSTAMO que lo refleja
e indicar en el campo Devuelto el valor True, es decir, que se ha devuelto.

Veamos el cdigo que permite editar el registro adecuado:

C
13.5. EDITAR REGISTRO
Visual Basic 6.0 Microsoft

PAG. 100

Edicin del registro
.Recordset.Edit
.Recordset("Devuelto") = True 'Cambiamos el valor
.Recordset.Update 'Actualizamos el registro en la BD

Fjese cmo primero se utiliza el mtodo Edit, despus se cambia el valor del campo
Devuelto y finalmente se utiliza Update.
A continuacin y con carcter ilustrativo, se muestra el cdigo completo del
procedimiento:

Private Sub cmdAceptar_ Gick()
Dim criterio As String, mensaje As String
Dim retraso As Integer

criterio de bsqueda con dos condiciones
criterio ="[Registro pelcula]=" & txtCdigo.Text & and Devuelto=False"

Buscar el primero, que cumpla el criterio. Debe ser el nico.
With datPrstamo
.Recordset.FindFirst criterio
If.Recordsct.No Match Then 'no se ha encontrado
MsgBox Pelcula no prestada o inexistente.
Else 'se ha encontrado
retraso =Date -. Recordset(" Fecha devolucin")
If (retraso >0) Then
mensaje = La pelcula debera haber sido devuelta hace_
& retraso & " das por el socio " &.Recordset("Nif) &.
respuesta =MsgBox(mensaje, vbYesNo)
Else
mensaje= Esta pelcula la tiene en alquiler el socio _
&.Recordset( Nif) & "."
respuesta =MsgBox(mensaje, vbYesNo)
End If

Edicin del registro
If (respuesta =vbYes) Then
.Recordset.Edit
.Recordset(" Devuelto") =TrueCambiamos el valor
.Recordset. Update Actualizamos el registro en la BD
MsgBox "Realizando actualizacin...
End If
End If
EndWith
txtCdigo.Text="
txtCdigo.SetFocus
cmdAceptar.Enabled =False 'volvemos a deshabilitar el botn
EndSub

Microsoft Visual Basic 6.0

PAG. 101

CERRAR UN RECORDSET


El mtodo Close del objeto Recordset cierra un recordset que haya sido previamente
creado, liberando los recursos que tenga asignados. Si despus de utilizar este mtodo, intenta
acceder a algn elemento del recordset, se producir un error de ejecucin.

No es necesario cerrar explcitamente el Recordset ya que esta circunstancia tambin se
producir cuando el formulario que contenga el control Data se descargue de memoria (mtodo
Unload) o se ejecute la instruccin End.






































Visual Basic 6.0 Microsoft

PAG. 102

















































Microsoft Visual Basic 6.0

PAG. 103

Opciones Avanzadas de Bases de Datos


sta leccin finaliza el tratamiento de las bases de datos desde Visual Basic. En las
ltimas tres lecciones ha aprendido a crear bases de datos mediante el Administrador
visual de datos, a crear sencillas aplicaciones de bases de datos sin necesidad de escribir cdigo
y a utilizar el objeto Recordset mediante cdigo para realizar aplicaciones ms complejas.

En esta leccin aprender a utilizar un control especializado en el acceso a bases de datos:
el control Cuadrcula enlazada a datos. Tambin se realizar una introduccin a la creacin de
consultas de seleccin mediante el lenguaje SQL y se le mostrar alguna forma de validar los
datos que introduce el usuario en una aplicacin de bases de datos.

Si desea ampliar conocimiento sobre el mundo de las bases de datos relacionales, le
recomendaremos realizar el curso de Microsoft Access que tenemos disponible.


n ocasiones desear mostrar un conjunto de registros a la vez, con sus
correspondientes campos, al estilo de un informe. En esta situacin, Visual Basic
incorpora un nuevo control llamado FlexGrid.

El control FlexGrid permiten mostrar informacin de forma tabular, es decir, como un
conjunto de filas y columnas.

Al utilizar dicho control podr mostrar en cada una de sus columnas un campo y en cada
una de las filas un registro, del recordset al que haya sido enlazado.

El control Cuadrcula enlazada a datos no aparece en la caja de herramientas estndar de
Visual Basic ya que es un control personalizado (ActiveX estandar).

Deber agregarlo expresamente a la caja de herramientas mediante la opcin Componentes
del men Proyecto.

El control FlexGrid aparece inicialmente con dos filas y dos columnas. Esta caracterstica
se puede modificar en tiempo de diseo o esperar a que en tiempo de ejecucin, cuando se enlace
con un determinado recordset, se ajuste al mismo.

La propiedad que establece el enlace con el correspondiente control Data es, al igual que
en el resto de controles enlazados, DataSource. Sin embargo, no presenta la propiedad DataField
ya que cuando utilice una cuadrcula para mostrar un conjunto de registros, que seguramente
tendrn ms de un campo.

E
E
14.1. INTRODUCCIN
14.2. CUADRCULA ENLAZADA A DATOS
Visual Basic 6.0 Microsoft

PAG. 104

Otras propiedades interesantes de dicho control son Row y Col que especifican la celda
actual del control.

Otra propiedad interesante es WordWrap, que establecida a True hace que el texto que es
demasiado largo se ajuste a la lnea siguiente dentro de la misma celda.

Cuando un control FlexGrid se enlaza a un control Data, los datos se muestran en slo
lectura, por lo que no es posible modificar o eliminar directamente los datos mostrados.

En este captulo ha conocido un nuevo control, la Cuadrcula enlazada a datos. En el
Siguiente aprender a utilizar el lenguaje SQL para establecer el recordset que se mostrar en
dicho control. En este caso dicho recordset ser fruto de una consulta en la que se involucre ms
de una tabla.


uando desee mostrar informacin que provenga de ms de una tabla, no tendr ms
remedio que utilizar el lenguaje SQL para establecerla correspondiente consulta en la
propiedad RecordSource de un control Data.

SQL es un lenguaje que pretende ser estndar en el acceso a bases de datos relacionales, de
forma que, independientemente del origen de la informacin, usted pueda acceder a ella a travs
de instrucciones SQL.

Este captulo introduce una pequea parte de dicho lenguaje, con el que podr realizar
consultas que permitan mostrar informacin de tablas de bases de datos. Estas consultas se
conocen como consultas de seleccin.

Puede establecer la propiedad RecordSource del control Data en tiempo de ejecucin y
darle el valor de una determinada consulta SQL. De esta forma el usuario podra especificar lo qu
quiere extraer de la base de datos.

Una vez establecida la propiedad RecordSource, debe utilizar el mtodo Refresh del
control Data para crear el objeto Recordset, al haber cambiado la propiedad RecordSource.

En las lneas siguientes se realiza este proceso. Fjese cmo el usuario habr introducido
una instruccin SQL en el cuadro de texto Text1, estableciendo el valor de RecordSource:


Data1.RecordSource = Text1.Text
Data1.Refresh


La instruccin que utilizar para crear consultas de seleccin SQL es SELECT. Aqu
puede ver la sintaxis de esta instruccin (esta sintaxis est reducida al no presentar la clusula
GROUP BY).
C
14.3. CONSULTAS EN SQL
Microsoft Visual Basic 6.0

PAG. 105


SELECT <columnas>
FROM <tablas>
[WHERE <condiciones>]
[ORDER BY <columnas>]

Como puede observar, la instruccin SELECT empieza con dicha palabra y un conjunto
de columnas, es decir, el conjunto de campos que queremos que muestre la consulta como
resultado de la misma.

Seguidamente aparece la clusula FROM, que identifica las tablas sobre las que se realiza
la consulta. Los campos especificados en la clusula SELECT deben pertenecer a las tablas
especificadas en FROM.

Posteriormente aparecen dos clusulas opcionales, como indican la presencia de corchetes.
La clusula WHERE especifica los criterios que se deben cumplir para que un determinado
registro aparezca en el resultado de la consulta.

Normalmente sern expresiones de comparacin del tipo NombreCampo =Valor o usando
ciertas funciones del SQL.

Finalmente la clusula opcional ORDER BY especifica en qu orden aparecern el
resultado de la consulta. Debe especificar el campo o conjuntos de campos por los que se
ordenarn los registros resultado de la consulta. Tambin puede indicar si el orden ser ascendente
o descendente.

Veamos algunos ejemplos:


SELECTTtulo
FROMPELCULAS


En este caso ha indicado que se muestre el campo Titulo de los registros situados en la
tabla PELCULAS.

Si desea que se muestren ms de un campo, deber separarlos por comas. Y si desea que se
muestren todos los campos de una tabla puede utilizar el carcter*. As, la siguiente consulta
devolvera todos los campos de la tabla PELICULAS:

SELECT*
FROMPECULAS

Otro ejemplo:

SELECT SOCIOS.Nombre, SOCIOS. [Fecha introduccin]
FROM SOCIOS, PRSTAMO
WHERESOCIOS.Nif=PRSTAMO.Nif
Visual Basic 6.0 Microsoft

PAG. 106


Esta consulta es un poco ms compleja. En este caso se est indicando que se muestren los
campos Nombre y Fecha introduccin de 1os registros situados en la tabla SOCIOS cuyo Nif
exista en algn registro de la tabla PRSTAMO.

Fijase en varios detalles:

Primero: si utiliza ms de una tabla en la consulta es conveniente indicar el nombre de la
tabla en la clusula SELECT junto al nombre del campo que desea mostrar, as no podr existir
ambigedad. Piense, por ejemplo que dos tablas podran tener el mismo nombre para uno o ms
campos.

Segundo: si el nombre de un campo est compuesto por ms de una palabra, deber
utilizar corchetes para delimitarlo como puede ver en el campo Fecha introduccin.

Tercero: todas las tablas implicadas aparecen en la clusula FROM separadas por comas.

Cuarto: la clusula WHERE presenta el criterio de comparacin. En este caso se elegirn
aquellos registros de SOCIOS cuyo Nif estn presentes en la tabla PRSTAMO. Fjese cmo
tanto SOCIOS como PRSTAMO poseen un campo Nif, en el que se estableci una relacin 1 a
muchos.

Finalmente, qu pasa si un socio ha alquilado ms de una pelcula? Entonces aparecer
ms de una vez en el resultado de la consulta.

Para evitar esta circunstancia puede utilizar el predicado DISTINCTROW de la siguiente
forma:

SELECT DISTINCTROW SOCIOS. Nombre, SOCIOS. [Fecha introduccin]
FROM SOCIOS, PRSTAMO
WOERE SOCIOS.Nif = PRSTAMO.Nif AND PRSTAMO.Devuelto = False

Se ha creado un criterio en el que se incluye ms de una condicin. Al utilizar el operador
AND est indicando que se cumplan las dos condiciones, que sean iguales el valor del Nif y que el
campo Devuelto presente el valor False, es decir, que no se haya devuelto la pelcula.

Finalmente, si desea ordenar de alguna forma los registros resultado de la consulta, puede
utilizar la clusula ORDER BY:

SELECTPELCULAS.Ttulo,PRSTAMO.[Fecha prstamo]
FROM PELICULAS, PRSTAMO
WHEREPELCULAS.[Registropelicula=PRSTAMO.[Registro pelcula]
ORDER BY PRSTAMO.[Fecha prstamo]

En este caso se muestran el Ttulo y la Fecha de prstamo de las pelculas prestadas,
ordenadas, de forma ascendente, por la fecha de prstamo. Puede ordenarlas de forma
descendente, para ello escriba la palabra DESC al final de la clusula ORDER BY.

Microsoft Visual Basic 6.0

PAG. 107

El lenguaje SQL es mucho ms amplio de lo que se ha mostrado en este captulo. Puede
utilizar el sistema de Ayuda de Visual Basic para aprender ms, si as lo desea.


n el curso en pantalla se muestra en ese captulo el uso de una consulta SQL para
permitir mostrar la fecha de devolucin, junto al nombre y apellidos del socio y el
registro de la pelcula de todos los prstamos cuya fecha de devolucin ha pasado.

Esta consulta SQL es utilizada para establecer la propiedad RecordSource de una
cuadrcula enlazada a datos, de forma que se completan el segundo y tercer captulo de la leccin:
en el segundo se presenta el nuevo control Cuadrcula y en el tercero cmo crear consultas de
seleccin en el lenguaje SQL

En la figura puede ver cmo quedara el procedimiento de evento donde se establece la
propiedad RecordSource a la consulta SQL:
Se ha utilizado el carcter _ para poder utilizar ms de una lnea en la instruccin. Debe
utilizar siempre un espacio en blanco antes de este carcter para que Visual Basic entienda que la
instruccin sigue en la siguiente lnea.

Mediante el operador de concatenacin & se crea la instruccin SELECT correctamente en
ms de una lnea.



Repasemos la consulta SQL:

En las tres primeras lneas, correspondientes ala clusula SELECT, se establece lo que
queremos que se muestre. Fjese en que el nombre del campo aparece junto a la correspondiente
tabla en la que se encuentra, para evitar cualquier confusin.

En la clusula FROM se indica las tablas a las que deseamos acceder: SOCIOS y
PRSTAMO.



E
14.4. CRITERIOS COMPLEJOS
Visual Basic 6.0 Microsoft

PAG. 108

En la clusula WHERE se establece el criterio de bsqueda. Fjese cmo deben coincidir
el Nif, la fecha de devolucin debe ser mayor que el da en el que se realiza la bsqueda y la
pelcula no debe haber sido devuelta. El operador And indica que deben cumplirse todas y cada
una de estas condiciones.

En la clusula ORDER BY se indica el ordenen el que aparecern los registros de la
consulta. Fjese cmo uno de los campos que establece dicho orden es el Nif, campo que no
aparece en el resultado de la consulta.

En la siguiente figura puede ver el resultado que produce esta consulta SQL en el estado de
la base de datos utilizada en la aplicacin que ha estado diseando en gran parte del curso.


n toda aplicacin que utilice datos introducidos por el usuario es fundamental validar
dichos datos y asegurarse as de que sean correctos.



Esta necesidad es mayor si la aplicacin interacta con una base de datos. No debe
permitir que se escriban datos incorrectos en una base de datos, sino que antes de actualizarla
deber establecer el correspondiente nivel de validacin.

El primer nivel de validacin que debe ofrecer en sus aplicaciones es a nivel de la propia
interfaz de usuario.

La regla a seguir es la de no permitir realizar una accin si la situacin no es la adecuada.
El uso de la propiedad Enabled consigue que el usuario slo lleve a cabo aquellas acciones que el
programador le permita realizar en cada momento.

E
14.5. VALIDAR LA ENTRADA
Microsoft Visual Basic 6.0

PAG. 109

Si establece el valor de la propiedad Enabled de un objeto a False, entonces ser
responsabilidad suya el activar dicho objeto (poner Enabled a True) cuando la situacin lo
permita. En otro caso el usuario no podr utilizar el objeto en ningn momento.

Este primer nivel de validacin no suele ser suficiente, tambin deber comprobar la
correccin de los datos en s. No debe permitir que el usuario introduzca lo que quiera sino que
tenga sentido.

Existen numerosas formas de establecer validaciones en sus formularios. La ms sencilla
es a nivel de formulario. En este caso suele encontrarse un botn Aceptar o similar que permite al
usuario pulsarlo cuando ha introducido la informacin necesaria y, por lo tanto, ya se pueda
realizar la operacin que desea.

Es cuando se pulsa en dicho botn, cuando el cdigo escrito en Visual Basic acta para
validar la entrada producida.

Sin embargo, podra establecer validacin en cada una de las pulsaciones de tecla que se
realice sobre un determinado cuadro de texto, permitiendo, por ejemplo slo la introduccin de
nmeros.

De esta ltima forma no sera necesario que el usuario pulsara en un determinado botn
para detectar que la informacin introducida no es correcta, sino que esta validacin se hara
mucho antes. Lgicamente esta forma es ms costosa en trminos de programacin.


uando directamente con un control Data en un formulario, puede utilizar alguno de
sus eventos para establecer niveles de validacin de los datos que ha introducido o
modificado el usuario.

El evento ms utilizado en este aspecto es Validate. Dicho evento sucede en un gran
numero de ocasiones, siempre antes que el registro actual cambie.

As, el evento Validate sucede:


Al movernos a un registro distinto mediante un mtodo Move.
Al utilizarlos mtodos AddNew, Update, Delete o Find
Al cerrarla base de datos.
Al descargar el formulario.






C
14.6. VALIDAR CON EL CONTROL DATA
Visual Basic 6.0 Microsoft

PAG. 110


En las siguientes lneas puede ver un procedimiento de evento Validate tpico:

Private Sub datSocios_Validate(Action As Integer Save As Integer)
Dim respuesta As Integer
If Save = True Then
respuesta = NsgBox(Desea guardar los cambios?", vbYesNo)
If respuesta = vbNo Then
Save = False
EndIf
Endlf
End Sub

El procedimiento de evento Validate contiene dos parmetros: Action indica por qu se ha
producido el evento y Save indica si se debe o no modificar la base de datos.

As, el cdigo utiliza el parmetro Save y permite confirmar, por parte del usuario. que se
lleve a cabo la modificacin que ha realizado. Si se responde No, los cambios no tienen electo al
establecer el valor False del parmetro Save.

Recuerde, por otra parte, que al crear una tabla de una base de datos, puede establecer
algunos criterios de validacin. As, podr introducir reglas de validacin junto al mensaje que
debe aparecer si se infringen, reglas de integridad referencial, etc.

Pida informacin sobre los eventos Error y Reposition si desea ampliar sus
conocimientos sobre la validacin con el control Data.






















Microsoft Visual Basic 6.0

PAG. 111


Trabajar con Archivos


n la mayora de aplicaciones Windows existe una o ms opciones en las que el usuario
tiene que interaccionar con el sistema de archivos desu equipo.

Abrir, guardar o buscar un determinado archivo, son situaciones en las que debe ser el
usuario el que se site en el lugar correspondiente en el sistema de archivos.

Usted ya ha aprendido a utilizar el control Dilogo Comn para utilizar los cuadros de
dilogo predefinidos Guardar como o Abrir. En esta leccin conocer otros controles que
permiten tambin tener acceso al sistema de archivos de una forma menos prefabricada.

Visual Basic proporciona una serie de controles especializados en el acceso al sistema de
archivo de Windows.

Estos controles son el Cuadro de lista de unidades, el Cuadro de lista de directorios y
el Cuadro de lista de archivos. Cada uno de estos controles permite acceder a los
correspondientes elementos del sistema de archivos.

Para dibujar un cuadro de lista de unidades (DriveListBox) utilice el botn situado en la
caja de herramientas.

Al dibujar el cuadro de lista de unidades, deber darle un tamao adecuado para que se
pueda mostrar cualquier unidad que tenga en su ordenador. En tiempo de diseo se muestra la
etiqueta de la unidad del disco duro de forma que pueda ajustar el control al tamao de la misma.

Sin embargo, esto no nos asegura que en el equipo del usuario final el tamao sea
adecuado.

El control Cuadro de lista de unidades incluye las unidades de disco duro, disco flexible,
CD-ROM, etc.

Con el botn situado en la caja de herramientas puede utilizar controles Cuadro de lista
de directorios (DirListBox).

Este tipo de control permite mostrar los directorios del sistema de archivo de su ordenador.
Recuerde que en terminologa de Windows un directorio es equivalente a una carpeta.

Es conveniente permitir que dicho control muestre tres o cuatro carpetas. Visual Basic, le
muestra en tiempo de diseo, la carpeta en la que se inicia la aplicacin y en la que por defecto,
guardar el proyecto.

E
15.1. CONTROLES ESPECIALIZADOS
Visual Basic 6.0 Microsoft

PAG. 112

Visual Basic incorpora autamticamente una barra de desplazamiento vertical cuando
existen ms subcarpetas de las que se pueden ver en el control.

Finalmente el tercer control que permite interaccionar con el sistema de archivos es el
Cuadro de lista de archivos (FileListBox). En este cuadro es donde aparecen los archivos que
posee en el sistema de archivos del ordenador. Utilice el botn de la caja de herramientas para
dibujar estos controles en sus formularios.

Visual Basic tambin incorporar automticamente una barra de desplazamiento si el
tamao del control no permite ver completamente los archivos.

Este ltimo control tiene una propiedad que suele ser interesante establecer. La propiedad
Pattern permite especificar qu tipos de archivos son mostrados en el cuadro de archivos.

En muchas ocasiones slo desear mostrar determinados archivos y no todos, como es la
opcin predeterminada (*.*).

Puede utilizar los caracteres comodn * y ? al establecerla propiedad Pattern. Estos
caracteres tienen el mismo significado que en el MS-DOS o Windows, para especificar nombres
de archivos.

Estableciendo la propiedad Pattern, por ejemplo, con la cadena *.txt, estar indicando que
se muestren slo los archivos que tengan dicha extensin (archivos de texto en este caso).Tambin
puede mostrar ms de un tipo de archivos, simplemente seprelos con ;







Microsoft Visual Basic 6.0

PAG. 113




n tiempo de diseo, al dibujar los distintos controles del sistema de, archivos, estos
muestran la unidad y carpeta en la que se crea el proyecto por omisin. Tambin
muestra en el cuadro de archivos, aquellos archivos situados en esta carpeta y que cumplen con la
propiedad Pattern.

Esto tiene el objetivo de permitirle dibujar con ms facilidad dichos controles,
estableciendo el tamao adecuado de los mismos.

Sin embargo, en tiempo de ejecucin, el usuario puede cambiar de unidad o de carpeta y
esta situacin no se ver reflejada si no se indica en el cdigo.

Para que los controles estn sincronizados, es decir, cuando cambie de unidad de disco se
muestren las carpetas adecuadas y cuando cambie de carpeta, se muestren los archivos existentes
en la nueva carpeta, es necesario conectar los controles.

Fjese como un cambio en la unidad de disco debe implicar el cambio de carpeta y, por lo
tanto, de la lista de archivos. Sin embargo cambiar de carpeta slo implicar que debemos mostrar
la lista de archivos actualizada.

El evento predeterminado del control Cuadro de lista de unidades es Change. Este
evento sucede cada vez que el usuario despliega la lista y selecciona una unidad distinta a la
actual, por lo que es el evento adecuado para actualizar la lista de directorios de la siguiente
forma:


Private Sub Dir1_Change()
Dir1.Path = Drive1.Drive
End Sub


Mediante esta lnea de cdigo est actualizando la ruta de acceso del cuadro de directorios,
de forma que muestre las carpetas correspondientes a la unidad seleccionada y que est
especificada en su propiedad Drive.

Pero qu sucede si lo que cambia es el directorio actual mostrado en el cuadro de
directorios? Fjese que esto puede suceder tanto si se cambia la unidad en la que est trabajando
como si se cambia directamente en el cuadro de directorios.

Deber entonces actualizar tambin la lista de archivos del cuadro de archivos para que
muestren los archivos situados en el nuevo directorio. Esto se realiza de la siguiente forma en el
evento Change del cuadro lista de directorios:

E
15.2. CONECTAR LOS CONTROLES
Visual Basic 6.0 Microsoft

PAG. 114



Private Sub Dir1_Change()
File1.Path = Dir1.Path
EndSub


De esta forma se actualiza la lista de archivos. Fjese cmo estamos conectando la unidad
con el directorio y el directorio con el archivo. Y esta conexin se establece en el momento en
que cambia el elemento de nivel superior.

La propiedad Path slo est disponible en tiempo de ejecucin, cuando el usuario
interacta con los objetos de la misma forma que puede hacer en cualquier aplicacin Windows
donde tenga que trabajar con archivos.



uando est escribiendo cdigo en tiempo de diseo, Visual Basic puede detectar
errores sintcticos y avisarle de ellos.

Posteriormente, se pueden detectar ms errores en tiempo de compilacin. Estos errores
son de carcter semntico, como puede ser la aplicacin de un mtodo a un objeto que no lo
posee.

Sin embargo, tambin pueden suceder errores en tiempo de ejecucin. Este tipo de
errores son sucesos inesperados que Visual Basic no puede controlar por s mismo sino que usted
debe o bien prevenirlos o bien manejarlos.

En el curso en pantalla ha podido comprobar que se produca un error en tiempo de
ejecucin. Estaba interactuando con la unidad de disco flexible, pero no exista ningn disco en
sta. Fjese como este error no puede ser detectado por Visual Basic hasta que ocurre, ya que su
cdigo debe permitir que el usuario utilice la unidad de disquete.

Ante este tipo de errores, Visual Basic presenta la posibilidad de incorporar lo que se llama
un manejador o controlador de error. Los manejadores de error son un conjunto de lneas de
cdigo que slo debe ejecutarse cuando se produce un error que es interceptado por Visual Basic.

Entonces, en lugar de proceder de la forma estndar, que en la mayora de ocasiones ser
mostrar un mensaje y terminar la aplicacin, usted deber escribir cdigo para que la aplicacin
acte de una forma ms robusta y no finalice ante dichos errores.

Escriba manejadores de error siempre que pueda preveer la ocurrencia de un error en
tiempo de ejecucin. Normalmente tendr que hacerlo en todas las situaciones donde el programa
permita acceder a elementos externos del ordenador como unidades de disco, impresoras, etc. En
la siguiente lista se muestran algunas de estas situaciones:

C
15.3. MANEJADORES DE ERROR
Microsoft Visual Basic 6.0

PAG. 115



Problemas con unidades de disco flexible: discos no formateados, la puerta de la unidad
est abierta, etc.
Desbordamiento: clculos demasiado complejos.
Falta de memoria.
Problemas con la red.
Impresoras no disponibles.
Errores lgicos: nombre de archivo mal escrito. etc.

La instruccin que permite detectar un error en tiempo de ejecucin y trasladarlo a un
manejador de error es On Error.

Dicha instruccin tiene la siguiente sintaxis: On Error Go To etiqueta, donde etiqueta
representa el nombre del manejador del error, que debe estar situado en el mismo procedimiento
que la instruccin On Error. Cuando suceda un error en el procedimiento donde coloca On Error,
Visual Basic dar el control al manejador de error escrito en dicho procedimiento.

En las siguientes lneas puede ver el cdigo de un manejador de error.


ManejadorError:
IfErr.Number = 68 Then
resp = MsgBox(El dispositivo no est preparado",
vbAbortRetryIgnore)
If resp = vbRetry Then
Resume
Elself resp = vbAbort Then
Drive1.Drive = Dir1.Path
Resume Next
End If
End If


La primera lnea es la etiqueta que representa el nombre del manejador, fjese como debe
incluir dos puntos al final de la misma.

Nuestro cdigo pregunta si dicho error es el 68 y en ese caso presenta un cuadro de dilogo
en el que se le indica al usuario que el dispositivo no est preparado, dndole la opcin de
reintentar, cancelar o ignorar el error (fjese en el uso de la constante vbAbortRetrylgnore en la
funcin MsgBox). Si desea utilizar el mensaje estndar, puede utilizar la propiedad Description de
la siguiente forma:


resp = MsgBox(Err.Description, vbAbortRetrylgnore)


Visual Basic 6.0 Microsoft

PAG. 116

Una vez interceptado el error y ejecutado el cdigo asociado al manejador es necesario
indicar qu sucede una vez se salga del manejador.

En este caso esto depender de lo que desee hacer el usuario. Si desea reintentar la
operacin (resp ser igual a vbRetry) entonces se ejecuta la instruccin Resume, que vuelve a
ejecutar la misma instruccin que provoc el error.

Si lo que desea es anular la operacin (resp ser igual a vbAbort), entonces se ejecuta
Resume Next, que lo que hace es devolver l control a la siguiente instruccin que provoc el
error.

En otro caso (resp =vbIgnore), se lleva a cabo la accin aunque sea incorrecta y se sigue,
terminando el procedimiento de evento.

Recuerde: Resume vuelve a ejecutar la lnea que provoc el error y ResumeNext lleva el
control a la siguiente de dicha lnea.

Debe tener cuidado al escribir el cdigo del manejador de error. S sita este cdigo al
final del procedimiento, dicho cdigo se ejecutar aunque no se produzca ningn error. Utilice la
instruccin Exit Sub para impedir que esto ocurra cuando no se ha producido ningn error.

A continuacin se muestra el cdigo completo del procedimiento:


Private Sub Drive1_Change()
Dm resp As Integer
On Error GoTo ManejadorError
Dir1.Path=Drive1.Drive
Exit Sub
ManejadorError:
IfErr. Number =68Then
resp =MsgBox("El dispositivo no est preparado", vbAbort
RetryIgnore)
If respuesta=vbRetry Then
Resume
EIself respuesta=vbAbort Then
Drive1.Drive=Dirl.Path
Resume Next
Endlf
EndIf
EndSub







Microsoft Visual Basic 6.0

PAG. 117


n los anteriores captulos ha estado trabajando para programar lo que debera ocurrir
cuando el usuario interacciona con el cuadro de unidades y el directorio. Es decir,
permiten que se muestren las listas de directorios y archivos actualizadas.

Sin embargo an no ha indicado qu debe pasar cuando se elige un archivo de la lista de
archivos, que en definitiva, debe ser la accin que desea realizar el usuario.

En este captulo escribiremos cdigo para que, cuando el usuario haga doble clic en un
determinado archivo de la lista, su contenido se muestre en un cuadro de texto.

Esto es posible porque los archivos que permitimos mostrar son archivos de texto, en los
que slo aparece texto sin formato.

Aqu puede ver el contenido del procedimiento de evento DblClick de la lista de archivos:


Private Sub File1_DbIClick()
Dim nuevalnea As String, LTexto As String
Dim Texto As String, Archivo As String

nuevalnea = Chr$(13) + Chr$(10)
Archivo = File1.Path & "\" & File1.filename
Open Archivo For Input As #1
Do Until EOF(1)
Line Input #1, LTexto
Texto = Texto & LTexto & nuevalinea
Loop
Textl.Text = Texto
Close 1
EndSub


Cuando el usuario selecciona un determinado archivo de la lista, su nombre se especifica
en la propiedad filename del cuadro lista de archivos. Sin embargo, deber indicar la ruta de
acceso completa, para lo que se concatena el directorio, que se encuentra en la propiedad Path y
el carcter \, separador de directorios.

Una vez tenemos en la variable Archivo el nombre y ruta completa del archivo que
deseamos mostrar es necesario abrir dicho archivo. Para ello se utiliza la instruccin Open

La instruccin Open necesita el nombre del archivo a abrir, el modo en el que se va a abrir
dicho archivo, que entre otros valores puede ser en modo lectura o en modo escritura y un nmero
que se asocia con el archivo para el resto del cdigo.

E
15.4. ARCHIVOS DE TEXTO
Visual Basic 6.0 Microsoft

PAG. 118

En la lnea Open Archivo For Input As #1 el archivo a abrir est situado en la variable
Archivo, el modo es de lectura, especificado mediante la palabra Input y el nmero asociado es el
1.

Una vez tenemos abierto el archivo en modo lectura, se utiliza la variable LTexto para ir
almacenando cada una de las lneas del archivo de texto. Para ello se utiliza la instruccin Line
Input, donde se indica el nmero del archivo y la variable en la que se guarda la lnea de texto.

Esta instruccin se sita en un bucle DoUntilLoop, repitindose hasta que se llega al
final del archivo de texto, especificado por la condicin EOF(1).

Seguidamente vamos guardando todo el texto en otra variable, Texto, donde se van
concatenando cada una de las lneas que consta el archivo.

En la lnea Text1.Text= Texto es donde se asocia el contenido del archivo con el cuadro
de texto del formulario, a travs de su propiedad Text.

Finalmente se cierra el archivo mediante la instruccin Close. No debe olvidar realizar
dicha instruccin cuando finalice con un archivo.

Resumiendo, podemos decir que la secuencia correcta del tratamiento de un archivo de
texto es abrirlo, trabajar con l y finalmente cerrarlo.



Por otra parte, el proceso que ha realizado en este captulo slo sirve para los archivos de
texto sin formato. Este tipo de archivos no almacena ninguna cabecera ni cdigos especiales y
adems no deben sobrepasar las 64Kb de tamao.






Microsoft Visual Basic 6.0

PAG. 119


ara finalizar en el estudio de temas relacionados con el sistema de archivos de
Windows y el trabajo con archivos, vamos a comentar el uso de una instruccin muy
potente, FileCopy, que permite realizar la copia de un determinado archivo.

La sintaxis de esta instruccin es FileCopyfuente, destino. Como se imaginar fuente
indica el archivo del que queremos hacer la copia y destino el archivo que ser resultado de la
copia.

Deber haber cerrado el archivo fuente antes de utilizar la instruccin FileCopy, ya que en
caso contrario se producir un error en tiempo de ejecucin. Con la instruccin FileCopy podr
copiar cualquier archivo, independientemente de su tipo.

Por otra parte es conveniente controlar si la ubicacin del archivo destino tiene suficiente
espacio disponible para realizar la copia del archivo. En caso contrario se producir un error al
intentar hacer la copia, error que debera ser manejado por su cdigo.





























P
15.5. LA INSTRUCCIN FILECOPY
Visual Basic 6.0 Microsoft

PAG. 120
















































Microsoft Visual Basic 6.0

PAG. 121

Utilizacin de OLE


ompartir informacin entre distintas aplicaciones es una de las caractersticas ms
potentes que presenta el sistema Windows. La pieza fundamental para conseguir esta
caracterstica es el concepto de objeto, que ya ha sido tratado en este curso.

Al compartir informacin, lo que realmente est haciendo es compartir objetos que son
creados por dos o ms aplicaciones Windows distintas. Es aqu donde entra en juego el estndar
OLE, que sienta las bases para crear y compartir objetos entre distintas aplicaciones.

Visual Basic acta como nexo entre aplicaciones Windows al permitir el uso de objetos
OLE en sus aplicaciones. Usted podr tener en un mismo formulario de Visual Basic una hoja de
calculo de Excel, un documento de Word, una imagen de Corel o cualquier objeto proveniente de
una aplicacin que cree objetos OLE.

Pero adems de todo ello, en Visual Basic podr utilizar los objetos de otras aplicaciones
de la misma forma que cualquier otro objeto de Visual Basic. Podr establecer o le sus
propiedades, utilizara sus mtodos, etc., en lo que es la llamada Automatizacin OLE.

Esta leccin slo es una pequea introduccin al mundo OLE. La complejidad de dicho
sistema es tal que requerira de un curso entero para abordarlo, necesitando conocimientos
avanzados en la programacin orientada a objetos.


ediante el uso del control Contenedor OLE, podr crear formularios de Visual
Basic en los que incluya informacin proveniente de distintas aplicaciones
Windows.

Estos formularios son conocidos como documentos compuestos, en los que la
funcionalidad que se necesita no la proporciona la aplicacin creada con Visual Basic, sino que se
aprovecha la de las aplicaciones que crean los objetos insertados.

As, si el equipo donde se ejecuta la aplicacin posee aplicaciones Windows como la hoja
de clculo Excel o el procesador de textos Word, no necesitar programar para conseguir que su
aplicacin presente la funcionalidad de dichas aplicaciones, sino que podr utilizarlas desde su
aplicacin.

Fjese en la importancia que esto representa, al poder crear autnticos sistemas
empresariales en Visual Basic utilizando aplicaciones tan avanzadas como las ya mencionadas.

C
M
16.1. INRODUCCIN
16.2. El CONTENEDOR OLE
Visual Basic 6.0 Microsoft

PAG. 122

Al crear un contenedor OLE mediante el botn de la caja de herramientas, Visual Basic
presenta el cuadro de dilogo Insertar objeto, que seguramente habr utilizado en ms de una
aplicacin Windows.



En este cuadro de dilogo aparecen los distintos tipos de objetos que puede insertar en el
formulario. Estos objetos provienen de las aplicaciones compatibles con OLE que tenga instaladas
en su equipo.

Cuando una aplicacin se instala en el ordenados, Windows anota dicha aplicacin en lo
que es llamado el Registro de Windows. Este Registro es como una base de datos donde
Windows guarda informacin referente a las aplicaciones que tiene en su equipo. Entre otras
cosas, se guardan los objetos insertables que ofrecen dichas aplicaciones y que despus aparecen
en el cuadro de dilogo Insertar objeto.

Puede insertar en su formulario un objeto nuevo utilizando la opcin Crear nuevo o
utilizar uno ya existente mediante la opcin Crear desde archivo. Este ltimo caso deber
especificar el archivo que posee el objeto a insertar.

Si desea que el objeto insertado aparezca en el formulario como un icono, puede activar la
casilla Mostrar como icono del cuadro de dilogo Insertar objeto.

Por otra parte, puede indicar que el objeto sea incrustrado o vinculado. Como ya debe
conocer, al incrustrar un objeto, se crea una copia y se guarda en la aplicacin Visual Basic, por lo
que slo podr usarse en sta.

Sin embargo, si vincula el objeto, ste sigue estando almacenado en el archivo original,
guardndose en nuestra aplicacin una referencia al mismo y no el objeto en s. Tenga en cuenta
que en este caso cualquier otra aplicacin podra utilizar el mismo objeto y modificarlo.

Adems de utilizar el cuadro de dilogo Insertar objeto tambin puede usar un objeto OLE
en un formulario a travs del comando Pegado especial.

Microsoft Visual Basic 6.0

PAG. 123

Dibuje el contenedor OLE, cancele el cuadro dilogo Insertar objeto y utilice el comando
Pegado especial a travs del men contextual del contenedor OLE. Lgicamente habr tenido que
trasladar el objeto a pegar al Portapapeles de Windows a travs de un comando cortar o copiar.



El cuadro Pegado especial es semejante al de Insertar objeto, pero en este caso slo
permite insertar un tipo de objeto, el que se corresponda con la informacin situada en el
Portapapeles.

Tambin puede incrustar un objeto, para lo que utilizar la opcin Pegar, o vincularlo,
utilizando la opcin Pegar vnculo.

En este captulo ha insertado objetos OLE en un formulario de Visual Basic en tiempo de
diseo, ya sea utilizando el cuadro de dilogo Insertar objetos o a travs del comando Pegado
especial.

Para ello deber mostrar, en tiempo de ejecucin, el cuadro de dilogo Insertar objeto o
Pegado especial mediante mtodos del objeto contenedor OLE y establecer las propiedades
oportunas del nuevo objeto insertado.

Fjese cmo en este caso debe escribir cdigo, que no es necesario al insertar objetos en
tiempo de diseo.


uando insertas un objeto a travs del control Contenedor OLE, est en disposicin de
editar el objeto con la aplicacin creadora del mismo. Para ello lo nico que tiene que
hacer, en tiempo de ejecucin, es doble clic sobre el objeto.

Al activar el objeto haciendo doble clic, la aplicacin servidora, o aquella en la que se
cre el objeto, es iniciada y el usuario puede interactuar con ella utilizando toda la funcionalidad
que presente.

C
16.3. EDICIN DE OBJETO
Visual Basic 6.0 Microsoft

PAG. 124

En este sentido es importante indicar que existen aplicaciones que permiten que la edicin
sea en el propio control contenedor (conocido como Edicin visual) y otras en las que la edicin
se produce en un ventana independiente.

Para que la edicin del objeto sea en el propio control contenedor OLE, es necesario haber
incrustrado el objeto, ya que toda vinculacin producir que la aplicacin servidora se muestre en
una ventana independiente. Por otra parte, si el objeto se representa como un icono en nuestro
formulario, tambin se presentar en una ventana independiente la aplicacin servidora.

Cuando la aplicacin servidora se muestra en una ventana independiente, no existen
problemas para presentar los mens y barras de herramientas de la misma.

Sin embargo, si el formulario donde ha insertado un objeto posee mens o barra de
herramientas y la edicin del objeto se produce en el propio contenedor, deber negociar dicho
elementos. Es decir, deber indicar cmo se debe mostrar.
Si desea que los mens de la aplicacin servidora se muestren al editar el objeto, es
necesario que el formulario donde est insertado el objeto posea un elemento de men, aunque
est no visible. Adems, en el editor de mens puede especificar en qu posicin deben mostrarse
cuando se edite el objeto en el contenedor OLE.

La propiedad NegotiatePosition que aparece en el Editor de mens, establece la posicin
de los elementos del men de nuestro formulario.

Esta propiedad puede tener los siguientes valores:

.0: indica que dicho elemento de men no se ver cuando se edite el objeto, mostrndose
nicamente el men de la aplicacin servidora.

. Los valores 1, 2 y 3 establecen dnde se mostrar, pudiendo ser a la izquierda, centro o
derecha. As, si elige 1, se mostrar a la izquierda del men, donde normalmente aparece
el elemento Archivo.

Por otra parte, independientemente de la propiedad NegotiatePosition del mens, es
necesario establecer la propiedad NegatiateMenus del formulario a True. En otro caso, la
negociacin de mens no se llevar a cabo.

Toda vinculacin o uso de la opcin Mostrar como icono implicarn que el objeto se
edite en una ventana independiente.


n los anteriores captulos se ha utilizado el contenedor OLE para insertar objetos en un
formulario. Sin embargo algunas aplicaciones proporcionan objetos que pueden
utilizar como controles personalizados ( ActiveX) en Visual Basic.

As, podr agregarlos a la caja de herramientas y utilizarlos como un control ms de
Visual Basic sin tener que usar el control OLE.
E
16.4. OBJETOS INSERTABLES
Microsoft Visual Basic 6.0

PAG. 125


Para ello puede utilizar el mens contextual de la caja de herramientas o elegir
Componentes en el men Proyecto.

Aparecer el cuadro de dilogo que se muestra en la figura, en el que, adems de los
controles personalizados, tambin se pueden ver aquellos objetos insertables que tenga disponible
en su equipo seleccionando la ficha Objeto insertables.



Active las casillas de aquellos objetos que utilice normalmente en su aplicacin y ya no
ser necesario utilizar el Control contenedor OLE, insertando el objeto especfico de una forma
directa a travs de los botones de la caja de herramientas que aparecen para ello.

Adems, es posible que una misma aplicacin aporte ms de un tipo de objetos insertables.
Por ejemplo Excel permite la insercin de objetos hoja de clculo y grficos.

Sin embargo, tenga en cuenta que, al utilizar un objeto insertable como control
personalizado en la caja de herramientas, slo podr incrustar un objeto nuevo ya que no tendr
la opcin de utilizar un archivo existente. Pero s podr editarlo, en tiempo de ejecucin
aplicndose las mismas reglas que en el caso del Control contenedor OLE.






Visual Basic 6.0 Microsoft

PAG. 126


na de las caractersticas ms potentes de la utilizacin del estndar OLE es la
Automatizacin OLE.

La Automatizacin OLE permite, mediante programacin integrar varias aplicaciones
Windows en una aplicacin creada en Visual Basic.

El estndar OLE permite que las aplicaciones acten bien como servidores OLE o como
clientes OLE. Un servidor OLE proporciona objetos que puede utilizar en otras aplicaciones. Un
cliente OLE es una aplicacin que utiliza objetos creados en una aplicacin distinta, como se ha
mostrado en esta leccin.

Visual Basic permite crear aplicaciones que acten como clientes OLE, pero tambin, en
su ediciones Profesionales y Empresariales, como servidores OLE.

Al utilizar Automatizacin OLE, usted puede utilizar los objetos de otras aplicaciones
como si fuera objetos de Visual Basic, estableciendo propiedades y utilizando sus mtodos.

As, puede crear objetos como documentos de Word, hojas de clculo de Excel o cualquier
otro objeto proveniente de un servidor OLE y utilizarlos en su cdigo.


Dim X As Object
Set X = CreateObject ( Word . Basic )
X . ArchivoNuevo
X . TamaoFuente 24
X . Insertar Uso de la Automatizacin OLE


En estos casos, el uso del Examinador de objetos permite conocer y pedir ayuda sobre los
componentes de dichos objetos, facilitando la utilizacin de sus mtodos y propiedades de la
forma correcta.

En la figura anterior puede observar un fragmento de cdigo donde se crea un objeto de
Word, se utiliza un mtodo para crear un nuevo archivo, se establece la propiedad tamao de
fuente a 24 puntos y se inserta texto en el punto de insercin. Fjese cmo no existen diferencia
con cualquiera de los objetos que ha utilizado en el curso y, sin embargo, es un documento del
procesador de textos Microsoft Word.








U
16.5. AUTOMACIN OLE
Microsoft Visual Basic 6.0

PAG. 127

Aplicaciones MDI


n muchas aplicaciones habr tenido la posibilidad de trabajar en ms de un archivo a la
vez, situndose cada uno de ellos en una ventana independiente.

Este tipo de aplicaciones son conocidas como aplicaciones orientadas a documentos a
nivel de usuario y como aplicaciones MDI a nivel de programacin.



En una aplicacin MDI, como puede ser Microsoft Excel, existe una ventana principal,
que posee su propio men y barras de herramientas, y una o ms ventanas secundarias, donde se
sitan los documentos con los que est trabajando.

Estas ventanas secundarias siempre se muestran en el interior de la principal, sin poder
salir de ella.

Adems, cuando no existe ninguna ventana secundaria abierta, el men que presenta la
ventana principal cambia, aportando normalmente menos opciones que cuando existen ventanas
secundarias abiertas.

E
17.1. UNA APLICACIN MDI
Visual Basic 6.0 Microsoft

PAG. 128

Esto es as porque realmente el men ms completo pertenece a la ventana secundaria y es
el men que se presenta, cuando no hay ventanas secundarias abiertas, el que pertenece a la
ventana principal.

Cuando una ventana secundaria posee un men, ste se muestra en el rea de mens de la
ventana principal.

La mayora de aplicaciones MDI ofrecen un men Ventana, en el que se listan todas
aquellas ventanas secundarias abiertas y en el que existen opciones para organizarlas.

Otra caracterstica de las aplicaciones MDI es que, cuando se cierra la ventana principal,
tambin se cierran las ventanas secundarias. Sin embargo, esto no sucede al revs, es decir, el
hecho de cerrar una ventana no afecta a la principal.

En definitiva una aplicacin MDI se caracteriza por presentar una ventana principal, que a
partir de ahora llamaremos ventana MDI, y una o ms ventanas secundarias que se muestran en
el interior de la ventana MDI.


n un proyecto Visual Basic slo puede existir un formulario MDI en el que se
situarn, en tiempo de ejecucin, los formularios secundarios. En tiempo de diseo los
formularios secundarios se muestran independientes del MDI pudiendo incluso tener un tamao
mayor a ste. Sin embargo, en tiempo de ejecucin siempre se mostrarn en el interior del MDI.

Para introducir un formulario MDI, deber utilizar el men Insetar y elegir Formulario
MDI ya que el botn que se sita en la barra de herramientas para crear nuevos formularios
inserta formularios no MDI.

El formulario MDI puede contener su propia barra de mens, creada en el editor de mens,
pero slo se mostrar cuando no existan formularios secundarios abiertos que tengan su propio
men. Normalmente el men del formulario MDI es un men con menos opciones que el
presentado al mostrarse visible un formulario secundario.

Si desea que los formularios secundarios se muestren al cargarse en memoria, deber
establecer el valor True en la propiedad AutoShowChidren del formulario MDI. En caso
contrario, debern mostrarse explcitamente mediante el cdigo (utilizando, por ejemplo, el
mtodo Show).

Otra de las caractersticas de un formulario MDI es la de que slo podr dibujar controles
en su interior que posean la propiedad Align. Si intenta dibujar un control que no posee esta
propiedad, Visual Basic le indicar con un mensaje que no es posible. El Control Data o el Cuadro
de imagen (PictureBox) que se utiliza por ejemplo, para crear barras de herramientas en las
aplicaciones MDI, son controles que presentan esta propiedad



E
17.2. FORMULARIOS MDI
Microsoft Visual Basic 6.0

PAG. 129


ara que un formulario no MDI se comporte, en tiempo de ejecucin, como un
formulario secundario, es necesario establecer su propiedad MDIChild a True.

El valor inicial de dicha propiedad es False, pudiendo mantenerlo as, lo que significara,
en una aplicacin MDI, que dicho formulario ser una ventana independiente ( posiblemente un
cuadro de dilogo) o cambiarlo a True, indicando que ser un formulario secundario.

En la ventana Proyecto cada tipo de formulario se identifica con un icono especial. Hay
uno para los formularios MDI, otro para los secundarios y otro para los formularios
independientes.

Como ya se ha indicado, un formulario secundario puede poseer su propio men, que se
mostrar en el rea de mens del formulario MDI.

Dicho men debe contener todas las opciones que presente la aplicacin, completando de
esta forma el men del formulario MDI. Sin embargo es necesario que las opciones del men
MDI que desee mantener en el secundario tambin aparezcan en este ltimo ya que lo que
realmente se hace es reemplazar un men por otro y no completarlo.



Si desea que sea el formulario MDI el formulario inicial del proyecto, utilice el cuadro de
dilogo Opciones del men Herramientas de Visual Basic. En la ficha Proyecto se puede
establecer esta caracterstica del proyecto.

Elegir el formulario inicial de una aplicacin MDI no es una caracterstica sin importancia.
Si el formulario inicial es el formulario secundario, entonces al cargarse este formulario, fruto de
iniciarla aplicacin, tambin se cargar el formulario MDI.

Pero esto no sucede al revs, es decir, al cargarse el formulario MDI no se cargan los
formularios secundarios, proceso que deber realizar en el cdigo.

Diferencie claramente entre lo que sucede al cargarse un formulario secundario, que carga
automticamente el formulario MDI, si no lo estaba, y la propiedad del formulario MDI
AutoShowChildren, que permite mostrar automticamente los formularios secundarios cuando se
cargan.
P
17.3. FORMULARIOS SECUNDARIOS
Visual Basic 6.0 Microsoft

PAG. 130

Recuerde que al cargarse un formulario (evento Load) no se muestra en pantalla, sino que
debe hacerlo en el cdigo (por ejemplo mediante el mtodo Show).

Por otra parte, en tiempo de ejecucin, al maximizar el formulario secundario, se sigue
mostrando en el interior del MDI, pero con la caracterstica de que la barra de ttulo de este ltimo
cambia, combinando el ttulo del formulario MDI con el del secundario.


lo largo de este curso usted ha estado continuamente trabajando con objetos, tanto a
nivel visual, dibujndolos, como a nivel de cdigo, estableciendo propiedades y
utilizando mtodos.

Sin embargo, el curso no ha abordado la creacin de objetos en tiempo de ejecucin, es
decir, mediante cdigo (a excepcin del captulo matriz de controles).

En este captulo se hace inevitable mostrar cmo se pueden crear objetos en tiempo de
ejecucin, lo que es la base de la programacin orientada a objetos, metodologa de
programacin que est fuera del propsito de este curso.

Piense que en tiempo de diseo usted no puede conocer cuntos formularios secundarios
se van a crear, ya que esto lo decidir el usuario en tiempo de ejecucin.

Deber escribir cdigo que permita al usuario de una aplicacin MDI crear un nuevo
formulario, seguramente para trabajar con otro documento. Esta opcin suele aparecer en el men
Archivo.

Este cdigo debe ser escrito en un procedimiento que permita realizar este proceso. Fjese
cmo dicho procedimiento deber estar disponible tanto para el formulario MDI como para los
formularios secundarios, ya que ambos deben permitir crear formularios nuevos a travs de su
men Archivo.

Este es el cdigo que se utiliza en el curso en pantalla para crear nuevos formularios
secundarios:

Public Sub NuevoFormulario()
Dim nuevo As New Form1
Dim nombre As String
Do
nombre = InputBox("Introduzca el nombre del nuevo archivo.")
Loop Until nombre <>
'Alacceder a una propiedad se carga el formulario.
'Tambin se muestra ya que AutoShowChildren est a True.
nuevo.Caption = nombre
EndSub

A
17.4. INSTANCIAS DE FORMULARIO
Microsoft Visual Basic 6.0

PAG. 131

El procedimiento es pb1ico y est situado en un modulo estndar de Visual Basic. de esta
forma se puede utilizar tanto en el formulario MDI como en los secundarios.

En la primera lnea del procedimiento (Dim nuevo As New Form1) es donde se encuentra
la declaracin y creacin del nuevo formulario.

En esta lnea se est declarando (Dim) la variable nuevo indicando que es un nuevo
objeto (New) de la clase Form1 (As Form 1).

Es decir, estamos indicando que deseamos crear una copia del formulario Form1, que es el
formulario secundario de la aplicacin. A dicha copia del formulario Form1 tambin se la llama
instancia de la clase Form1.

Al insertar un formulario en tiempo de diseo, est creando una nueva clase que puede
utilizar en su cdigo para crear objetos de la misma (o instancias).

Repase la leccin Programacin en Visual Basic o acuda al manual del producto si desea
ms informacin.

Sigamos repasando el cdigo. Al declarar la variable nuevo como nueva instancia de
Form1, el nuevo formulario se crea, pero no llega a mostrarse. Es cuando se hace referencia a una
propiedad del nuevo formulario cuando se carga en memoria. Tambin llega a mostrarse gracias a
la propiedad AutoShowChildren del formulario MDI.

Fjese cmo el usuario deber introducir el ttulo del nuevo formulario para que se muestre
en pantalla, ya que en ese momento es cuando se utiliza su propiedad Caption.

Al crear una nueva instancia de la clase Form1, est creando un formulario totalmente
independiente de los que ha creado en tiempo de diseo, pero con la facultad de compartir o
heredar las caractersticas de la clase, es decir, sus propiedades, mtodos y eventos.

Programando cdigo para los procedimientos de evento del formulario secundario y de los
controles que se hayan dibujado en l, se asegura que el mismo cdigo ser ejecutado por cada
nueva instancia que se cree en ejecucin.

El resultado del cdigo se aplicar al formulario que tenga el foco cuando sucede el evento
para el que ha sido programada una determinada respuesta.


omo pudo observar en el primer captulo de la leccin, en la mayora de aplicaciones
MDI existe un men Ventana en el que se listan las ventanas secundarias que estn
abiertas y adems permite organizarlas en el rea de la ventana principal.

Esta funcionalidad la puede conseguir al crear una aplicacin Visual Basic con muy poco
esfuerzo de programacin.
C
17.5. EL MEN VENTANA
Visual Basic 6.0 Microsoft

PAG. 132


Utilizando el Editor de mens simplemente tiene que activar la casi1la WindowList del
elemento de men que desea que funcione como un men Ventana.

En tiempo de ejecucin, Visual Basic automticamente administra y muestra la lista de
ttulos de las ventanas abiertas y, adems, indica con una marca de verificacin cul es la activa o
aquella que tiene el foco. Fjese que no tiene que programar nada de cdigo para conseguir toda
esta funcionalidad.

Por otra parte, si desea introducir opciones para organizar las ventanas secundarias en el
interior del Formulario MDI, simplemente debe utilizar el mtodo Arrange de este formulario.
Fjese que Arrange es un componente del formulario MDI y, sin embargo, afecta a los formularios
secundarios que estn abiertos.

MDIForm1.Arrange vbCascade: en este caso se mostrarn en cascada, es decir, una
superpuesta a la otra pero permitiendo verlas todas a la vez.



MDIForml.Arrange vbTileHorizontal: de esta forma los formularlos secundarios se
mostrarn todos, dividiendo el espacio disponible en horizontal.

MDIForml.ArrangevbTileVertical: igual que el caso anterior pero dividiendo el espacio
del formulario MDI en vertical.








Microsoft Visual Basic 6.0

PAG. 133





omo ya se ha comentado, al cerrar el formulario MDI, tambin se cierran los
formularios secundarios. Sin embargo, este enunciado no es del todo exacto. Lo que
sucede al cerrar el Formulario MDI es que el evento QueryUnload es recibido primero por el
formulario MDI y despus por cada uno de los formularlos secundarios que estn abiertos en ese
momento.

Es en este evento, QueryUnload, donde nosotros podemos agregar cdigo para permitir
que el usuario confirme el deseo de cerrar los formularios secundarios. Esta circunstancia es muy
til si, por ejemplo, el contenido de algn formulario secundario ha cambiado y desea guardar
dichos cambios.

El evento QueryUnload ocurre antes de que el formulario se cierre. Si ha sido fruto de
cerrar el formulario MDI, entonces primero lo recibe este formulario y despus los secundarios. Si
ningn formulario cancela el evento QueryUnload, entonces ocurre el evento Unload en cada uno
de los formularios y finalmente en el MDI cerrndolos definitivamente.

En el procedimiento de evento QueryUnload existen dos parmetros: Cancel permite
cancelar el evento y UnloadMode indica por qu ha ocurrido dicho evento.

Utilizando UnloadMode podr diferenciar si el evento es fruto de cerrar el formulario
MDI, si es una peticin de cerrar la ventana secundaria expresamente o por algn otro motivo
como el cierre de Windows95.

Vamos a permitir que el usuario confirme el cierre de los formularios secundarios. Para
ello se le preguntar si realmente desea cerrar el formulario en el momento que ocurra el evento
C
17.6. EL EVENTO QUERYUNLOAD
Visual Basic 6.0 Microsoft

PAG. 134

QueryUnload. Si no desea cerrarlo, se cancelar dicho evento por lo que no se llegar a producir
el evento Unload. En las siguientes lneas puede ver el cdigo que consigue esta circunstancia:

PrivateSubForm_QueryUnload(CancelAslnteger, UnloadMode As Integer)
Dim respuesta As Integer
respuesta=MsgBox("Desea cerrar este formulario?,
vbYesNo, Me.Caption)
lf respuesta=vbNo Then


Cancel=True
End If
End Sub

Con estas lneas conseguimos que el usuario tenga la posibilidad de confirmar el cierre del
formulario. Fjese que este cdigo ser compartido por cada instancia de Form1 (la clase del
formulario secundario) que se cree en tiempo de ejecucin.

Para diferenciar un formulario de otro, se utiliza la palabra clave Me, que se adaptar en
cada caso al formulario activo (el que tiene el foco).

Se comprueba cul ha sido la respuesta del usuario. En el caso de que ste haya pulsado el
botn No del cuadro de mensaje, entonces debernos cancelar el evento QueryUnload simplemente
estableciendo el parmetro Cancel a True.

Al hacer esto, impedimos que suceda el evento Unload, por lo que no se cierra el
formulario. Tenga en cuenta que, si decide no cerrar un formulario secundario, se cancela el
evento Unload del mismo y del resto de formularios abiertos, incluido el formulario MDI. Deber
escribir ms cdigo para permitir cerrar un formulario y mantener otros abiertos.

Por otra parte seuti1iza en su cdigo la instruccin End, al ejecutarse dicha instruccin, la
aplicacin finaliza inmediatamente sin que ocurra ningn evento ms, por lo que no suceden los
eventos QueryUload ni Unload.















Microsoft Visual Basic 6.0

PAG. 135

Depurar la Aplicacin


isual Basic proporciona herramientas que le permiten depurar su aplicacin. Al
hablar de la depuracin de una aplicacin, nos referimos a la bsqueda, localizacin
y correccin delos errores que sta presente.

En toda aplicacin puede encontrar tres tipos de errores: errores en tiempo de
compilacin, errores en tiempo de ejecucin y errores lgicos.

Los errores en tiempo de compilacin suelen ser los ms sencillos de solucionar. Se
deben, en la mayora de casos, a escribir incorrectamente el nombre de alguna variable o a utilizar
propiedades y mtodos sobre objetos que no los poseen.

En la ficha Editor del cuadro de dilogo Opciones ( men Herramientas) puede observar
la presencia de la casilla Comprobacin automtica de sintaxis Si dicha casilla est activada,
Visual Basic estar pendiente del cdigo que escriba, avisndole de errores sintcticos. Seguro
que ya lo ha sufrido al realizar las prcticas que complementan el curso.

Si la opcin Verificacin automtica de sintaxis no est activada, Visual Basic no le
informa de los errores que puede detectar en tiempo de diseo, sino que es en el momento en que
la aplicacin se compila, cuando lo hace

Otro tipo de errores que pueden suceder al programar una aplicacin son los errores en
tiempo de ejecucin. Dichos errores se producen cuando Visual Basic encuentra una instruccin
en su cdigo que realiza una operacin imposible de ejecutar.

Fjese cmo la instruccin puede estar correctamente escrita segn la sintaxis del lenguaje,
por lo que no se ha detectado en tiempo de compilacin y, sin embargo, provocar un error en
tiempo de ejecucin.

Puede escribir manejadores de error para controlar este tipo de errores, como ya ha
hecho en una leccin anterior.

Finalmente, los errores ms difciles de depurar son los errores lgicos. Estos errores
ocurren cuando una aplicacin no funciona de la forma que esperamos. No se produce ningn
error detectable por Visual Basic, sino que simplemente el resultado no es el que pretendemos que
se produzca.

Deber utilizar las herramientas de depuracin de Visual Basic para seguir el cdigo al
ejecutarse y, de esta forma, localizar el error que produce que el resultado no sea el esperado.




V
18.1. TIPO DE ERROR
Visual Basic 6.0 Microsoft

PAG. 136


l primer paso a seguir una vez detectado que se ha producido un error (en el caso de un
error de carcter lgico deber ser usted mismo quien detecte el error al ejecutar la
aplicacin), es encontrarlo en el cdigo escrito.

Si la aplicacin es de un tamao apreciable, el tener que revisar todo el cdigo puede
resultar una tarea excesivamente costosa. Es aqu donde el entorno de desarrollo de Visual Basic
proporciona herramientas parabuscar un error.

Para buscar un error en tiempo de ejecucin, tiene dos posibilidades: iniciar la ejecucin y
cambiar al modo de interrupcin cuando lo crea oportuno o introducir puntos de interrupcin
en aquellos lugares del cdigo donde sospeche que se produce el error.

Un punto de interrupcin es una lnea del cdigo en la que se indica que la ejecucin debe
detenerse y pasara al modo Interrumpir, donde usted puede utilizar el entorno de desarrollo. La
lnea donde introduzca el punto de interrupcin no llegar a ejecutarse, sino que se interrumpir
antes de hacerlo.

Una vez entra en el modo Interrumpir, Visual Basic presenta la ventana de cdigo donde
introdujo el punto de interrupcin, rodeando con un rectngulo la lnea que va a ejecutarse y que
lgicamente se corresponde con aquella en la que situ un punto de interrupcin.

Otra forma de cambiar al modo interrumpir al ejecutar una aplicacin es a travs de la
instruccin Stop. Introducir dicha instruccin antes de la lnea o fragmento de cdigo sospechoso,
producir el mismo efecto que introducir un punto de ruptura.

Sin embargo, debe acordarse de eliminar dichas instrucciones antes de realizar el fichero
ejecutable de su aplicacin, tarea sta que veremos en la prxima leccin.


na vez ha entrada en modo Interrumpir, tiene a su disposicin un gran nmero de
herramientas que le facilitarn la localizacin de errores.

Una de las herramientas ms tiles es poder continuar la ejecucin del cdigo lnea a
lnea. De esta forma podr localizaren qu lnea se produce el error o, si es un error lgico el que
est buscando, cmo se comporta la aplicacin paso a paso.

Existen tres modalidades distintas en la ejecucin paso a paso: paso por instrucciones,
paso por procedimientos y paso hasta salir.




E
U
18.3. SEGUIR PASO A PASO
18.2. BUSCAR EL ERROR
Microsoft Visual Basic 6.0

PAG. 137

Para ejecutar la aplicacin paso a paso por instrucciones, deber pulsas en dicha
opcin situada en el men Depuracin. En este caso el cdigo se ejecuta una instruccin cada
vez. Recuerde que en una misma lnea puede haber ms de una instruccin, por lo que, al usar el
paso por instrucciones, no tiene porqu ejecutarse una lnea completa.

Paso a paso por procedimientos es similar al paso por instrucciones, excepto cuando la
instruccin que vaya a ejecutarse sea la llamada a un procedimiento: en el caso del paso por
instrucciones, la siguiente instruccin a ejecutar ser la primera del cuerpo del procedimiento;
mientras que en el caso del paso por procedimientos, la llamada al procedimiento ser tratada
como una instruccin nica, ejecutndose completamente.

En cualquiera de estas dos formas de ejecutar una aplicacin, si en alguna de las
instrucciones se necesita la interaccin del usuario, como puede ser para introducir algn dato,
Visual Basic esperar a que se produzca.

Con Paso a paso para salir se ejecuta las dems lneas de una funcin en laque reside el
punto de ejecucin actual. La siguiente instruccin mostrada es la instruccin que sigue a la
llamada a procedimiento. Todo el cdigo se ejecuta entre los puntos de ejecucin actual y final.
Slo est disponible en modo de interrupcin.


n la mayora de ocasiones tendr que analizar el valor que van tomando las variables y
las propiedades de los objetos que aparecen en su cdigo para comprender por qu se
produce el error que est depurando.



Hay tres tipos de ventanas de depuracin: la de inmediato, la de inspeccin y la de locales.

El uso ms comn de la ventana de inspeccin es el de agregar expresiones de inspeccin.
Estas expresiones permiten controlar el valor que toman las variables o expresiones ms
complejas.
E
18.4. LA VENTANA DEPURACIN
Visual Basic 6.0 Microsoft

PAG. 138

La forma de agregar una expresin de inspeccin a la ventana es muy sencilla: seleccione
la expresin en la ventana de cdigo y utilice la opcin Agregar inspeccin del men
Depuracin. Entonces aparecer el cuadro de dilogo de la figura.

En este cuadro de dilogo podr especificar la expresin que desea controlar, adems de
indicar el mbito dela misma.

Por otra parte en la seccin Tipo de inspeccin podr indicar si es una expresin de
inspeccin, caso en el que tendr que haber entrado en el modo Interrumpir para poder comprobar
su valor, o una expresin de ruptura, que cambia automticamente al modo Interrumpir una vez
se cumple dicha expresin.

Existen dos tipos de expresiones de ruptura, como puede comprobar en la seccin Tipo de
inspeccin. La diferencia es la condicin que debe cumplirse para que Visual Basic entre en el
modo Interrumpir y poder as comprobar el valor de la expresin.



En la figura anterior se est creando una expresin de inspeccin para la variable Archivo,
es decir, cuando entremos en el modo Interrumpir (a travs de un punto de i interrupcin por
ejemplo), usted podr ver el valor en ese instante que tiene almacenado la variable Archivo. Dicho
valor aparecer en la ventana Inspecciones.

La ventana Inmediato le permite introducir comandos de Visual Basic que le ayuden a
localizar el error.

Para introducir estos comandos, deber estar en el modo interrumpir. Dichos comandos
son independientes del cdigo que haya escrito, no afectando al mismo.


xiste una forma ms sencilla de comprobar el valor de una determinada expresin
cuando est en el modo Interrumpir, sin necesidad de agregar una expresin de
inspeccin.

Una vez est en el modo Interrumpir la opcin Inspeccin rpida est disponible en el
men Depuracin. Dicha opcin sirve para comprobar el valor de la expresin que tenga
seleccionada en la ventana de cdigo.

Cuando pulse este botn, Visual Basic le informar del valor de dicha expresin en ese
momento, de ah el nombre de inspeccin rpida. Si lo desea, podr agregar esa expresin como
una expresin de inspeccin ms, mostrndose en la ventana Depuracin.

E
18.5. INSPECCIN INSTANTANEA
Microsoft Visual Basic 6.0

PAG. 139

Otra forma de inspeccin instantnea se realiza pulsando sobre la variable que queremos
inspeccionar, en la ventana de cdigo. Visual Basic muestra, al cabo de un instante, una pequea
ventana amarilla con el valor de dicha variable.


al vez la caracterstica ms potente que presenta Visual Basic en el aspecto de la
depuracin de una aplicacin, es la posibilidad de corregir el error y continuar con la
ejecucin como si nada hubiese ocurrido. Es decir, en muchas ocasiones no necesitar terminar la
aplicacin para poder corregir un error.

Sin embargo, esto no es siempre posible, teniendo, en ocasiones, que iniciar de nuevo el
proyecto para que la modificacin tenga efecto. Visual Basic se lo indicar cuando sea necesario.

Cuando se produce el error, Visual Basic permite pasar al modo Interrumpir. Podr utilizar
la ventana Inspeccin y la de cdigo para corregir el error. Si despus, al pulsar el botn
Continuar, Visual Basic puede continuar, solucionando el problema, lo har. En otro caso le
indicar que debe iniciar de nuevo el proyecto.


1 ltimo punto que vamos a tratar referente a la depuracin de una, aplicacin es la
posibilidad de observar las llamadas a los procedimientos que se realizan en la
ejecucin de la misma.

El cuadro de dilogo Pila de llamadas muestra una lista, en tiempo de interrupcin, con
todas las llamadas a procedimientos que todava estn activos, es decir, aquellos procedimientos
cuya ejecucin ha comenzado pero que todava no ha terminado.

Para mostrar las llamadas a procedimientos activos, utilice la opcin Pila de llamadas del
men Ver.

En la siguiente figura se muestra la situacin de la ventana Llamadas en un determinado
momento del curso en pantalla.


T
E
18.6. CORREGUIR Y SEGUIR
18.7. LLAMADAS A PROCEDIMIENTOS
Visual Basic 6.0 Microsoft

PAG. 140


Debe entender este cuadro de la siguiente forma: el procedimiento cmdIniciar_Click
realiz una llamada al ProcedimientoA y ste, a su vez, al ProcedimientoB. Fjese cmo la lista
de llamadas acta como una pila, en el sentido que el ltimo procedimiento llamado es el que se
sita en la parte superior de la lista.











































Microsoft Visual Basic 6.0

PAG. 141


Finalizar la Aplicacin


na vez ha concluido el diseo de la aplicacin y depurados los errores que ha podido
detectar, es el momento de realizar unos cuantos pasos necesarios para finalizar la
aplicacin.

Entre estos pasos cabe destacar: compilar completamente la aplicacin, crear un archivo
ejecutable y preparar los medios de distribucin para la instalacin de la aplicacin en un equipo
que ejecute Windows 95/98 o Windows NT.

Estos temas sern tratados en esta ltima leccin del curso. Esperamos que este curso haya
servido como una buena introduccin a la programacin en Visual Basic y que le permita crear
aplicaciones Windows de cierta complejidad, de una forma organizada.


isual Basic proporciona la posibilidad de especificar opciones del entorno de
desarrollo que permiten iniciar una aplicacin de forma rpida, sin complicar
completamente el proyecto.

Estas opciones, aunque interesantes mientras est diseando su proyecto, pueden impedir
encontrar todos los errores que se hayan producido en su aplicacin ya que no se ha compilado
por completo.

En la ficha General del cuadro de dilogo Opciones (men Herramientas) se presentan
unas cuantas opciones que afectan al modo en el que se compila un proyecto.

La opcin Compilara peticin, cuando est activada, permite iniciar rpidamente la
aplicacin ya que la compilacin del cdigo de la misma se produce cuando es necesario y no
completamente antes de iniciarla.

Esta circunstancia puede producir que existan errores sin detectar, al no ejecutar todo el
cdigo de la aplicacin.

Si esta casilla est activada, la casilla Compilar en segundo plano sirve para que la
compilacin del proyecto contine en tiempo de ejecucin cuando la aplicacin est esperando
algn evento.

Aunque estas opciones son muy interesantes en la fase de diseo de la aplicacin, es
conveniente, una vez desee finalizar la aplicacin, compilarla completamente, de forma que se
asegure haber detectado todos los errores de compilacin.
U
V
19.1. INTRODUCCIN
19.2. COMPILAR LA APLICACIN
Visual Basic 6.0 Microsoft

PAG. 142


Existe una opcin en el men Ejecutar que permite esta circunstancia. En lugar de elegir
Iniciar, elija Iniciar con compilacin completa y el proyecto ser completamente compilado
antes de que se inicie, independientemente del valor que tengan las opciones anteriormente
mencionadas.

Al compilar completamente el proyecto, se asegura que los errores de compilacin sean
totalmente detectados. Lgicamente esto no puede aplicarse para los errores en tiempo de
ejecucin o errores lgicos, para los que la nica forma de asegurar su depuracin es realizando
pruebas sobre el proyecto.

Utilice la compilacin a peticin mientras vaya diseando el proyecto y la compilacin
total en las fases finales de dicho diseo. Adems, al crear un archivo ejecutable de la aplicacin,
tambin se compilar totalmente el proyecto.


oda aplicacin Windows ser ejecutada al hacer doble clic en un determinado archivo
ejecutable o a travs de un acceso directo a dicho archivo.

Hasta ahora usted ha ejecutado la aplicacin desde el entorno de desarrollo de Visual
Basic, pero cuando distribuya su aplicacin al usuario final, ste debe ejecutarla como una
aplicacin ms de Windows, por lo que es necesario crear un archivo ejecutable.

Visual Basic permite la creacin de archivos ejecutables a travs de la opcin Generar
proyecto EXE... del men Archivo, donde proyecto aparece como el nombre del proyecto
ejecutable (en el ejemplo del curso ser VideoClub.exe).

Al crear el archivo ejecutable, Visual Basic compila completamente el proyecto, por lo que
si no lo haba hecho antes, es posible que encuentre nuevos errores de compilacin.

Ser necesario especificar el nombre que desea dar al archivo ejecutable de la aplicacin y
la ubicacin de ste. Adems, a travs del botn Opciones, podr establecer ciertos valores
descriptivos sobre la versin del archivo ejecutable.












T
19.3. CREAR EJECUTABLES
Microsoft Visual Basic 6.0

PAG. 143





Unas de las opciones que puede especificar es la versin del ejecutable, de la misma
forma que hacen la mayora de empresas de software (Word 7.0, Visual Basic 6.0, etc.)

Si activa la opcin Incremento automtico, Visual Basic incrementar el nmero de
revisin automticamente cada vez que utilice al opcin Crear Archivo EXE.

En la seccin Aplicacin, puede indicar el nombre de la aplicacin y especificar un icono
identificativo de la misma. Este icono ser aquel que se utilice cuando la ventana principal de la
aplicacin sea minimizada.

Finalmente, puede agregar informacin descriptiva de la aplicacin en la seccin
Informacin de versin.

Una vez cree el archivo ejecutable, puede utilizarlo como cualquier otro archivo de estas
caractersticas. Haga doble clic sobre l, por ejemplo desde el Explorador de Windows y la
aplicacin debe iniciarse, independientemente de Visual Basic.

Por otra parte, toda la informacin que ha introducido en el cuadro de dilogo
Propiedades del proyecto, aparecer en el panel de propiedades de archivo ejecutable, accesible
por ejemplo, a travs del men contextual de archivo.





Visual Basic 6.0 Microsoft

PAG. 144




na vez a creado el archivo ejecutable de su aplicacin Windows y habiendo
comprobado que funciona como cualquier otro archivo ejecutable, es el momento de
preparar la distribucin de su aplicacin

Para distribuir su aplicacin al usuario final, necesita crear un programa de instalacin
que se encargue de copiar los archivos necesarios en el equipo del usuario. En este caso es muy
posible que el usuario final no posea Visual Basic por lo que tendr que distribuirle todos los
ficheros necesario para ejecutar su aplicacin.

Visual Basic incorpora un asistente que le facilite la creacin del programa de instalacin,
preguntndole en cada uno de los pasos la informacin que necesite.

El Asistente de empaquetado y distribucin crear los disquetes u otros medios de
distribucin con los archivos necesarios para que instale la aplicacin correctamente, adems de
comprimirlos con el objeto de que ocupen menos espacio en su medida de distribucin.

El asistente de instalacin es una aplicacin autnoma, y puede ser agregada desde el
Administrador de complementos del men Complemento, o bien, iniciarla desde fuera de
Visual Basic.

Este componente de l paquete Visual Basic aparecer en el grupo d programas que se crea
al instalar Visual Basic. Si utiliza el men Inicio de Windows, lo podr encontrar en el grupo
Programa Microsoft Visual Basic 6.0 Herramientas de Microsoft Visual Basic 60.

En el primer paso del Asistente de instalacin, se le pide que introduzca la ruta y el
nombre del archivo de proyecto.

U
19.4. EL ASISTENTE DE INSTALACIN
Microsoft Visual Basic 6.0

PAG. 145


Es, sin embargo, recomendable, haber creado el archivo ejecutable previamente y no
encontrar errores inesperados en estos momentos.

En el siguiente paso del asistente se le pregunta el tipo de paquete que desea crear.
Utilizaremos Paquete de instalacin estndar para crear nuestro programa de instalacin.

Siguiendo con la instalacin el asistente le pregunta por la carpeta donde se almacenarn
los archivos empaquetados (.CAB) y el programa de instalacin. Para ello crearemos una nueva
carpeta a la que llamaremos Instalacin de VideoClub.

En el siguiente paso del asistente se le muestra los archivos que sern incluido en el
paquete de instalacin. Podr agregar otros archivos necesarios, como archivos de imagen, base de
datos, etc., Pulsando el botn Agregar.

Siguiendo con la instalacin deber indicar las opciones de empaquetado de los archivos
(,CAB). Si va a distribuirla utilizando disquetes, la opcin a elegir ser la de Mltiples archivos.

Visual Basic 6.0 Microsoft

PAG. 146



Si el medio de instalacin es, por ejemplo, CD.ROM, entonces le interesa guardar los
archivos en un nico archivo .CAB.

A continuacin se le pregunta el nombre que desea darle a la aplicacin.







Microsoft Visual Basic 6.0

PAG. 147



Seguidamente podemos indicar el lugar que ocupar el acceso a la aplicacin, en el men
de inicio de Windows y nos informa de donde se instalarn cada uno de los archivos de la
aplicacin. En este paso es posible tambin modificar la ubicacin de los archivos.

A continuacin se le pregunta por la posibilidad del uso compartido del archivos.

Finalmente el Asistente ya tiene toda la informacin necesaria para general el programa de
instalacin de su aplicacin.

Como ha podido observar, existen un gran nmero de archivos que usted no ha creado en
su proyecto y que, sin embargo, es necesario distribuir para que la aplicacin funcione
correctamente en cualquier equipo que ejecute Windows.

Estos archivos se corresponden con archivos de bibliotecas de tipos, controles Actives y
otros archivos necesarios para que una aplicacin Visual Basic se pueda ejecutar como desarrollo
de Visual Basic.


El Asistente de instalacin de Visual Basic:

Crear un programa de instalacin de nombre SETUP .EXE que utilizan los usuarios
finales para instalar la aplicacin en su equipo. Este programa realizar las preguntas
necesarias al usuario para instalar en el directorio donde desee hacerlo.

Genera un archivo ejecutable actualizado.
19.5. QU CREA EL ASISTENTE ?
Visual Basic 6.0 Microsoft

PAG. 148


Comprime los archivos de forma que ocupen menos espacio en el medio de distribucin.

Informa del nmero de discos si ste es el medio de distribucin y del espacio libre que
necesitarn tener el usuario en su disco duro para la instalacin.

El programa de instalacin generado al utilizar el Asistente:

Crea un elemento en el men Inicio que le permite acceder a la aplicacin.

Registra la aplicacin en el Registro de Windows.

Permite la desinstalacin de la aplicacin a travs del elemento Agregar o quitar
programas del Panel de control de Windows.


































Microsoft Visual Basic 6.0

PAG. 149

















































Visual Basic 6.0 Microsoft

PAG. 150

Objetos de Datos Activos ADO


1 control de datos ADO es la ms moderna tecnologa de Microsoft para trabajar con
informacin almacenada en bases de datos. ADO utiliza la ltima tecnologa de
acceso a datos denominada OLE DB, que ha sido diseada para proporcionar acceso a un amplio
rango de orgenes de datos, tanto locales como remotos, disponibles en su ordenador.

En esta leccin aprenderemos su uso y el del control DataGrid 6.0 (OLE DB) con el que
podremos mostrar y manipular de forma directa la informacin de una base de datos.


1 control Microsoft ADO Data Control 6.0 es un control ActiveX que tendr que ser
aadido a la caja de herramientas con la opcin Componentes del men Proyecto.


El control ADO al igual que el control Data visto en
la leccin 13 crea un control grfico con los botones de
Adelante y Atrs y una a interfaz fcil de usar que le permite
crear aplicaciones para bases de datos con un mnimo cdigo.


Con el control ADO puede crear de una manera rpida conexiones entre los controles de
enlace de datos ( los que tienen la propiedad DataSource) y proveedores de datos (cualquier
origen de datos escrito para OLE DB).

Con el control Data slo tenamos que asignar a la propiedad DatabaseName el nombre
de una ruta de una base de datos vlida contenida en su sistema, para vincular el formulario con la
base de datos.

En ADO tendr que realizar un paso preliminar, establecer una conexin con un origen de
datos.

Use la propiedad ConnectionString para especificar un origen de datos. Pulsando en
aparece siguiente cuadro de propiedades donde podr especificar el origen de la conexin.







E
E
20.1. INTRODUCCIN
20.2. EL CONTROL ACTIVEX ADO
Microsoft Visual Basic 6.0

PAG. 151



Si ha creado un archivo de vnculo de datos de Microsoft (.UDL) seleccione Usar archivo
de vinculo a datos. Si usa un origen de datos OLE DB, debe crear el nombre del vnculo de datos
de Microsoft en el equipo. En el siguiente captulo aprenderemos a crear un archivo de vnculo de
datos.

Si usa un DSN, haga clic en Usar nombre de origen de datos ODBC y seleccione un
DSN del cuadro o haga clic en Nuevo para crear una nuevo.

Si lo que quiere es usar una cadena de conexin, seleccione Usar cadena de conexin y
haga clic en Generar. Utilice el cuadro de dilogo Propiedades de vinculo de datos para crear
una cadena de conexin.

Otra propiedad que deber establecer es RecordSource, donde indicaremos el Origen de
registros. Seleccione en la listaTipo de comando el tipo Tabla (adCmdTable) y en la lista Tabla
o nombre procedimiento almacenado la tabla que desee.


Visual Basic 6.0 Microsoft

PAG. 152

Si modifica la propiedad RecordSource en tiempo de ejecucin deber utilizar el mtodo
Refresh para actualizar el nuevo conjunto de registros y los datos de los controles enlazados.

Por otra parte puede utilizar los mismos mtodos vistos para el control Data para aadir y
eliminar registros as como aquellos que nos permiten movernos por el conjunto de registros. La
modificacin de registros se realiza directamente ya que el control ADO no posee el mtodo Edit.

Veamos como quedara el cdigo que permite editar el registro:

Adodc1.Recorset("Devuelto"9=True "Cambia el valor
Adodc1.Update "Actualiza el registro

La siguiente tabla resume los eventos ms importante de del control de datos ADO. Para
obtener ms informacin, vea el tema de referencia de cada evento en particular, en el sistema de
ayuda.

EVENTO CUANDO SE PRODUCE
WillMove Durante RecordSet.
MoveNext,...,AddNew Delete, etc.
WillChangeField Antes de que cambie la propiedad
Value.
WillChangeComplete Despus de Wil IChangeField.
WillChangeRecord Durante RecordSct.Update
Delete, etc.
WillChangeRecordset Durante RecordSet.Requery, ,
Close, Open, etc.

Como hemos visto anteriormente, la creacin de un nombre de origen de datos OLE DB es
un paso esencial en el acceso a datos.

Para crear un origen de datos acceda al Explorador de Windows y seleccione la carpeta
donde desee crearlo.

Seleccione Archivo - Nuevo - Microsoft Data Link.

Introduzca el nombre del archivo (p, ej ConexinVideoCLub. UDL).

Al hacer doble clic sobre el archivo creado aparece el siguiente cuadro de propiedades.

En la ficha Proveedor seleccione Microsoft J et 3.5 OLE DB Provider

En la ficha Conexin debe de especificar la base de datos a la cual accedemos. Pulsando
en el botn aparecer un cuadro de dilogo donde localizar la base de datos de Access.

Finalmente pulse el botn Probar conexin para comprobar que la conexin con la base de
datos es satisfactoria.

Microsoft Visual Basic 6.0

PAG. 153


omo hemos visto anteriormente, la creacin de un nombre de origen de datos OLE
DB es un paso esencial en el acceso a datos.

Para crear un origen de datos, acceda al Explorador de Windows y seleccione la carpeta
donde desee crearlo.

Como puede comprobar, aparece el cuadro de dilogo Propiedades de Data Link, donde
estableceremos los parmetros de conexin con el origen de datos, que en nuestro ejemplo ser
Videoclub.mdb.

En esta ficha seleccionaremos el proveedor de OLE DB adecuado para el tipo de datos a
los que desea tener acceso. No todas las aplicaciones le permite especificar un proveedor o
modificar la seleccin actual, esta ficha se muestra nicamente si la aplicacin, permite modificar
la seleccin del proveedor de OLE DB.

En la ficha Conexin tiene que indicar el origen de datos que utilice en su aplicacin, en
este caso la base de datos Videoclub.


1 control DataGrid 6.0 es un control vinculado de tipo hoja de calculo que muestra
una serie de filas y, columnas que representan registros y campos de un objeto
Recordset. Puede usar DataGrid para crear una aplicacin que permita al usuario leer y escribir
en la mayora de las bases de datos. Puede configurar DataGrid rpidamente en tiempo de diseo
sin ningn cdigo.

Al establecer la propiedad DataSource del control DataGrid en tiempo de diseo, el
control se rellena automticamente y sus encabezados de columna se establecen automticamente
desde el conjunto de registros del origen de datos. Puede editar las columnas de la cuadrcula;
eliminar, cambiar el orden, agregar encabezados de columna, o ajustar el ancho de las columnas a
travs de los comandos de su men contextual.

En tiempo de ejecucin DataSource se puede cambiar mediante programacin para ver
una tabla diferente, o se puede modificar la consulta de la base de datos actual para que devuelva
un conjunto de registros diferente.

El primer conjunto de propiedades interesantes de dicho control es el que establece su
comportamiento en tiempo de ejecucin. As, las propiedades AllowAddNew, AllowDelete,
AllowUpdate indican si, en tiempo de ejecucin, se va a permitir aadir, eliminar o actualizar
respectivamente registros en la cuadrcula.

C
E
20.4. CONTROL DATAGRID 6.0
20.3. CREAR ARCHIVO VNCULO DE DATOS
Visual Basic 6.0 Microsoft

PAG. 154

Si modifica la propiedad RecordSource de un control ADO en tiempo de ejecucin
deber utilizar el mtodo ClearFic1dsy ReBind del control DataGrid para restaurar el nuevo
conjunto de registros y los datos del control.

El mtodo ClearFic1ds restaura la distribucin predeterminada de la cuadrcula (con dos
columnas en blanco) para que las subsiguientes operaciones ReBind deriven automticamente los
nuevos enlaces de la columna a partir del origen de datos.

Bookmarks y SelBookmarks proporcionan un medio para hacer un seguimiento de
registros. Esto es necesario cuando programa una funcionalidad especial en una aplicacin, como
permitir que el usuario seleccione manualmente varios registros no contiguos y realizar una
actualizacin en bloque de los registros seleccionados. En ese caso, necesitar hacer un
seguimiento de qu registros se han seleccionado, y por tanto usara la coleccin SelBookmarks y
sus propiedades.


































Microsoft Visual Basic 6.0

PAG. 155

PRCTICAS ADOBE PHOTOSHOP 6.0

NDICE


LECCIN 1: INTRODUCCIN A VISUAL BASIC 6.0

Prctica 1

LECCIN 2: EL ENTORNO DE DESARROOLLO.

Prctica 2

LECCIN 3: PROGRAMACIN EN VISUAL BASIC.

Prctica 3

LECCIN 4: TRABAJAR CON MENS.

Prctica 4

LECIN 5: CUADROS DE DILOGO.

Prctica 5

LECCIN 6: CONTROLES BSICOS.

Prctica 6

LECCIN 7: CONTROLES BSICOS (II).

Prctica 7

LECCIN 8: FUNDAMENTOS DE PROGRAMACIN.

Prctica 8

LECCIN 9: FUNDAMENTOS DE PROGRAMACIN (II).

Prctica 9

LECCIN 10: FUNDAMENTOS DE PROGRAMACIN (III).

Prctica 10

LECCIN 11: EFECTOS GRAFICOS.

Visual Basic 6.0 Microsoft

PAG. 156

Prctica 11

LECCIN 12: ELAMINISTRADOR VISUAL DE DATOS.

Prctica 12

LECCIN 13: ACCESO A BASE DE DATOS.

Prctica 13

LECCIN 14: PROGRAMAR CON LA BASE DE DATOS.

Prctica 14

LECCIN 15: OPCIONES AVANZADAS DE BASES DE DATOS.

Prctica 15

LECCIN 16: TRABAJAR CON ARCHIVOS.

Prctica 16

LECCIN 17: UTILIZACIN OLE.

Prctica 17

LECCIN 18: APLICACIONES MDI.

Prctica 18

LECCIN 19: DEPURAR LA APLICACIN.

Prctica 19

LECCIN 20: FINALIZAR LA APLICACIN.

Prctica 20

EJERCICIO FINAL.









Microsoft Visual Basic 6.0

PAG. 157


INTRODUCCIN A VISUAL BASIC

PRACTICA

En esta primera prctica conocer un poco ms el funcionamiento de una aplicacin
Windows tpica: el procesador WordPad.

Con el men Inicio de Windows abra la aplicacin WordPad que est en el grupo
Programas-Accesorios.

Observe como la aplicacin se abre en una ventana independiente que puede cambiar de
tamao, maximizarse o minimizarse, utilizando los botones de la ventana.

Despliegue el men principal que aparece. Observe la barra de estado, donde se le da
informacin sobre el comando del men en el que est situado. Elija la opcin Insertar-
Fecha y hora.

Se abre una nueva ventana. Este tipo de ventanas se llaman cuadro de dilogo porque se
establece una especie de dilogo entre el usuario y la aplicacin. Fjese como este caso
usted puede indicar el formato de fecha.

Compruebe que la ventana principal ya no es la activa, pasando el foco al cuadro de
dilogo. (Fjese en el color de la barrra de ttulo de una y otra ventana). Observe como esta
nueva ventana ya no presenta todos los botones de ventana.

Pulse el botn Aceptar. Vuelva a mostrar el mismo cuadro de dilogo. Ahora pulse el
botn Cancelar. Dese cuenta en la diferencia que representa cerrar un cuadro de dilogo
con un botn Aceptar y con otro Cancelar.

Elija la opcin Archivo-Abrir. Pulse la tecla [Esc] El cuadro de dilogo se cierra como si
hubiera pulsado el botn Cancelar.

Pulse el botn abrir Se vuelve abrir el mismo cuadro de dilogo. Las barras de
herramientas permiten un acceso ms rapido a ciertos comandos de men.

Cancele el cuadro y salga de WordPad con la opcin Salir del men Archivo. Responda
que no al cuadro de mensaje que aparece. En el cuadro aprender muchas de las tcnicas
necesarias para crear aplicaciones similares a sta.








1
Visual Basic 6.0 Microsoft

PAG. 158

















































Microsoft Visual Basic 6.0

PAG. 159


EL ENTORNO DE DESARROLLO


PRCTICA

En esta segunda prctica ya trabaja en el entorno de desarrollo de Visual Basic. Conocer
su interfaz de usuario y establecer algunas opciones para el resto de las prcticas. Tambin
guardar su primer proyecto Visual Basic.

Inicie Visual Basic a travs del men Inicio de Windows y cree y proyecto exe estndar.
Observe como presenta una ventana que ocupa toda la pantalla y un conjunto de ventanas
ancladas a sus lados. Detrs est situado el escritorio de Windows.

Identifique cada una de las ventanas de Visual Basic: la Principal, la de Proyecto, la de
Propiedades, la caja de herramientas, etc.

Cierre la ventana posicin del formulario y que Visual Basic pregunte si se desea guardar
el proyecto antes de que se inicie.

Introduzca el siguiente cdigo en el evento Activate del formulario.
Print "Esta instruccin muestra el texto en la ventana."

Guarde el proyecto que aparece por omisin al cargar Visual Basic. Cree una carpeta para
este proyecto de nombre Prctica2 de VB. El nombre del proyecto ser Prctica2.vbp.
Acepte el nombre que le sugiere Visual Basic para el formularlo.

Inicie la ejecucin del proyecto. Fjese en la barra de ttulo de Visual Basic y compruebe
como le indica en cada caso en qu tiempo de desarrollo se encuentra: diseo, ejecucin o
interrupcin.

Pase al modo Interrumpir. Finalmente termine la aplicacin con el botn Terminar.

Salga de Visual Basic hasta la prxima prctica.













2
Visual Basic 6.0 Microsoft

PAG. 160

















































Microsoft Visual Basic 6.0

PAG. 161


PROGRAMACIN EN VISUAL BASIC


PRCTICA

En esta Prctica establecer propiedades de un objeto formulario. Dicho formulario ser
la ventana principal de la aplicacin que se estudia en gran parte del curso en pantalla y que
tambin sirve como proyecto en muchas de las prcticas.

Usted realizar, en las prcticas, algunas tareas que ha visto en el curso aunque no
completamente y otras total mente nuevas.

Inicie Visual Basic, lo que har que aparezca un nuevo proyecto en pantalla con un nico
formulario.

Utilice la ventana Propiedades para establecer el valor de las propiedades necesarias para
que el formulario presente las siguientes caractersticas:

Sea una ventana redimensionable en la que aparezcan los botones minimizar,
maximizar y restaurar. Tambin debe estar disponible el men de control.

La barra de ttulo de la ventana debe presentar el texto Videoclub BRANDO.

Debe presentar el icono de formulario de nombre Eye. ico, situado en la
ruta\Common\ Graphics\lcons\Nisc.

Su nombre sea frmPrincipal.

Aparezca maximizado cuando se cargue en ejecucin.

Guarde el nuevo proyecto en una carpeta de nombre Videoclub. El nombre del formulario
ser Principal.frm y el nombre del proyecto Videoclub.vbp.

Salga de Visual Basic hasta la prxima practica.












3
Visual Basic 6.0 Microsoft

PAG. 162

















































Microsoft Visual Basic 6.0

PAG. 163


TRABAJAR CON MENS


PRCTICA

En esta prctica construir completamente el men del formulario creado en la anterior
prctica.

Abra el proyecto Videoclub.vbp situado en la carpeta Videoclub, creado en la anterior
prctica.

Realice las acciones necesarias para que el nico formulario que existe en el proyecto,
tenga el siguiente men:

Objeto men Nombre objeto

Archivo mnuArchiv0
Copia de seguridad mnuArchivoCopia
Restaurar mnuArcluvoRestaurar
--------------------------- mnuArchivoSepl
Salir mnuArchivoSalir

Introducir mnuIntroducir
Socio Ctrl+S mnuritroducirSocio
Pelcula Ctrl+P mnu ntroducirPel cula

Prstamos mnuPrstamos
Prestar pelcula... Ctrl+Z mnuPrstamosPrestarpelcula
Devolver pelcula Ctrl+Y mnuPrstaniosDevolverpelcula

Informes mnuInformes
Prestamos fuera de tiempo
mnuInformesPrstamosfueratiempo
Bsquedas mnuInformesBsquedas
Buscar pelcula... mnuInfomesBsquedasBuscarpelcula
Buscar socio... mnuInfomesBsqtiedasBuscarsocio

Ayuda mnuAyuda
Contenido F 1 mnuAyudaContenido
--------------------- mnuAyudaSep 1
Acerca de mnuAyuda.Acercade

El elemento Archivo - Salir debe realizar dos acciones: descargar el formulario de
memoria y salir de la aplicacin.

Guarde el proyecto.
4
Visual Basic 6.0 Microsoft

PAG. 164


Inicie el proyecto. Observe corno la ventana aparece maximizada al iniciarse.

Despliegue todos los elementos de men y compruebe que aparecen correctamente tanto
las teclas de acceso rpido, de mtodo abreviado y los niveles de men.

Finalice la ejecucin con la opcin correcta del men creado.

Salga de Visual Basic hasta la prxima prctica.







































Microsoft Visual Basic 6.0

PAG. 165


CUADROS DE DILOGO


PRCTICA

En esta prctica trabajar con el control Dilogo comn para mostrar cuadros de dilogo
estndar de Windows.

Abra el proyecto Vdeoclub.vbp. Deber estar tal como lo dej en la anterior prctica.
Muestre en pantalla el nico formulario que contiene.

Inserte un objeto Dilogo Comn en el formularlo. No hace falta establecer ninguna
propiedad, llamndose CommonDialog l.

Elija la opcin Copia de seguridad... del men Archivo del formulario. Aparecer el
procedimiento de evento Click de dicho elemento de men.

Utilice el mtodo ShowPrinter para que se muestre el cuadro de dilogo Imprimir.

Inicie el proyecto sin guardar los cambios. Elija Archivo - Copia de seguridad y
compruebe que aparece el cuadro de dilogo Imprimir.

Vuelva a Visual Basic.

Elimine la lnea de cdigo en la que se utiliza el mtodo ShopwPrinter e introduzca las
lneas de cdigo necesarias para que:

La barra de ttulo del cuadro de dilogo muestre el texto Realizar copia de
seguridad.

La extensin por omisin del archivo a guardar sea MDB.

La lista de tipos de archivo permita ver o bien las bases de datos (*.mdb) o bien los
archivos de texto (*.txt) o bien todos los archivos (*.*). Recuerde utilizar el
carcter en la propiedad Filter. Se muestre el cuadro de dilogo Guardar como.

Guarde el proyecto e incielo.

Elija la opcin Copia de seguridad... del men Archivo. Compruebe que el cuadro de
dilogo presenta las caractersticas requeridas. Despliegue la lista de tipos de archivo y vea
que existen las tres posibilidades indicadas.

Vuelva a Visual Basic y cirrelo hasta la prxima prctica.



5
Visual Basic 6.0 Microsoft

PAG. 166

















































Microsoft Visual Basic 6.0

PAG. 167


CONTROLES BSICOS


PRCTICA

En esta prctica debe crear un formulario nuevo y dibujar los distintos controles para que
tenga el aspecto de la figura.

En la figura se le indica el nombre de cada control, siendo el del formulario frmDetsocios.



Inicie Visual Basic y abra el proyecto Videoclub.vbp situado en la carpeta Videoclub.
Inserte un nuevo formulario y realice las acciones necesarias para que su aspecto sea el de
la figura anterior.

El formulario debe presentar las caractersticas de un cuadro de dilogo: sin icono yno
redimensionable.

Ajuste el tamao y la posicin del formulario a la que usted desee para que el formulario
no se vea descompensado.

El cuadro de texto txtDir debe permitir introducir ms de una lnea de texto as como
presenta una barra de desplazamiento vertical.

El botn Cerrar debe responder tanto a pulsar en l como a pulsar la tecla [Esc]. Al
hacerlo, se descargar de memoria el formulario.

6
Visual Basic 6.0 Microsoft

PAG. 168

Conecte este formulario con la opcin Introducir- Socio del men del formulario
frmPrincipal creado en una practica anterior.

Inicie el proyecto guardando los cambios. El nombre del archivo del formularlo ser
Detalles Socio.frm.

Compruebe que al elegir la opcin mencionada del men aparece el nuevo cuadro de
dilogo y el aspecto de los controles dibujados.

Utilice las teclas de acceso rpido de las etiquetas para comprobar que no reciben el foco
sino que lo hace el cuadro de texto que tiene asociadas.

Vuelva a Visual Basic y salga de l hasta la prxima prctica.



































Microsoft Visual Basic 6.0

PAG. 169


CONTROLES BSICOS II


PRCTICA

En esta prctica trabajara preferentemente con el control cuadro de lista.

Inicie Visual Basic con lo que se crear un nuevo proyecto con un nico formulario.

Realice los pasos necesarios para conseguir que el formulario presente un aspecto similar
al de la figura. Se incluye el nombre de cada control, que deber respetar. El nombre del
formulario es frmCompra.



Inicialmente tanto el botn cmdDerecha como cmdlzquierda no estn activados.

La etiqueta de texto IblCuenta se adapta al contenido de la misma y tiene la propiedad
Appearance al valor 0 Flat.

El cuadro de lista IstProductos mantiene ordenada la lista de elementos.

El cuadro de lista lstProductos y la posee una lista de elementos creada en tiempo de
diseo. Para ello utilice su propiedad List, en la ventana de Propiedades y aada los
elementos que puede ver en la figura.
7
Visual Basic 6.0 Microsoft

PAG. 170


Para aadir un elemento despliegue la lista de esta propiedad y escrbalo. Pulse
[Ctrl+Intro] para pasar al siguiente elemento y finalice con [Intro]. No importa el orden de
introduccin ya que se debe mantener ordenada la lista.

Escriba cdigo para que el funcionamiento de la aplicacin sea el siguiente:

- Cuando se elige un elemento de IstProductos se activa el botn cmdDerecha.

- Cuando se hace en el botn cmdDerecha se aade a la lista lstCompra el elemento
seleccionado de IstProductos; se elimina el elemento seleccionado en la lista IstProductos; se
actualiza la etiqueta IblCuenta al nmero de elementos que tiene IstCompra y se desactiva el
botn cmdDerecha.

- Cuando se hace el le en el botn cmdIzquierda se aade a la lista IstProductos el elemento
seleccionado de IstCompra; se elimina dicho elemento de IstCompra; se actualiza la etiqueta
IbICuenta al nmero de elementos que tiene IstCompra y se desactiva el botn cmdIzquierda.

- Cuando se hace clic en el botn Vaciar se eliminan todos los elementos de la lista
IstCompra; se actualiza la etiqueta IblCuenta y se desactivan tanto el botn cmdDerecha como
cmdIzquierda.

- Cuando se pulsa en el botn Salir finaliza la aplicacin.

Guarde el proyecto con el nombre Prctica7 en una nueva carpeta de nombrePrctica7
de VB.

Ejecute la aplicacin y compruebe que funciona bien su aplicacin.




















Microsoft Visual Basic 6.0

PAG. 171


FUNDAMENTOS DE PROGRAMACIN


PRCTICA

En esta prctica trabajara con variables y con el operador de concatenacin (&) de
cadenas. Antes de comenzar a programar lea completamente la prctica.

Programe una aplicacin para que realice el siguiente proceso.

Al iniciarse la aplicacin se le pedir al usuario que introduzca dos operandos. Para ello
deber utilizar la funcin InputBox.

El resultado de la operacin debe ser la concatenacin de los dos operandos de la siguiente
forma:

operando2 operando l

es decir, primero el segundo operando introducido, despus un espacio en blanco y finalmente el
primer operando introducido.

Este resultado aparecer en una etiqueta de texto situada en el nico formulario de la
aplicacin.

Debe tener en cuenta que ser obligado declarar las variables que necesite antes de su uso
y de que cada variable utilizada debe tener su correspondiente tipo de datos.

Guarde el proyecto en una carpeta nueva de nombre Prctica8 de VB. El proyecto se
llamar Prctica8.vbp.

















8
Visual Basic 6.0 Microsoft

PAG. 172

















































Microsoft Visual Basic 6.0

PAG. 173


FUNDAMENTOS DE PROGRAMACIN II


PRCTICA

Esta prctica tiene dos partes: en la primera trabajar con estructuras de decisin y en la
segunda con estructuras de repeticin. Recuerde que puede haber ms de una solucin vlida.



Estructuras de decisin

Cree un proyecto nuevo de Visual Basic. El nico formulario que contiene debe tener un
aspecto similar al de la figura.

El objetivo del proyecto es el de validar el nombre de usuario y password que introduzca
el usuario en los cuadros de texto. Si ambos son correctos se muestra un mensaje de
bienvenida. A continuacin se indican las combinaciones correctas:

Nombre usuario Passoword Mensaje de aceptacin.
J uan hola Bienvenido Seor J uan.
Pedro cuento Bienvenido Seor Pedro.
Ana coche Bienvenida Profesora Ana.

En caso de que coincida el nombre de usuario pero no el password, se deber mostrar un
mensaje indicando que el password no es correcto.

Si lo que no coincide es el nombre de usuario, independientemente del valor del password
deber indicarse con un mensaje que el usuario no est autorizado.

9
Visual Basic 6.0 Microsoft

PAG. 174

El cuadro de texto donde se introduce el password solo debe mostrar el carcter * por cada
carcter que introduzca el usuario. Para ello utilice su propiedad PasswordChan.

La validacin debe realizarse en el momento en que se pulse en el botn Aceptar y
teniendo en cuenta la combinacin de maysculas y minsculas.

Guarde el proyecto en una carpeta nueva de nombre Prctica 9 de VB. El nombre del
proyecto ser Prctica9.vbp.

Ejecute el proyecto y compruebe que funciona bien para todos los casos.

Estructuras de repeticin

En este caso no es necesario estar en Visual Basic ya que lo nico que necesita es una hoja
de papel y un bolgrafo.

El objetivo de este ejercicio es saber transformar una estructura de repeticin en otra,
trabajando con sus condiciones.

Escriba una estructura de repeticin Do..Loop distinta pero equivalente a la siguiente:

Do While (i<= 9) And (Not fin)
<Instrucciones>
Loop

donde i es una variable de tipo Integer y fin de tipo Boolean.






















Microsoft Visual Basic 6.0

PAG. 175


FUNDAMENTOS DE PROGRAMACIN III


PRCTICA

En esta prctica tendr que realizar varias decisiones importantes: utilizar o no un
procedimiento, tipo de procedimiento a utilizar; paso de parmetros necesarios, qu debe y qu no
debe hacer el procedimiento, etc.

Adems utilizar dos funciones que incorpora el lenguaje Visual Basic y que puede utilizar
en sus programas: IsDate y WeekDay. La primera permite comprobar si el argumento que se le
pasa es o no una fecha vlida. La segunda nos devuelve un nmero que indica el da de la semana
correspondiente a una determinada fecha, que se le pasa como argumento.

Cree un proyecto nuevo y realice los pasos necesarios para que su nico formulario tenga
un aspecto similar al de la figura.



Escriba el cdigo necesario para que el funcionamiento de la aplicacin sea el siguiente:

El usuario introduce una fecha en el cuadro de texto txtFecha y pulsa en el botn
cmdAceptar. Entonces se comprueba que la entrada del usuario sea una fecha vlida para
lo que puede utilizar la funcin IsDate. En caso afirmativo se muestra en un cuadro de
mensaje el da de la semana correspondiente a dicha fecha, para lo que puede utilizar la
funcin WeekDay. En caso de que no sea una flecha vlida, se muestra un mensaje
indicndolo.

Por ejemplo, si introduce 11/2/97, la aplicacin debera devolver el mensaje siguiente Usted
naci un Martes.

Deber crear un procedimiento que dada una fecha devuelva una cadena de texto con el
da de la semana correspondiente a dicha flecha ( " Lunes" "Martes". Etc.).

10
Visual Basic 6.0 Microsoft

PAG. 176

Fjese como este procedimiento deber transformar el valor numrico que devuelve la funcin
WeekDay en su correspondiente cadena de texto. Por ejemplo si WeekDa.y, da como resultado 1,
nuestro procedimiento debera devolver la cadena "Lunes" (el primer da de la semana).

Dicho procedimiento solo debe poder ser utilizado en el formularlo.

Utilice el sistema de ayuda de Visual Basic para ms informacin sobre las funciones
IsDate y WeekDay.

Guarde el proyecto en una carpeta nueva de nombre Prctica l0 de VB. El proyecto se
llamar Prctica 10.vbp.

Inicie el proyecto y compruebe que funciona bien.



































Microsoft Visual Basic 6.0

PAG. 177


EFECTOS GRFICOS


PRCTICA

Esta prctica se divide en dos partes: en la primera dibujaras un control Shape y le dar
algunas propiedades; en la segunda trabajar con las caractersticas de arrastrar y colocar (drag &
drop) con el ratn.

Controles de dibujo

Inicie Visual Basic y abra el proyecto Videoclub.vbp en el que estuvo trabajando en
anteriores prcticas.

Inserte un nuevo formulario y realice los pasos necesarios para que su aspecto sea similar
al de la siguiente figura.



El rectngulo dibujado es un control Shape cuya contorno tiene cierto grosor y es de color
azul.

El dibujo est insertado en un control Image cuya propiedad Picture tiene asignado el
archivo situado en \Common\Graphics\icons\misc\Eye.ico, ya utilizado para la propiedad
I con del formulario principal.

El botn Cerrar debe permitir descargar el formularlo de memoria.

Este formulario debe mostrarse cuando el usuario seleccione la opcin Ayuda -Acerca
de... del formulario principal del proyecto.

Guarde el nuevo formularlo y ejecute el proyecto para observar el resultado.

11
Visual Basic 6.0 Microsoft

PAG. 178

Arrastrar y colocar con el ratn

Cree un nuevo proyecto. Realice los pasos necesarios para que su nico formulario
muestre un aspecto similar al de la figura.

Los controles Image imgProhibido eimgReserva no estarn visibles en ejecucin.



Los controles Image imgLibros e imgFeliz pueden ser arrastrados sin tener que
programar para ello. Adems tienen un icono especial cuando son arrastrados. Elija entre
los existentes en las subcarpetas de \icons. El control imgBasura adapta la imagen que
muestra al tamao del mismo.

Cuando se arrastra imgLibros y se suelta en imgBasura entonces desaparece del
formularlo el control imgLibros. Cuando se arrastra imgFeliz por encima de imgBasura
cambia la imagen de este ltimo al mostrado en imgProhibido.















Microsoft Visual Basic 6.0

PAG. 179


EL ADMINISTRADOR VISUAL DE DATOS


PRCTICA

En esta practica crear la base de datos que se utiliza en el proyecto Videoclub.vbp. Parte
de lo que tiene que hacer ya lo ha podido ver en el curso en pantalla. Antes de iniciar la prctica
lala detenidamente en su totalidad.

Inicie Visual Baste y elija Administrador visual de datos en el men Complementos.

Cree una base de datos nueva (MDB versin 7.0 de Access) con la opcin Nuevo... del
men Archivo del Administrador de datos. Guarde el archivo en la carpeta Videoclub
utilizada en las prcticas. Dele el nombre Videoclub.mdb a la nueva base de datos.

Cree las cuatro tablas que conforman la base de datos. La estructura de cada una la puede
encontrar en el manual del curso al final de la leccin El Administrador visual de datos.

Siga los siguientes pasos para cada una de las tablas:

1. Cree la tabla.
2. Introduzca cada uno de los campos con el mismo nombre, tipo de datos y tamao
que se indica en el manual, si es necesario.
3. Cree el ndice de clave principal, el resto de ndices no ser necesario. Recuerde
indicar las propiedades Requerido y nico.

Salga del Administrador de datos y cierre Visual Basic hasta la prxima prctica.



















12
Visual Basic 6.0 Microsoft

PAG. 180

















































Microsoft Visual Basic 6.0

PAG. 181


ACCESO A BASE DE DATOS


PRCTICA

En esta prctica trabajara con el control Data, sin programacin.

Inicie Visual Baste y abra el proyecto Videoclub.vbp situado en la carpeta Videoclub.

Muestre en pantalla el formulario frmDetSocios que cre en una prctica anterior.

Dibuje un control Data en la parte inferior del formularlo, a la izquierda del botn Cerrar.
Este control debe cumplir las siguientes caractersticas.

- Debe mostrar el texto Socios en el control.
- Debe estar conectado a una base de datos de tipo Access.
- La base de datos especfica es Videoclub.mdb, creada en la prctica anterior, cuya
ubicacin es la propia carpeta de este proyecto.
- El nombre del control Data es datSocios.
- Debe permitir tener acceso a la tabla SOCIOS de la base de datos.
- El tipo de Recordset que proporciona debe permitir la modificacin de la base de
datos.
- Debe permitir agregar nuevos registros sin necesidad de programar para ello.

Establezca las propiedades adecuadas del resto de controles situados en este formulario
(excepto los controles Marco, las etiquetas y el botn Cerrar) para que acten como
controles enlazados al control Data creado en el anterior punto. Enlace cada control al
campo de la tabla SOCIOS que coincida con la etiqueta de texto asociada.

Guarde el proyecto, incielo y elija la opcin Introducir - Socio.

Agregue los siguientes registros a la tabla SOCIOS, utilizando este formulario:

Nif: 00.000.001-A
Nombre: Rodolfo
Apellidos: Surez Lpez
Direccin: C/ Mrtires, 14. Madrid.
Telfono: (91) 111 11 11
Fecha introduccin: 01/01/91

Nif: 00.000.002-B
Nombre: Patricia
Apellidos: Prados Garca
Direccin: Avenida Diagonal, 125. Madrid.
Telfono: (91) 222 22 22
Fecha introduccin: 02/02/92
13
Visual Basic 6.0 Microsoft

PAG. 182

Nif: 00.000.003-C
Nombre: ngel
Apellidos: Bolos Rodrguez
Direccin: Paseo de la Concha, 48. Madrid
Telfono: (91) 333 33 33
Fecha introduccin: 03/03/93

Nif: 00.000.004-D
Nombre: J uan
Apellidos: Infante Ros
Direccin: C/ Repblica Argentina, 128. Valencia.
Telfono: (96) 444 44 44
Fecha introduccin: 04/04/94

Nif: 00.000.005-E
Nombre: Yolanda
Apellidos: Campos Domnguez
Direccin: Avenida del Arena, 3. Barcelona.
Telfono- (93) 555 55 55
Fecha introduccin: 05/05/95

Nif: 00.000.006-F
Nombre: Vctor
Apellidos: Lozano Rincn
Direccin: Avenida de la Plata, 125. Valencia.
Telfono: (96) 666 66 66
Fecha introduccin: 06/06/96

Salga de la ejecucin y cierre Visual Basic hasta la prxima prctica.



















Microsoft Visual Basic 6.0

PAG. 183


PROGRAMAR CON LA BASE DE DATOS


PRCTICA

En esta prctica trabajar con e1 objeto Recordset.

Inicie Visual Basic y abra el proyecto Videoclub.vbp situado en la carpeta Videoclub, con
el que ha estado trabajando en prcticas anteriores.

Cree un nuevo formulario y efecte las acciones necesarias para que tenga un aspecto
similar al de la figura. El nombre del formulario ser frmIntPelculas.



Deber conocer el control Data dibujado en el formulario (datPe1cu1as) con 1a tabla
PELICULAS de la base de datos Videoclub.mdb y enlazar los otros controles (excepto el
marco, etiquetas y, los botones de comando) a los campos de dicha tabla que coincidan
con la etiqueta de texto asociada.

El cuadro de texto txtRegistro no debe estar activado ya que est enlazado a un campo
contador por lo que es el propio sistema el que crea los valores de dicho campo. Al
cargarse el formularlo se aaden a la lista de cboPblico las opciones Todos los pblicos,
Tolerada menores y Mayores 18 aos.

14
Visual Basic 6.0 Microsoft

PAG. 184

Escriba el cdigo asociado al evento Click del botn Nueva, de forma que cuando se pulse
dicho botn se cree un registro nuevo y se pueda introducir la nueva informacin en los
controles enlazados.

Una vez se ha pulsado en el botn Nueva, ste cambia su texto indicando Aadir. Cuando
se pulsa en Aadir es cuando realmente el nuevo registro es excedido a la base de datos.

Conecte el nuevo formulario con el men del formulario frmPrincipal de forma que se
muestre cuando se elija la opcin Insertar - Pelcula.

Guarde el proyecto dando el nombre Introducir Pelculas. frm al archivo del nuevo
formulario. Inicie el proyecto y utilice lee la opcin Insertar -Pelcula para introducir las
as siguientes pelculas:

Registro pelcula: 1 (Este dato no debe introducirse)
Ttulo: El Padrino
Director: F. F. Coppola
Productor: A. S. Ruddy
Pblico: Mayores 18 aos
Gnero: Gngsters
Ao: 1972


Registro pelcula: 2
Ttulo: Blade Runner
Director: R. Scott
Productor: M. Deeley
Pblico: Mayores 18 aos
Gnero: Ciencia ficcin
Ao: 1982

Registro pelcula: 3
Ttulo: El ltimo emperador
Director: B. Bertolucci
Productor: B. Bertolucci
Pblico: Todos los pblicos
Gnero: Histrica
Ao: 1987

Registro pelcula: 4
Ttulo: Tierra
Director: J . Medem
Productor: J . Medem
Pblico: Mayores 18 aos
Gnero: Fantstica
Ao: 1996


Microsoft Visual Basic 6.0

PAG. 185


OPCIONES AVANZADAS DE BASES DE DATOS


PRCTICA

En esta prctica trabajara con el lenguaje SQL para realizar una consulta cuyo resultado se
mostrar en un control FlexGrid.

Inicie Visual Basic y abra el proyecto Videoclub.vbp.

Imagnese esta situacin: un socio desea saber si en el videoclub existe una determinada
pelcula pero desgraciadamente solo conoce parte del ttulo de la misma. En esta prctica
resolver este problema.

Cree un nuevo formulario y real ice las acciones necesarias para que tenga el siguiente
aspecto:



El control datPelculas estar conectada a la base de datos Videoclub.mdb pero no a una
determinada tabla sino que su Propiedad RecordSource ser una consulta SQL.

La cuadrcula dbgPelculas estar enlazada al control datPelculas, mostrando el resultado
de la consulta. Establezca el valor de la propiedad WordWrap a true.

El usuario introducir texto en txtTtulo y pulsar en el botn Buscar entonces se realizar
la bsqueda de aquellos registros de la tabla PELICULAS en los que su campo Ttulo
contiene el texto introducido.

15
Visual Basic 6.0 Microsoft

PAG. 186

Para ello puede utilizar una consulta SQL en la que el criterio de bsqueda no sea la igualdad
sino que se utilice la funcin LlKE de SQL. Dicha funcin permite que el criterio no sea tan
restrictivo como la igualdad y adems puede utilizar los caracteres comodn * y ?.

As, por ejemplo, en lugar de indicar un criterio como Ttulo = txtTItulo.Text podra utilizar
otro menos restrictivo como Titulo LIKE *txt Ttulo.Text* con lo que consigue que el resultado
de la bsqueda devuelva aquel las pelculas en las que las palabras introducidas en txtTtulo
aparezcan en su campo Ttulo, sin importarle en qu lugar.

Conecte el nuevo formulario con la opcin Informes - Bsquedas - Buscar pelcula ...
del men del formulario frmPrincipal.

Guarde el proyecto dando el nombre Buscar pelcula.frm al archivo del nuevo formulario
y ejectelo.

Compruebe que funciona bien la nueva opcin. As, por siempre, si busca alguna pelcula
que contenga en su ttulo la palabra. El, debera encontrar toda la pelcula El padrino
como El ltimo emperador.






























Microsoft Visual Basic 6.0

PAG. 187


TRABAJAR CON ARCHIVOS


PRCTICA

En esta prctica utilizar la funcin FileCopy para realizar la copia de seguridad del archivo
de base de datos Videoclub.mdb.

Inicie Visual Basic y abra el proyecto VdeocIub.vbp. Muestre en pantalla el formulario
frmPrincipal.

Elija la opcin Copia de seguridad del men Archivo de este formulario. Deber tener el
siguiente cdigo, escrito en una prctica anterior:

Prvate Sub mnuArchivoCopia_Click()
With CommonDialog1
.DialogTitle ="Realizar copia de seguridad"
.DefaultExt "*.mdb"
Filter = "Base de datos (*.mdb)I*.mdb l Archivos de texto (*.txt) .txtl Todos los
archivos (*.*) *.*
End With
EndSub

Recuerde que utiliz un control Dilogo comn para que se muestre el cuadro Guardar como
al elegir esta opcin del men.

Escriba el cdigo necesario para realizar la copia fsica del archivo Videoclub. mdb.

Para ello, utilice la funcin FileCopy fuente, destino donde en este caso, fuente ser
"x:\Videoclub\Videoclub.mdb" y destino ser el nombre de archivo introducido por el usuario
en el cuadro de dilogo Guardar como (al que podr acceder a travs de la propiedad filename del
control Dilogo comn). Y donde x es la unidad de disco en la que est guardado el archivo
Videoclub.mdb.

Escriba un manejador de error para el caso de que el error sea el nmero 61. En este caso
la aplicacin debe mostrar un mensaje indicando que el disco de destino est lleno.

Guarde el proyecto, ejectelo y compruebe que funciona adecuadamente.








16
Visual Basic 6.0 Microsoft

PAG. 188

















































Microsoft Visual Basic 6.0

PAG. 189


UTILIZACIN DE OLE


PRCTICA

En esta practica insertar un objeto de la aplicacin Microsoft Excel. Si no posee dicha
aplicacin, puede utilizar cualquier otro objeto insertable que tenga en su equipo.

Inicie Visual Basic con lo que aparecer un proyecto nuevo.

Realice las acciones necesarias para que el nico formulario del proyecto presente un
aspecto similar al de la figura.



El formulario presenta un men desplegable con una nica opcin Archivo - Salir.

Se ha incrustado un objeto Grfico de Microsoft Excel, cuya edicin se realizar en el
mismo formulario presentndose el men de Excel.

Guarde el proyecto como Prctica 17.vbp en una carpeta nueva de nombre Prctica 17
de VB. Ejectelo y compruebe la edicin visual del objeto.
17
Visual Basic 6.0 Microsoft

PAG. 190

En ejecucin, al editar el objeto, cambie la hoja de datos del grfico y compruebe como los
nuevos datos se muestran en el grfico.

Utilice la revisin ortogrfica que proporciona Excel. Podr utilizar cualquier otra funcin
que permita realizar el men de Excel.











































Microsoft Visual Basic 6.0

PAG. 191


APLICACIONES MDI


PRCTICA

En esta prctica trabajar con formularios MDI y secundarios. Adems escribir cdigo
para crear un men Ventana y para seguir la secuencia de eventos.

Cree una aplicacin MDI que presenta las siguientes caractersticas:

- Se creen, en tiempo de ejecucin, tantas copias como desee el usuario del formulario
secundario creado en tiempo de diseo. Utilizar la opcin Nuevo del men Archivo de la
aplicacin. Al crear el nuevo formulario se le pedir el nombre (ttulo) de este.

- Presente un men Ventana en el que se listen todos los formularios secundarios existentes
as como las tpicas opciones de organizacin: cascada, mosaico horizontal y mosaico vertical.

- Cuando no exista ningn formulario abierto slo existir la opcin Archivo del men con los
elementos Nuevo y Salir.

- Cuando haya algn formulario secundario abierto, el men se completar con la opcin
Ventana y los elementos anteriormente mencionados de dicho men.

- Cuando se produzca el evento QueryUnload del formulario MDI, debe aparecer un mensaje
indicando: Evento QueryUnload del formulario MDI.

- Cuando se produzca el evento QueryUnload de algn formulario secundario debe aparecer
un cuadro de mensaje que permita cancelar el cierre de dicho formulario. El ttulo del formulario,
aparecer en la barra de ttulo del cuadro de men.

- Cuando se elija la opcin Salir del men Archivo de la aplicacin, no se mostrar ningn
mensaje, terminando inmediatamente la aplicacin.

- Cuando se inicie la aplicacin se mostrar solo el formulario MDI. Deber hacer uso de la
opcin Nuevo para que aparezca algn formulario secundario.

- Cuando se cargue en memoria un formulario secundario deber mostrarse automticamente
sin necesidad de escribir cdigo para ello.

Guarde el proyecto con el nombre Prctical7.vbp en una carpeta nueva de nombre
Prctica l7 de VB.

Ejecute la aplicacin. Cree dos formularios nuevos.

Cierre uno de los formularios secundarios. Responda que s desea cerrarlo.

18
Visual Basic 6.0 Microsoft

PAG. 192




Cree un nuevo formulario secundario.

Cierre el formularlo MDI, compruebe la secuencia de eventos, indicando que s o que no
desea cerrar alguno de los secundarios.

Elija Archivo - Salir para volver a Visual Basic.







































Microsoft Visual Basic 6.0

PAG. 193


DEPURAR LA APLICACIN


PRCTICA

NOTA: Esta leccin carece de prctica pudiendo aplicar las tcnicas mostradas siempre
que necesite depurar su aplicacin..







































19
Visual Basic 6.0 Microsoft

PAG. 194

















































Microsoft Visual Basic 6.0

PAG. 195


FINALIZAR LA APLICACIN


PRCTICA

En esta prctica realizar los pasos necesarios para general el paquete de instalacin de la
aplicacin VideoClub.

Abra el proyecto Videoclub realice una compilacin completa de su cdigo.

Genere el archivo ejecutable VideoClub. EXE. Para ello:

En la ficha Opcines de.EXE establezca el ttulo de la aplicacin y el icono.

En comentarios escriba: Aplicacin realizada en el curso de Visual Basic 6.0

Acepte la ventana.

Introduzca como nombre de archivo Videoclub y Acepte.*

Una vez generado el ejecutable de la aplicacin:

Inicie el asistente de empaquetado y distribucin.

Siga los pasos del asistente.

Recuerde incluir la base de datos Videoclub.mdb pulsado en el botn Agregar.



















20
Visual Basic 6.0 Microsoft

PAG. 196

















































Microsoft Visual Basic 6.0

PAG. 197


PRCTICA FINAL


Esta es la prctica final del curso, en la que tendr que demostrar conocimientos sobre
distintos temas tratadas en el mismo.

Como la creacin de una aplicacin completa sera una prctica demasiado extensa, va a trabajar
de nuevo con el proyecto Videoclub.vbp.

Inicie Visual Basic y abra el proyecto Videoclub.vbp situado en la carpeta Videoclub.
Deber estar tal como qued la ltima vez que fue utilizado en una prctica.

Muestre en pantalla el formulario frmIntPelculas, creado en una prctica anterior.

Realice los pasos necesarios para que cuando se est introduciendo una pelcula y se pulse
en el botn Actores... aparezca una nueva ventana, de aspecto similar a la de la figura. El
nombre del nuevo formulario ser frmActores.



Al mostrarse esta ventana, el cuadro de texto txtRegPelcula ya debe contener el registro
de la pelcula asociada (la mostrada en el formulario frmIntPelculas en el momento en que
se puls el botn Actores). Adems, deber de cargarse en la lista IstActores, el nombre
de cada uno de los actores de la pelcula.

Fjese que si es una pelcula en la que aun no se ha aadido ningn actor, esta lista estar
vaca. Para conseguir la lista de actores utilice una consulta SQL que deber estar asociada
a un control Data dibujado en este formulario.
Visual Basic 6.0 Microsoft

PAG. 198


Para crear la lista de actores debe moverse por el recordset creado y aadir cada uno de sus
registros a la lista. Consulte la propiedad EOF del recordset para saber cundo no existen
ms registros.

No debe permitir que se modifique el valor del cuadro de texto txtRegPelcula. Adems,
en este formulario se deber permitir que el usuario introduzca el nombre del actor en el
cuadro de texto txtNomActor.

Cuando esto suceda, podr agregar el nuevo actor a la lista y a la tabla ACTORES. Esta
circunstancia se debe poder hacer de dos formas: pulsando en el botn Agregar o
arrastrando con el ratn el nombre del actor hasta la lista y soltndolo en ella. Fjese que
tanto en un caso como en otro el proceso tiene que ser el mismo: aadir tanto a la lista
como a la tabla ACTORES. Esta ltima tarea deber realizarse a travs de otro control
Data dibujado en el mismo formulario.

Si se el elige la forma de arrastrar y colocar, el ratn cambiara su icono al realizar el
arrastre al icono Drag1pg.ico situado en la carpeta Common\Graphics\icons\dragdrop.

El botn Agregar solo estar activado si se ha introducido algo en el cuadro de texto
txtNomActor.

Si el usuario decide arrastrar y soltar el nombre del nuevo actor en la lista tambin deber
comprobar esta circunstancia antes de intentar agregar el nuevo nombre de actor.

Una vez se ha aadido un nuevo actor, se limpiar el contenido del cuadro de texto y se le
dar el foco para que se pueda introducir ms actores.

Cuando pulse en el botn Cerrar se cerrar la ventana.

Guarde el proyecto dando el nombre Introduccin actores.frm al nuevo formulario y
ejectelo para comprobar que funciona correctamente.
















Microsoft Visual Basic 6.0

PAG. 199























PRCTICAS COMPLEMENTARIAS

VISUAL BASIC 6.0





















Visual Basic 6.0 Microsoft

PAG. 200

















































Microsoft Visual Basic 6.0

PAG. 201


PRCTICAS COMPLEMENTARIAS


PRACTICA

En esta primera prctica complementaria conocer un poco ms el funcionamiento de una
aplicacin Windows tpica: la aplicacin Paint.

Con el men Inicio de Windows abra la aplicacin Paint, que est en el grupo Programas-
Accesorios.

Observe cmo la aplicacin se abre en una ventana independiente que puede cambiar de
tamao, maximizarse o minimizarse, utilizando los botones de la ventana.

Despliegue el men principal que aparece. Observe la barra de estado, donde se le da
informacin sobre el comando del men en el que est situado. Elija la opcin Archivo -
Guardar como.

Se abre una nueva ventana. Este tipo de ventanas se llaman cuadros de dilogo porque se
establece una especie de dilogo entre el usuario y la aplicacin. Fjese corno en este caso
usted puede indicar la ubicacin y el nombre del archivo.

Compruebe que la ventana principal va no es la activa, pasando el foco al cuadro de
dilogo. (Fjese en el color de la barra de ttulo de una y otra ventana). Observe cmo esta
ventana ya no presenta todos los botones de ventana.

Pulse el botn Cancelar.

Elija la opcin Archivo - Abrir. Pulse la tecla [Ecs]. El cuadro de dilogo se cierra como
si hubiera pulsado el botn Cancelar.

Pulse el botn . Se vuelve a abrir el mismo cuadro de dilogo. Las barras de
herramientas permiten un acceso ms rpido a ciertos comandos de men.

Cancele el cuadro y salga de Paint con la opcin Salir del men Archivo. Responda que
no al cuadro de mensajes que aparece. En el curso aprender muchas de las tcnicas
necesarias crear aplicaciones similares a sta.









1
Visual Basic 6.0 Microsoft

PAG. 202

















































Microsoft Visual Basic 6.0

PAG. 203


PRCTICAS COMPLEMENTARIAS


PRACTICA

En esta segunda practica complementaria trabajar en el entorno de desarrollo de Visual
Basic y con algunas opciones del formulario.

Inicie Visual Basic a travs del men Inicio de Windows y cree un proyecto exe estndar.
Observe cmo presenta una ventana que ocupa toda la pantalla y un conjunto de ventanas
ancladas a sus lados.

Ejecute el comando Opciones desde el men Herramientas.

Vaya a la ficha Avanzado y active la casilla Entorno de desarrollo SDI, acepte, lea el
mensaje que aparece.

Guarde el proyecto en una carpeta a la que llamaremos Pracom2, salga de Visual Basic y
Vuelva a entrar para que los cambios en el entorno de desarrollo surtan efecto.

Nota la diferencia en el entorno de desarrollo? Ahora las ventanas no estn ancladas y
estn ocultas las ventanas de proyecto y propiedades.

Pulse F4. La ventana de proyecto y propiedades del formulario deben de aparecer en el
entorno de desarrollo.

Sitelas un poco a la derecha para que no tapen el formulario. Inicie proyecto y fjese en la
posicin del formulario. Posteriormente pulse el botn de terminar de la barra de
Herramientas.

Mueva el formulario pulsando en su barra de ttulo y, sin soltar, arrstrelo hacia la parte
inferior de la pantalla. Vuelva a iniciar el proyecto y observe la posicin del formulario.

Pulse el botn terminar. Establezca la propiedad StartUpPositon al valor 2-
CenterScreen y la propiedad Moveable a False.

Vuelva a iniciar el proyecto y, fjese el la posicin del formulario. Ahora est centrado en
la pantalla. Por ltimo intente moverlo No puede, verdad? El valor de la propiedad
Moveable indica si es posible mover el formulario (true) o no.







2
Visual Basic 6.0 Microsoft

PAG. 204

















































Microsoft Visual Basic 6.0

PAG. 205


PRCTICAS COMPLEMENTARIAS


PRACTICA

En esta practica trabajaremos con las propiedades de un objeto formulario.

Para ello cambie la propiedad o propiedades e inicie el proyecto. Fjese en cmo se
prescrita el formularlo repita el proceso: cambio de propiedad e inicio de la aplicacin.

Inicie Visual Basic con un nuevo proyecto.

Utilice la ventana Propiedades para establecer el valor de la propiedad BorderStyle.
Experimente con los diferentes valores de dicha propiedad. Fjese cmo algunos formulario
son fijos y otros redimensionables. Cambie la propiedad ControlBox de true a false y
experimente con los valores de MaxButton y MiriButton.

Haga lo mismo con la propiedad MousePointer, cambie su valore inicie la aplicacin.
Fjese que al mover el ratn por el formulario su puntero cambia al establecido en esta
propiedad.

Repita el proceso con otros valores.

Escriba en la propiedad Caption el texto: Mi aplicacin.

Establezca a True la propiedad ShowInTaskbar. Fjese como aparece el formularlo, al
ejecutar el proyecto, en la barra de tareas de Windows.

Salga de Visual Basic hasta la prxima prctica.

















3
Visual Basic 6.0 Microsoft

PAG. 206

















































Microsoft Visual Basic 6.0

PAG. 207


PRCTICAS COMPLEMENTARIAS


PRACTICA

En esta prctica construir completamente el men del formulario creado en la anterior
practica.

Abra un nuevo proyecto exe estndar.

Vamos a practicar la creacin de mens. Para ello nada mejor que fijarnos en una
aplicacin de Windows.

Abra el Bloc de Notas de Windows desde el men de Inicio. Muestre sus mens y realice
los pasos necesarios para que en el nuevo formulario aparezcan los mismos, en la misma
disposicin y con las mismas opciones, que en el Bloc de Notas.

Una vez terminado el men, haga clic en la opcin del men creado, Archivo-Salir, e
introduzca el cdigo necesario para que finalice la aplicacin al pulsar en esta opcin.

Inicie el proyecto.

Despliegue todos los elementos de men y compruebe que aparecen correctamente tanto
las teclas de acceso rpido, de mtodo abreviado y los niveles de men.

Finalice la ejecucin con la opcin correcta del men creado.

Salga de Visual Basic hasta la prxima prctica.


















4
Visual Basic 6.0 Microsoft

PAG. 208

















































Microsoft Visual Basic 6.0

PAG. 209


PRCTICAS COMPLEMENTARIAS


PRACTICA

En esta prctica trabajar con el control Dilogo comn para mostrar cuadros de dilogo
estndar de Windows.

Abra el proyecto anterior. Muestre en pantalla el nico formulario que contiene.

Inserte un objeto Dilogo Comn en el formulario. No hace falta establecer ninguna
propiedad, ninguna llamndose CommonDialog 1.

Elija la opcin Imprimir del men Archivo del formulario. Aparecer el procedimiento de
evento Click de dicho elemento de men.

Utilice el mtodo ShowPrinter para que se muestre el cuadro de dilogo Imprimir.

Inicie el proyecto sin guardar los cambios. Elija Archivo- Imprimir y compruebe que
aparece el cuadro de dilogo Imprimir.

Vuelva a Visual Basic.

Elija la opcin Abrir del men Archivo del formulario.

- La barra de ttulo del cuadro de dilogo muestre el texto Abrir.

- La extensin por omisin del archivo a guardar sea. txt

- La lista de tipo de archivo permita ver o bien los archivos de texto (*.txt) o bien todos los
archivos(*.*). Recuerde utilizar el carcter en la propiedad Filter. Se muestre el cuadro de dilogo
Abrir.

Guarde el proyecto e incielo.

Elija la opcin Abrir.. del men Archivo. Compruebe que el cuadro de dilogo presenta
las caractersticas requeridas. Despliegue la lista de tipos de archivo y vea que existen las
tres posibilidades indicadas.

Vuelva a Visual Baste y cirrelo hasta la prxima prctica.






5
Visual Basic 6.0 Microsoft

PAG. 210

















































Microsoft Visual Basic 6.0

PAG. 211


PRCTICAS COMPLEMENTARIAS


PRACTICA

En esta prctica debe crear una nueva aplicacin. En el formulario nuevo tiene que dibujar
los distintos controles para que tenga el aspecto de la figura.

El nombre del formulario ser frmCalculadora.

El formulario debe presentar las siguientes caractersticas: la propiedad BorderStyle a
valor 1- Fixed Single. En la propiedad Captin establecer el valor con el texto
Calculadora.

Ajuste el tamao y la posicin del formulario.

El botn Cerrar debe responder tanto a pulsar en l como a pulsar la tecla [Esc]. Al
hacerlo, se descargar de memoria el formulario.

Inicie el proyecto guardando los cambios. El nombre del archivo del formulario ser
Calculadora.frm.

























6
Visual Basic 6.0 Microsoft

PAG. 212

















































Microsoft Visual Basic 6.0

PAG. 213


PRCTICAS COMPLEMENTARIAS


PRACTICA

Vuelva a Visual Basic salga de l hasta la prxima prctica.
En esta prctica complementaria trabajar con algunas funciones de manipulacin de cadenas
de caracteres.

Cree un nuevo proyecto e introduzca en el mismo un control label. El aspecto del
formulario ser como el de la figura.

La funcin Left (cadena, tamao) Devuelve un tipo Variant (String) que contiene un
nmero especificado de caracteres del lado izquierdo de una cadena.

Por su parte Right (cadena, tamao) realiza la misma operacin, pero a la derecha.

Con Len (cadena) obtenemos el n de caracteres de una cadena.

Por ltimo Mid (cadena, inicio, tamao) extrae un no de caracteres (tamao) de una
cadena a partir de una posicin (inicio).

En el formulario crearemos dos botones uno de iniciar y otro de parar. En el botn iniciar
escriba el siguiente cdigo:

Dim cadena as string
cadena=label1.caption
parar =false
Do
DoEvents devuelve el contol al sistema
Cadena =Right (cadena, Len (cadena)-1) + Left (cadena,1)
labell.caption= cadena
introduzca aqu un bucle de retardo si funciona demasiado rpido
Loop until parar =true












7
Visual Basic 6.0 Microsoft

PAG. 214




En el botn parar escriba:

Parar =True

Debe declararla variable parar como de tipo boolean en la seccin de declaraciones.

Inicie el proyecto. El texto debe simular una marquesina movindose de forma continua.

Vamos a hacer lo mismo, pero utilizando un control Timer.

Borre todo el cdigo escrito anteriormente y deje slo el control label 1.

La propiedad ms importante del control Timer es Interval que especifica cada cuanto
tiempo se produce el evento Timer.

Inserte un control Timer. Introduzca en Interval 100 (milisegundos).

En el evento Timer introduzca:

Label1=Right(label1,Len(label1)-1) + Left(1abel,1)

Inicie el proyecto y vea los resultados. Fjese que la propiedad predeterminada de label1 es
caption, que es la que contiene la cadena.

También podría gustarte