You are on page 1of 45

CAPITULO PRIMERO

ENTORNO DE TRABAJO DE VISUAL BASIC

Visual Basic es un entorno de desarrollo diseado para la creacin de aplicaciones para los
entornos de trabajo Microsoft Windows 95, 98, NT y 2000.
Este lenguaje a una las posibilidades de un lenguaje de alto nivel con las herramientas de
diseo grfico, lo cual nos d acceso a todas las funciones de los sistemas anteriormente
citados. Los elementos del entrono de desarrollo de Visual Basic son:

Barra de herramientas:

Permite un acceso rpido al comando ms utilizado

Diseador de formularios

Es la ventana en la que se diser la interfaz de la aplicacin, en ella se pueden agregar


controles grficos e imgenes. Cada formulario de una aplicacin aparecer en su propia
ventana.

Cuadro de herramientas
En el cuadro de herramientas podemos encontrar un conjunto de herramientas que permiten
insertar los objetos o controles en el formulario durante en tiempo de diseo, los objetos
ms comunes son botones (command), etiqueta (label), cuadros de imagen (Picture),
imgenes (Image), etc.

Si hacemos doble click con el ratn sobre alguno de ellos se insertar automticamente en
la ventana del formulario.

Ventana de propiedades

Los objetos tiene asociados unas propiedades que describen sus atributos, valores,
comportamiento y apariencia del objeto. Las opciones de esta ventana son:

Lista desplegable de objetos: Donde podremos visualizar el nombre de los objetos de la


aplicacin.

Lista de propiedades del objeto seleccionado: Al seleccionar un objeto con la lista


desplegable anteriormente mencionada nos aparecern las propiedades del mismo (name,
visible, appearence, borderstyle, etc...). En la lista de propiedades se pueden modificar las
propiedades del objeto. Se puede visualizar de dos formar, por categora o alfabticamente.

Ventana de proyectos

Contiene la lista de los archivos que forman parte de la aplicacin:


Los tipos de archivos que se pueden incluir en un proyecto son:
Archivo de Proyecto: Es el que realiza el seguimiento de todos los ficheros que forman
parte de la aplicacin. Se guarda en un fichero con la extensin .VBP
Archivo de Recursos: Aqu se guardan cadenas de texto, mapas de bits, y dems datos que
puedan modificarse sin tener que volver a modificar el cdigo. Se guardan con una
extensin .RES
Mdulo de Formulario: Contiene controles y cdigo, slo hay uno por formulario. Se
guardan con extensin FRM
Mdulo de Clase: Son similares a los mdulos de formulario. Se guardan con la
extensin .CLS
Mdulo Estndar: Slo pueden contener cdigo. Tienen una extensin .BAS
Controles ActiveX: Controles que se pueden aadir al cuadro de herramientas e incluirlos
en un formulario
Ventana editor de cdigo

En esta ventana es donde se incluye el cdigo de la paliacin. Se crear una ventana de


cdigo para cada formulario o mdulo de la aplicacin.
Para tener acceso a la ventana de edici, la forma ms sencilla es hacer doble click sobre el
formulario o sobre el objeto al cual quiera incluir cdigo

CAPITULO SEGUNDO
PROGRAMACION EN VISUAL BASIC

Estructuras de Cdigo:

El cdigo que escriba en un proyecto de Visual Basic aparecer siempre en un mdulo.


Un mdulo es un archivo de proyecto, pudiendo ser un mdulo de formulario, de clase o de
carcter general como vimos en el captulo anterior.
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
las que se sitan las declaraciones y en la que se puede incluir otros procedimientos creados
por el programador.
En el apartado declaraciones se puede introducir las constantes, variables y tipos de datos
que necesite en su aplicacin. (Todos estos conceptos sern tratados a lo largo del curso).
Los procedimientos pueden tener parmetros, especificados entre parntesis que le
permiten comunicar al procedimiento alguna informacin que necesite o que sea el propio
procedimiento quien devuelva algn valor.
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 encargan de dar una respuesta programada a los eventos
que ocurren en la aplicacin. Si has escrito cdigo para algn procedimiento de evento, ste
aparece en negrita en la lista de procedimiento de la ventana de cdigo.
El cdigo de carcter general o que puede compartir en ms de un proyecto, se sita en un
mdulo general. El cdigo que aparece en este tipo de mdulos no se relaciona con un
objeto determinado, sino que tiene carcter general. En los mdulos generales no se pueden
incluir procedimientos de evento como en el caso de los mdulos de formulario.
Es conveniente aadir comentarios a las lneas de cdigo que escribas, de esta forma podrs
entender los programas aunque haga tiempo que los escribiste. Para aadir un comentario
en una lnea se utiliza el carcter ' (apstrofe).

Objetos en Visual Basic

Un objeto en Visual Basic se caracteriza por tres componentes: propiedades, mtodos y


eventos.
Las propiedades son aquellas caractersticas o atributos que permiten establecer el htmlecto
de un objeto como el color, tamao, posicin, etc. O el estado del mismo: activo,
maximizado, etc. Existen propiedades que slo estn disponibles en tiempo de diseo y
otras que slo estn disponibles 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. Puedes utilizar
cualquier mtodo que forme parte del objeto.
Los eventos son las situaciones que se producen y que nos interesan identificar para
establecer algn tipo de de respuesta por parte del objeto. As, puedes hacer click 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 hayas programado alguna accin
en el correspondiente procedimiento de evento.

Establecer propiedades

Cuando insertas objetos en un formulario tienes que establecer algunas propiedades que
presenta. Las propiedades son aquellas caractersticas propias del objeto que hacen que se
distingan de otro objeto.
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
cuadros de dilogo cuyo tamao suele ser fijo. Sin embargo, debes darte cuenta que las
barras de herramientas tambin son ventanas de una aplicacin.
Normalmente la ventana inicial o de arranque ser la que presente el men principal,
formado por mens desplegables en uno o ms de un nivel. El resto de ventanas no
deberan contener mens desplegables, aunque puede darse el caso.
Algunas propiedades de los formularios que se pueden establecer en tiempo de diseo son:
BorderSytle: Establece el estilo del borde del formulario.
Caption: Establece 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.
Enabled: Establece si el formulario puede responder o no a los eventos que generes.
Font: Establece las caractersticas de los objetos de texto que se siten en el formulario.
Icon: Cambia el icono que representa el formulario.
Left, Top, Height, Width: Establecen la posicin del formulario en la pantalla as como las
dimensiones.
MaxButton y MinButton: Establece si se podr maximizar o minimizar el formulario.
MousePointer: Modificar el puntero del ratn.
Visible: Establece si el formulario se mostrar visible en tiempo de ejecucin.
WindowState: Establece el modo en que se carga inicialmente el formulario, normal,
maximizado o minimizado.
Todas esta propiedas estn disponibles en tiempo de diseoa travs de la ventana de
propiedades.
En tiempo de ejecucin se puede cambiar o consultar el valor de algunas propiedades que
slo tienen sentido en el tiempo de desarrollo.
NombreObjeto.NombrePropiedad.

Convencin para nombrar objetos en Visual Basic

OBJETO OBJETO ESPAOL PREFIJO


Form Formulario frm
CheckBox Casilla de verificacin chk
ComboBox Cuadro combinado cbo
Data-bound combobox 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
Drive List Box Cuadro lista de unidades drv
File List Box Cuadro lista de archivos fil
Frame Marco frm
Grid Rejilla grd
Data-bound grid Rejilla enlazada a datos dbg
Horizontal scrollbar Barra de desplazamiento horizontal hsb
Image Imagen img
Label Etiqueta lbl
Line Linea lin
OLE Container Contenedor OLE ole
PictureBox Cuadro de imagen pic
Shape Forma shp
Text Box Cuadro de texto txt
Timer Temporizador tmr
Vertical scroll bar Barra de desplazamiento vertical vsb

Utilizar Mtodos

Una vez se ha establecido la parte estructural del formulario, se pasa a programar el


comportamiento que debe seguir, de forma que cumpla con el objetivo para el que desees
crearlo, utilizando los mtodos.
Un mtodo es un componente ms de del objeto, que puede ser utilizado directamente. Para
ello debes llamar al mtodo e indicarle sobre qu objeto deseas aplicarlo, que deber
admitirlo.
La sntaxis en este caso debe ser: NombreObjeto.NombreMtodo[par1,...,parn], donde la
lista de parmetros [par1...,parn] es opcional de cada mtodo. Un ejemplo es:
Si quieres mostrar un formulario llamado frmPrimero la sntaxis ser: frmPrimero.Show 1
El valor 1 nos indica que aparecer de forma modal y si el valor es 0 aparecer de forma no
modal.

Entender los eventos

El conjunto de eventos est predefinido en Visual Basic por lo cual no puedes crear numevo
eventos para los objetos.
El conjunto de evento reconocibles por un objeto est ligado con los procedimientos de
evento. Estos procedimientos son unidades de cdigo que le permiten especificar la
respuesta que debe dar un objeto ante la ocurrencia de un evento que puede reconocer.
La definicin del procedimiento de envento tiene la siguiente forma:
Private Sub NombreObjeto_NombreEvento([Lista de parmetros])
...intrucciones...
End Sub
CAPITULO TERCERO
TRABAJAR CON MENUS

Editor de menus
Al usar mens se evita ocupar mucho espacio en las ventanas, ya que estos slo aparecen
cuando se despliegan explcitamente. Adems, se pueden crear hasta cinco niveles de
mens, por lo que el nmero de comandos y posibilidades es suficientemente amplio.
En Visual Basic se trabajo con el editor de mens para crear, establecer propiedades y
modificar los menes. Para acceder a l basta con pulsar el siguiente botn en la barra de
herramientas:
Este botn slo estar activo cuando est abierto el formulario, ya que el men siempre est
asociado con un determinado formulario.
El editor de mens presenta las siguientes propiedades que se pueden aplicar sobre los
mens:
Caption: Representa es texto que aparecer en el men.
Name: Es el nombre del control. Se puede anteponer el prefijo mnu ms el texto del ttulo
del men.
Checked: Establece si debe aparecer una marca de verificacin a la izquierda del texto del
objeto del men. La marca la puedes utilizar cuando deseas informar de la opcin que est
activada 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 se establece este valor a False, los
elementos situados a la derecha ocupan el lugar del elemento no visible.
WindowsList: Establece el valor que determina si un objeto de men mantiene una lista de
las ventanas MDI secundarias del formulario actual.

Elementos del men

Utilizando los botones de sangra se puede determinar el nivel del objeto men que quieras
seleccionar. 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.
En muchas aplicaciones se pueden ver unas barras horizontales en los mens desplegables
que realizan la funcin de dividir en secciones dichos mens. Este elemento es conocido
como un separador, y sirve para separar aquellos comandos del men que tengan un motivo
en comn.
Para crear un separador, basta con introducir un guin (-) en la propiedad Caption. No se
puede crear un elemento en un nivel inferior inmediatamente despus de un separador, es
decir, no puedes tener como ttulo de men un separador.

Teclas de metodo abreviado

Al introducir el carcter & el men est creando una tecla de acceso a dicho objeto. Esta
tecla se representa subrayada en el texto de men y respresenta la tecla del teclado que el
usuario puede pulsar para ejecutar la accin. Dicha tecla se corresponde con la letra que
sigue al caracter & en la propiedad Caption del objeto men.
Si se trata de un ttulo de men tienes que usar la tecla de acceso en combinacin con la
telca [Alt.]. Una vez abierto un ttulo de men y desplegado sus elementos, para acceder
rpidamente a uno de ellos, puedes usar la tecla de acceso directamente.
Tienes que tener cuidado en no utilizar las mismas teclas de acceso para elementos de un
mismo nivel de men ya que entonces no funcionarn. El editor de men tambin admite la
incorporacin de teclas de mtodo abreviado. Las abreviaturas del men son combinaciones
de teclas que se pueden utilizar en lugar de elegir el elemento del men correspondiente.
Para crear una tecla de mtodo abreviado tienes que utilizar la propiedad Shortcut, a la que
puedes acceder al crear el men desde el editor de mens.

Eventos de men

Cuando en tiempo de diseo seleccionamos la opcin de men de un formulario que


estamos creando, Visual Basic muestra el procedimiento de evento click de dicho elemento
del men.
En el caso del ttulo del men, 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 se puede aplicar a los elementos de un men que son a
su vez ttulos de submens.
En casi todos los casos tienes que utilizar una opcin del men para descargar el formulario
o para finalizar la aplicacin. La opcin de texto salir suele ser el ms apropiado.
La instruccin Unload descarga de memoria el formulario que se especifique. Se puede usar
de varias formas, por ejemplo si estamos dentro de un Form llamado frmconsulta podremos
salir de l de dos formas: Una es Unload Me o Unload frmconsulta.

Menus contextuales

Estos mens aparecen cuando hacemos click con el botn secundario del ratn, y suele
presentar opciones que se corresponden con las acciones ms usuales de la aplicacin.
Este men puede aparecer en cualquier ventana de la aplicacin a diferencia de los mens
anteriores.
Un men contextual no se asocia con un determinado objeto situado en el formulario, al ser
igual que un men desplegable est asociado a un formulario.
Para mostrar un men contextual tienes que usar el mtodo PopupMenu del formulario
donde lo ests creando. La sntaxis es la siguiente:
[objeto].PopupMenu NombreMen[,indicadores[,x[,y[,boldcommand]]]]
Donde los corchetes especifican parmetros opcionales. Si no se especifica el objeto sobre
el que se aplica el mtodo, Visual Basic entender que es sobre el formulario actual.

Opciones de menu contextual

El hecho de tener siempre asociado un men contextual con un determinado formulario, no


impide que el men contextual aparezca cuando se pulsa sobre uno de los controles
situados en el formulario. Adems puedes indicar las ubicacin exacta del men contextual.
En el ejemplo anterior de llamada al PopuMenu, los indicadores se encargan de definir la
ubicacin respecto a 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:
vbPopupMenuLeft.Align (valor 0): valor predeterminado que nos indica que el lado
izquierdo del men viene dado por el valor X.
vbPopupMenuCenter.Align (valor 4): En este caso el men contextual se centra respecto
a X.
vbPopupMenuRight.Align (valor 8): El lado derecho del men se sita en X.
Los valores que puede tomar respecto al comportamiento a seguir son:
vbPopupMenuLeftButton (valor 0): Los elementos del men contextual slo reaccionan
a los click del ratn cuando se use el botn primario del ratn. Este es el valor
predeterminado.
vbPopupMenuRightButton (valor 2): Los elementos del men contextual reaccionan a
los click del ratn cuando se use el botn primario o secundario.

CAPITULO CUARTO
CUADROS DE DIALOGO

Introduccin

La mayora de las aplicaciones Windows hacen uso de los cuadros de dilogo para
establecer las opciones o introducir informacin que necesitan para realizar una accin
indicada por el usuario.
Otro uso posible de los cuadros de dilogo es presentar informacin al usuario. Los cuadros
de dilogo se caracterizan por ser modales y no permitir poder cambiar el tamao de la
ventana, adems no debern tener una barra de mens desplegables.
En Visual Basic podemos crear tres tipos de cuadros de dilogos: personalizados,
predefinidos y dilogo comn.

Cuadros predefinidos

La sntaxis completa de la funcin MsgBox es:


MsgBox(mensaje[, botones][, ttulo][, archivoAyuda, contexto])
Los valores que pueden tomar el parmetro botones son:

Constante Valor Descipcin


Muestra slo el
vbOKOnly 0
botn aceptar
Botones aceptar y
vbOKCancel 1
cancelar
Botones anular,
vbAbortRetryIgnore 2 reintentar e
ignorar
Botones si, no y
vbYesNoCancel 3
cancelar
vbYesNo 4 Botones si y no
Botones
vbRetryCancel 5 reintentar y
cancelar
Muestra el icono
vbCritical 16 de mensaje
crtico
Icono de
vbQuestion 32
interrogacin
Icono de
vbExclamation 48
exclamacin
Icono de mensaje
vbInformation 64
de informacin
Cuadro de
vbAplicationModal 0 dilogo modal de
la aplicacin
Cuadro de
vbSystemModal 4096 dilogo modal
del sistema

El parmetro botones es de valor numrico, y adems de los botones que aparecen en le


cuadro de dilogo, tambin puede indicar el icono que acompae al mensaje y el tipo de
dilogo modal que es.
Cuando un cuadro de dilogo es modal de aplicacien tienes que cerrarlo para interactuar
con otra ventana de la misma aplicacin. Cuando es un cuadro de dilogo modal del
sistema, todas las aplicaciones que estn ejecutndose se suspenden hasta que el usuario
responda al cuadro de dilogo.
El cuadro InputBox se consigue a travs de la funcin InputBox. Se utiliza cuando se
necesita que el usuario introduzca alguna informacin. La sntaxis correcta es:
InputBox(mensaje [,ttulo][, estndar][, posx][,posy][, archivoAyuda , contexto])

Control Dialogo Comun


En el objeto dilogo comn lo podemos encontrar en la barra de herramientas de Visual
Basic:

Nos permite mostrar cinco cuadros de dilogo estndar en las aplicaciones. Estos cuadros
de dilogo son:
Abrir
Guardar Como
Imprimir
Fuente
Color
Tambin podemos hacer uso del control dilogo para llamar al motor de Ayuda de Windows
de forma que pueda presentar el archivo de ayuda en lnea de la aplicacin.
Al crear un objeto dilogo comn, se sita en una posicin y un tamao estndar.
En el caso de quere utilizar el cuadro de dilogo comn Guardar como:
DialogTitle: Es el texto que debe aparecer en la barra de ttulo del cuadro de dilogo.
DefaultExt: Es la extensin con la que se guardar el archivo.
Filter: Indica la extensin de los archivos que deben mostrarse en el cuadro de dilogo.
En el caso de la propiedad Filter se puede indicar que muestre ms de un tipo de archivos.
Para esto se utiliza la sntaxis:
Archivos de Texto|*.txt|Base de datos|*.mdb
Con el ejemplo anterior nos aparecern todos los archivos de texto(*.txt) y los de base de
datos(*.mdb).

Los mtodos disponibles para los cuadros de dilogo son:


ShowOpen: Abrir.
ShowSave: Guardar como.
ShowColor: Cuadro de dilogo color.
ShowFont: Tipo de fuente.
ShowPrinter: Imprimir.
ShowHelp: Llamada a la ayuda de Windows
Ejemplo de llamada al motor de ayuda de Windows:
With CommonDialog1
.HelpFile = "C:\Vb\vb.hlp"
.HelpCommand = cdlHelpContents
.ShowHelp
End With

CAPITULO QUINTO
CONTROLES BASICOS

Introduccin

Al disear una aplicacin con Visual Basic lo primero que deberemos hacer es planear la
interfaz, que est constituida por el conjunto de formularios que aparecen a lo largo de la
ejecucin de la aplicacin.
Los controles son los elementos grficos que aparecen en los formularios y que sirven para
obtener datos y presentar la salida que produce la aplicacin.
Entre los numerosos controles que presenta Visua Basic caben destacar los bsicos, que
aparecen en casitodas las aplicaciones de Visual Basic como etiquetas, cuadros de texto,
botones de comando, etc... Cada uno de estos controles son tratados como bojetos en Visual
Basic, por lo que no tienes que olvidar que tienen su propio conjunto de propiedades,
mtodos y eventos.

Entrada de datos

Dos 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.
Las etiquetas son controles que nos permiten mostrar texto en los formularios y que tienen
la particularidad de que el usuario no puede modificar.
El control de etiqueta es:

Los cuadro de texto son el control estndar de entrada de datos en Visual Basic. Permiten al
usuario de la aplicacin introducir informacin.
El control del cuadro de texto es:

Algunas propiedades del control etiqueta son:

Propiedad Definicin
Establece la alineacin del texto
Alignment
de la etiqueta
Autosize Si su valor es True, el tamao de
la etiqueta se adapta
automticamente a su contenido
Texto que se visualiza en la
Caption
etiqueta
Permite o no interactuar con la
Enabled
etiqueta
Establece la fuente, tamao y
Font
htmlecto del texto

Los cuadros de texto son semejantes a las etiquetas, pero con la diferencia que el usuario
puede modificar su contenido. El texto que se introduce puede ser tanto numrico como
alfanumrico (nmeros y letras).
A diferencia de la etiqueta, el tamao del texto es fijo al no permitir la propiedad autosize.
Algunas propiedades del objeto cuadro de texto son:

Propiedad Definicin
Alineaci&oacuten de la
Alignment
informacin introducida.
Permite o no que se puedan
Enabled realizar acciones sobre el
cuadro de texto
Igual que en el caso de las
Font
etiquetas
Permite introducir ms de una
Multiline
lnea de texto en el cuadro
Estable el caracter que se
muestra al realizar una entrada
PasswordChar
en el objeto. Slo se mostrar
dicho caracter
Muestra barras de
ScrollBars
desplazamiento
Establece el orden de
TabIndex tabulacin fijado para el
objeto
Indica si al utilizar el
tabulador se puede desplazar
TabStop
entre los controles del
formulario
Texto que se visualiza en el
Text
control
Etiqueta y cuadro de texto
En las ventanas de entrada de datos es muy comn tener la combinacin de etiqueta y
cuadro de texto, ya que los cuadros de texto no tienen la propiedad Caption que permite
crear teclas de acceso.
Cuando quieras permitir un acceso rpido a cierto cuado de texto, el uso de una etiqueta
asociada es la forma ms sencilla de hacerlo. Utiliza el caracter & en la propiedad Caption
de la etiqueta asociada y se crear la tecla de acceso para el cuadro de texto.

Control Marco

Se utiliza para estructurar el formulario en varias secciones, agrupando en stas los


controles para que la lectura sea ms sencilla. El control que tienes que utilizar para esto el
el control Marco (Frame):

La nica propiedad interesante de un control marco es la propiedad Caption, que se refiere


al texto que se presenta en la parte superior izquierda del control.
El control marco acta como contenedor de otros controles, as que las propiedas Left,
Right y Top de un objeto contenido en un marco se establecen en relacin al objeto
contenedor.
Al mover un marco tambin se mueve los controles que contenga, para ello deberemos
crear primero el marco y despues los controles que queremos que contenga.
Botones de comando

El botn de comando (CommandButton), es muy sencillo, por lo que no tienes que


establecer muchas propiedades. Con la propiedad Caption establecemos el texto que
aparecer en el botn. Tambin se pueden crear teclas de acceso al botn.

El uso principal de los botones de comando es realizar acciones en la aplicacin. Para poder
llevar a cabo las acciones sobre un botn pulsandon Intro, tienes que dejar su propiedad
Default a True.

Bloquear controles

Cuando estn situados los controles en el formulario se pueden bloquear para que no
puedan moverse de forma accidental.
Para esto deberemos pulsar en la barra de herramientas:

Cuando actives este botn y mientras no desbloques los controles utilizando la misma
opcin no se podrn mover ninguno de los controles del formulario activo.
Sin embargo en si abres otro formulario que no tenga los controles bloqueados si se podrn
mover. Si aades ms controles a un formulario bloqueado estos quedan bloqueados

CAPITULO SEXTO
CONTROLES BASICOS II
Casillas de verificacin

Nos dn la oportunidad de poder elegir entre distintas opciones.


Las casillas de verificacin (CheckBox), permiten establecer opciones que no son
excluyentes entre s, es decir, puedes seleccionar una o ms de una.

Una casilla de verificacin puede estar activada (cheked), o desactivada (unchecked).


Adems la casilla puede estar atenuada (grayed), que nos indica que el objeto no est
disponible. 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 del valor que tenga en ese momento.

Botones de opcin

Los botones de opcin (OptionButton), tambin permiten presentar opciones al usuario,


pero con la particularidad que slo puedes seleccionar una de cihas opciones al mismo
tiempo.

Si quieres que en un mismo formulario se pueda seleccionar ms de un botn de opcin,


tienes que crear distintos conjuntos de botones de opcin.
El botn de opcin slo puede tener dos valores en la propiedad Value (True y False), true
si est activado y false si est desactivado.
Es importante utilizar los botones de opcin slo cuando cuando 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 exixtentes podra implicar la modificacin de partes
de la aplicacin que trabajen con dichas opciones, lo que resulta poco deseable.

Cuadro de lista

Otra forma de presentar las opciones es a travs de una lista donde se sitan dichas
opciones.
De forma predeterminada, las opciones que contiene un cuadro de lista (ListBox), se
presentan verticalmente en una columna, aunque tambin puede establecerse ms de una
columna.
Entre las propiedades del cuadro de lista caben destacar:
ListIndex: Indica el ndice de elementos seleccionado. El primer elemento de la lista tiene
que tener valor 0.
ListCount: Indica el nmero de elementos existentes en la lista en todo momento.
Todas estas propiedades son utilizadas en tiempo de ejecucin cuando se interacta con la
lista. Para indicar que la lista est ordenada se utiliza la propiedad Sorted, con el valor true.
A la hora de agregar elementos a la lista es necesario utilizar un mtetodo de sta. El
mtodo AdItem se encarga de esto.
Para borrar elementos de la lista utilizaremos el mtodo RemoveItem.

CAPITULO SEPTIMO
FUNDAMENTOS DE PROGRAMACION

Variables

Una variable es una ubiacin temporal de memoria donde se almacenan datos que interesan
retener durante la ejecucin de la aplicacin.
Las variables pueden contener texto, valores numricos, fechas o propiedades de cierto
objeto. 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 vidad de sta.
Es necesario declarar las variables para poder utilizarlas en el programa. En Visual Basic no
es obligatorio pero si recomendable.
Al declarar una variable se reserva memoria para ella y se indica qu valores puede
contener a travs de su tipo de datos.
Para establecer la declaracin de una variable antes de ser utilizada en el cdigo, puedes
hacerlo en la ficha entorno del cuadro de dilogo opciones.
Al activar la casilla Declaracin de las 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 tienes que introducirlos manualmente. Esta instruccin
obliga a declarar las variables antes de utilizarlas, lo que es muy recomendable.
El uso de las variables puede hacer que la aplicacin sea ms rpida, por ejemplo, si usas
muchas veces un determinado valor, es aconsejable guardarlo en una variable y utilizarla
cuando se necesite que tener que volver a escribir cdigo cada vez que quieras llamarla. Es
ms rpido el acceso a las variables que a una propiedad de un objeto, por lo que tambin

es aconsejable guardar el valor de una propiedad en una variable.


Veamos un ejemplo:
Dim Variable
Variable = txtEntrada.Text
txtSalida.Text = Variable

La forma de declara una variable es a travs de la instruccin Dim. En la lnea se declara la


variable de nombre Variable y al mismo tiempo Visual Basic guarda espacio en memoria
para poder utilizarla.
En la segunda lnea ya se utiliza la variable. En este caso sirve para guardar el valor que
existe en un cuadro de texto llamado txtEntrada (representado por la propiedad Text).
En la tercera lnea se hace justo lo contario, se utiliza la variable Variable para establecer el
valor de la propiedad Text del cuado de texto txtSalida.
Si aadimos las siguientes lneas de cdigo:

Variable = 125
txtNmero.Text = Variable

Hemos establecido una variable de valor numrico. Sin embargo en las anteriores lneas se
haba establecido un valor de texto ya que la propiedad Text es de ese tipo de datos.
En la ltima lnea se vuelve a utilizar la variable como origen de la propiedad Text del
cuadro de texto txtNmero.

Tipo de datos

El tipo de datos de una variable establece el nmero de valores que sta puede tener, 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 alamacenar 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.
Visual Basic de forma predeterminada, a no ser que se indique el tipo de datos, establece el
tipo Variant para todas las variables. As, al utilizar una intruccin como Dim
NombreVarialbe, se especifica implcitamente el tipo Variant para dicha variable.
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 hay que preocuparse de efectuar conversiones entre tipos para utilizarlas en
distintos contextos.
Las variables de tipo Variant son muy flexibles, pero ocupan mucha memoria y
disminucin de la velocidad.
Vamos a ver los siguientes tipos de variables:

Tipo de datos Tamao


Entero (Integer) 2 bytes
Entero Largo (Long) 4 bytes
Simple (Single) 4 bytes
Doble (Double) 8 bytes
Moneda (Currency) 8 bytes
Cadena de caracteres (String) 1 byte por caracter
Byte 1 byte
Boleano (Boolean) 2 bytes
Fecha (Date) 8 bytes
Objecto (Object) 4 bytes
Variant 16 bytes + 1 byte por cada caracter

Para declarar las variables debes de usar su nombre en ingls.


Constantes
Cuando un valor se repite frecuentemente es interesante guardarlo en una variable.
Las constantes son semejantes a las variables, pero su valor no puede cambiar a lo largo de
la aplicacin. Para utilizar una constante hay que declararla previamente. La forma de
declararla es a travs de de la instruccin: Const NombreConstante = Expresin, donde la
expresin ser un valor literal o un conjunto de palabras que se evalen a un valor vlido.
Operadores
En Visual Basic existe un gran nmero de operadores que se pueden utilizar para crear
frmulas.
Los operadores ms utilizados en una aplicacin de 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 cadena de caracteres

CAPITULO OCTAVO
FUNDAMENTOS DE PROGRAMACION II

Visual Basic incorpora estructuras de control que permiten controlar el flujo de la ejecucin
de un programa.
Si no existen esta estructures el cdigo se ejecutar de arriba hacia abajo y de derecha a
izquierda segn lo hayas escrito.
Entre las estructuras de control cabe citar las estructuras de decisin y las estructuras de
repeticin.
La instruccin If-Then-Else, es la estructura clsica de decisin y presenta la siguiente
sintaxis:
If condici&oacuten1 Then
[instrucciones]
[ElseIf condicin2 Then
[instrucciones]]
...
[Else
[instruccionesN]
End If

Donde los corchetes representan partes opcionales de la intruccin. Adems es posible que
existan ms de una clusula ElseIf en la misma instruccin If-Then-Else, por ello los puntos
suspensivos.
Si la condicin 1 se cumple, entonces se ejecutar el bloque de instrucciones 1, en caso
contrario se ejecutar el bloque de instrucciones (2...N-1) de la primera clusula ElseIf
condicin se cumpla. Si finalmente no se cumple ninguna de las condiciones se ejecutara
el bloque de instrucciones N correspondiente a la clusula Else.
La condicin es una expresin, es decir, un 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.
Vamos a ver un ejemplo:

El cdigo sera:
Dim moneda
moneda = lstMoneda.ListIndex
If moneda = 0 Then
MsgBox "Peseta"
ElseIf moneda = 1 Then
MsgBox "D&oacutelar"
ElseIf moneda = 2 Then
MsgBox "Franco"
End If

Se utiliza una variable para establecer el valor de una propiedad que indica que la opcin
del cuadro de lista lstMoneda est seleccionado.
Una vez conocida la opcin seleccionada, deberemos sacar el mensaje adecuado, para ello
necesitamos una estructura de decisin.
La intruccin de la clusula Else, slo se ejecuta cuando el resto de condiciones han
fracasado. Cualquiera de los bloques de instruccin puede contener un nmero arbitrario de
instrucciones, incluida la posibilidad de que existan otras instrucciones If-Then-Else.
Cuando existe un gran nmero de instrucciones a evaluar es aconsejable utilizar otra
estructura de decisin, como puede ser las instruccin Select Case.
Esta instruccin no d ms potencia al lenguaje, pero hace que el cdigo sea ms legible y
eficiente. La sntaxis de la instruccin Select Case es:
Select Case expresi&oacutenDeComparacin
[Case listaExpresiones]
[intrucciones]
...
Case Else
[intruccionesN]
End Select

Volvamos al ejemplo anterior pero con la instruccin Select Case:

Select Case moneda


Case 0
MsgBox "Pesetas"
Case 1
MsgBox "D&oacutelar"
Case 2
MsgBox "Franco"
End Select

Adems, la lista de expresiones de cada clusula Case puede ser mucho ms complicada,
refirindose a ms de un valor o rango de valores:
Case 1 To 9 valores desde el 1 hasta 3l 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

Expresiones Logicas

Visual Basic incorpora una serie de operadores de comparacin que nos son tiles a la hora
de establecer condiciones.
=......Igual a
<>....Distinto a
<.....menor que
>.....Mayor que
<=....menor o igual que
>=....Mayor o igual que
Adems existen los llamados operadores lgicos, que nos permiten establecer condiciones
que dependadan de ms de un criterio de seleccin.
Todos los operadores hacen que la expresin en la que se encuentren se evala a verdadero
o falso, sin posibilidad de cualquier otro valor.
Estas expresiones son:

And: exp1 And exp2, donde se evala a verdadero s&oacutelo en el caso que el exp1 como
exp2 se evalen a verdadero. En cualquier otro caso se evala a falso.
Or: exp1 Or exp2, donde se evala a verdadero cuando alguna de las expresiones exp1 o
exp2 se evala a verdadero.
Not: Not exp1. aqu se evala a verdadero si exp1 es falso y se evala a falso si exp1 es
verdadero.
Xor: exp1 Xor exp2, se evala a verdadero slo en el caso de que una y slo una de las
expresiones exp1 o exp2 se evala a verdadero

Matriz de controles

Un 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 puede contener un array es indeterminado y depende de los
recursos y memoria.
La matriz de controles se crea en tiempo de diseo aunque en tiempo de ejecucin se
pueden agregar ms controles a la matriz.
Para crear una matriz de controles, tienes que crear dos controles del mismo nombre, Visual
Basic reconoce est situacin y preguntar si quieres crear una matriz de controles.
Cuando se crea una matriz de controles puedes seguir trabajando con cada uno de los
controles de forma individual. Para referirte a un control en particular tienes que utilizar la
propiedad Index de dicho control. La propiedad se establece con el valor 0 para el primer
control y se va incrementando a medida que se van creando los nuevos controles.
Si quieres crear nuevos controles en tiempo de ejecucin tienes que utilizar la instruccin
Load. La sntaxis ser la siguiente:

Load objeto(ndice)

Donde el objeto se refiere al nombre del control original que dio paso al control de la
matriz e ndice es el lugar que ocupar en la matriz

De la misma forma se puede eliminar un control en tiempo de ejecucin, pero esta vez
usando la instruccin Unlaod.

Estructuras de repeticin

Otro tipo de estructuras que pueden modificar la ejecucin de un programa son las
estructuras de repeticin o bucles. Estas estructuras sirven para repetir una y otra vez un
conjunto de instrucciones.
Existirn dos tipos de estructuras de repeticin: aquellas en las que se conoce el nmero de
repeticiones y aquellas en que dicho nmero se establece durante la ejecucin.
La estructura de repeticin For...Next es adecuada cuando conocemos el nmero de veces
que debe repetirse un conjunto de instrucciones y deseamos reducir la cantidad de cdigo
escrito.
La sntaxis es la siguiente:

For contador = principio To fin [Strep incremento]


[instrucciones]
[Exit For]
[Instrucciones]
Next [contador]
Donde el contador es el nombre de una variable que sirve como contador de las veces que
se tiene que ejecutar el bucle. A dicha variable se le asigna un valor incial y un valor final
en el que una vez superado el bucle no vuelve a repetirse.
En el cuerpo del bucle estarn las instrucciones que deben ejecutarse existiendo la
posibilidad de introducir Exit For para salir del bucle.
Otra estructura de repeticin es Do...Loop. Esta estructura se utiliza cuando desconocemos
cuntas veces se ha de ejecutar el bucle.
La sntaxis es:

Do [While|Until] condicin
[instrucciones]
[Exit Do]
[intrucciones]
Loop

Si utilizamos While el bucle se repite mientras la condicin se cumpla y si utilizamos Until


el bucle se repetir hasta que la condicin d valor verdadero.
Con While, la condicin es comprobada al principio del bucle, por lo que si no se cumple al
iniciarse, el cuerpo del bucle no se ejecutar. Con Until se comprueba a la salida del bucle,
por lo que por lo menos, una vez se ejecutar el bucle.

CAPITULO NOVENO
FUNDAMENTOS DE PROGRAMACION III

Tipos de procedimientos>

En Visual Basic existen tres tipos de procedimientos: Sub, Function y Property


Los procedimientos Function se distinguen de los Sub por que siempre devuelven un valor
asociado al nombre del procedimiento. Este valor puede ser usado por el cdigo que lo ha
llamado.
Los procedimientos Property seiven para crear y manipular propiedades personalizadas de
los objetos

Crear procedimientos Sub


Para crear un procedimiento tienes dos alternativas, una utilizar la opcin Procedimiento
del men Insertar o escribirlo completamente en la ventana de cdigo.
En la definicin de un procedimiento Sub puedes diferenciar dos partes: la cabecera u el
cuerpo del procedimiento.
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 de cdigo
de la aplicacin. Para ello se utiliza un parmetro que indique de alguna forma dicha
circunstancia. Un parmetro se comporta como una variable en el cuerpo del
procedimiento, pudiendo simplemente utilizar su valor o inlcuso modificarlo.
Cuando un procedimiento quiere comunicar algn dato a la aplicacin, tiene que utilizar un
parmetro para ello, es decir, puede servir bien para comunicar un valor al procedimiento o
bien para que ste lo comunique a la aplicacin
Llamar al procedimiento Sub

Para llamar a un procedimiento sub lo podemos hacer de dos formas:

Call NombreSub (parmetros)


O tambin:
NombreSub parmetros

Los argumentos deben coincidir en la llamada en nmero y tipo con la definicin del
procedimiento. Tanto si se especifica en la llamada un nmero distinto de argumentos como
si alguno de stos no pueden convertirse al tipo declarado en la definicin del
procedimiento, se crear un error de compilacin.
La llamada al procedimiento ser como una instruccin ms del lenguaje, donde se
especifica 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 valor
a los parmetros para que se ejecute el cuerpo del procedimiento.
Una vez se llega a la instruccin End Sub del procedimiento el fujo de ejecucin vuelve a la
lnea siguiente a la que ocasion la llamada.

Crear procedimientos Function

El concepto de procedimiento es vlido para un procedimiento Function, pero la diferencia


con los procedimientos Sub siempre tiene que devolver un valor asociado al nombre del
mismo.
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 poceso a realizar. Un procedimiento de este tipo no debera
realizar ms de lo que se le pide, ni mostrar mensajes, ni devolver ms valores en los
parmetros, etc.
La diferencia en la definicin de un procedimiento Sub y un Function comienza en la
cabecera. El procedimiento Function tambin puede contener una lista de parmetros, no
debe aparecer ninguno que serva para devolver el valor que se calcula, ya que dicho valor
tiene que 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 indicano la clusula AS
Tipo al final de la cabecera del procedimientos, una vez indicada la lista de parmetros. Si
no se especifica ningn tipo de datos, se aplica la misma regla que con las variables, es
decir, tendr el tipo Variant.

Llamar al procedimiento Function

As como la llamada al procedimiento Sub es como una instruccin ms del lenguaje, la


llamada al 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.
La sntaxis ser la siguiente

NombreVarialbe = NombreFunction(ListaParmetros)

Si quieres utilizar el valor que devuelve el procedimiento Function, tienes que encerrar la
lista de argumentos, en la llamada, con parntesis. Esto no era as en el caso del
procedimiento Sub.
Visual Basic incorpora un gran nmero de funciones que puedes utilizar en tus
aplicaciones, entre ellas cabe destacar MsgBox, InputBox, Date...

Paso de parametros

A la hora de escribir la definicin de un procedimiento Sub o Function puedes especificar


cmo 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 realizas cambios
en su valor, estos cambios podrn ser utilizados en el interior del procedimiento, pero no
afectar para nada a la variable que acta como argumento en la llamada.
En el paso por referencia no se necesita especificar ninguna palabra clave, aunque tambin
puedes hacerlo con la palabra ByRef.
En el paso por referencia, el procedimiento estar manejando los propios argumentos
utilizados en la llamada, ya que recibe la direcin y no el valor de estos. En este caso
cualquier modificacin en el valor que se realice en el interior del procedimiento ser
sufrido por la propia variable que acte como argumento de llamada.

mbito de la accin

Cuando un proyecto est constituido por distintos mdulos, ya sean de formulario, clase o
mdulos generales de Visual Basic, es importante delimitar dnde se pueden utilizar y
dnde no, los procedimientos, variables y constantes que tengas definidos o declaradas.
El nivel de ocultacin es establecido por el programador al declarar las variables y
constantes o al definir procedimientos utilizando las palabras Pulbic y Private.
Una declaracin de variables de tipo Public NombreVariable As Tipo, indica que dicha
variable puede ser utilizada tanto en el mdulo donde se realiza como en el resto de
mdulos de la aplicacin.
Si la declaracin fuera del tipo Private NombreVariable As Tipo, dicha variable slo podr
ser conocida y por tanto utilizada, en el mismo mdulo donde se declara.
El uso de Public y Private tambin se aplica a la declaracin de procedimientos.
Un caso especial es cuando se declara una variable dentro 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 estas.
Adems, si existe conflicto de nombre, al haber declarado dos variables con el mismo
nombre, una a nivel de mdulo y otra a nivel de procedimiento, siempre tiene preferencia la
ms local, es decir, la declarada a nivel de procedimiento.
Al utilizar Dim en la declaracin de las 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 y a nivel de procedimiento slo para ste.

CAPITULO DECIMO
EFECTOS GRAFICOS

Control Line

La incorporacin de elementos grficos a las aplicaciones hacen que tenga una interfaz ms
amigable para el usuario.
Visual Basic incorpora una serie de controles grficos que permiten la incorporacin de
elementos de este tipo a tus formularios.
Para agregar lneas a los formularios utilizaremos el control Line:

Este control tiene pocas propiedades, se puede establecer el grosor, mediante la propiedad
BorderWidth o el color mediante BorderColor. Tambin se puede cambiar el estilo de la
lnea con la propiedad BorderStyle.

Control Shape

Con el control Shape (Forma), podemos dibujar distintas figuras como crculos, rectgulos,
valos...
Para agregar figuras a los formularios utilizaremos el control Shape:
La apariencia inicial de un objeto Shape es siempre un rectgulo. Dicha caracterstica se
establece a travs de la propiedad Shape.
Otra propiedad interesante de este control es el relleno de las figuras que estableceremos
con la propiedad FillStyle.
Tambin, mediante la propiedad FillColor podrs establecer el color de dicho relleno, el
color de los bordes con BorderColor.

Arrastrar con el raton

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 la ventana podrn darse cuenta que un determinado control puede
est siendo arrastrado por encima de ellos, permitindoles responder de la forma adecuada.
Si quieres permitir que el usuario de la aplicacin pueda arrastrar un control en tiempo de
ejecucin puedes hacerlo de dos formas: realizar un arrastre automtico o controlar cundo
debe empezar dicho arrastre. Esto se controla mediante la propiedad DragMode del objeto
que quieres arrastrar.

Esta propiedad tiene dos valores: manual y automtico. En el primer caso tienes que
controlar cundo debe permitirse arrastrar el control. Normalmente esto depende 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 prodr arrastrar el control sin necesidad


de que haya que programar nada ms. En este caso se pierde el control sobre el arrastre,
pero es mucho ms sencillo de programar.

Otra circunstancia que hay que tener en cuenta a la hora de arrastrar un objeto es el
htmlecto que tendr el puntero del ratn cuando lo haga. Si no se especifica nada en la
propiedad DragIcon, Visual Basic muestra un icono como puntero del ratn, que es el
contorno del objeto arrastrado. Normalmente te interesar mostrar un icono distinto
indicando la accin de arrastrar el objeto.

DragMode y DragIcon son las dos propiedades que tienes que tener en cuenta a la hora de
permitir el arrastre de objetos en la aplicacin. Tambin hay que tener en cuenta el evento
DragOver, sucede cuando el usuario arrastra un objeto por encima de otro, en este ltimo,
es decir el destino, el que reconoce el eveto DragOver. 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 esto parmetros estn situados en la
cabecera del procedimiento DragOver.

Si State tiene un 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 1, el
movimiento de arrastre es hacia afuera, es decir, saliendo. Utilizando el valor de ste
parmetro podrs decidir qu debe ocurrir.

Colocar con el raton

Cuando el usuario de una aplicacin 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. Cuando esto sucede, el evento DragDrop es generado y reconocido por el
objeto sobre el que se ha soltado.
Existe la posibilidad de que el usuario suelte el ratn sobre otro objeto o que lo haga en una
zona del formulario vaca, en este caso es el formulario el que reconoce el evento DragDrop
o 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 DragOver: Source, X e Y.
Debes decidir qu sucede cuando el ususario 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 no cambiar de posicin si no lo indicas expresamente a travs de
la programacin.
Vamos a ver un ejemplo de procedimiento evento DragDrop en el que se indica qu debe
ocurrir cuando soltamos el objeto identificado por 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.Width = imgDestino.Width + 150
imgDestino.Height = imgDestino.Height + 150
Source.Visible = False
End If
End Sub

En este caso aumentars el tamao del control destino hacindolo a travs de sus
propiedades Heihgt y Width

CAPITULO DECIMOPRIMERO
EL ADMINISTRADOR DE DATOS

Introduccion

Visual Basic puede acceder a distintos tipos de bases de datos. El acceso ms sencillo es a
una base de datos creada con el MotorJet que incorpora Visual Basic y que es compartido
por Access, es decir, si quieres crear una base de datos con Access o en el Administrado de
datos de Visual Basic el acceso a la misma ser inmediato.
Otro tipo de bases de datos con las que se puede acceder con Visual Basic son las llamadas
bases de datos ISAM (Mtodo Secuencial Indexado), entre las que se incluyen Btrive,
dBASE, Foxpro y Paradox
El otro tipo de acceso es a una base de datos compatible con ODCB (Conectividad abierta
de bases de datos), en las que es necesario un controlador ODCB para el tipo especfico de
base de datos. Si tienes dicho controlador el acceso tambin ser inmediato.

Disear la base de datos

El MotorJet de Visual Basic es un completo sistema gestor de bases de datos con el que se
puede crear y manipular una base de datos.
La creacin de una base de datos es un proceso en el cual podemos diferenciar dos partes:
El anlisis y el diseo
Se realiza el anlisis de la base de datos cuando se piensa en qu se necesita almacenar para
tenerlo disponible en cualquier momento.
El diseo es el proceso dependiente del tipo de base de datos que vayamos a utilizar, que
casi con toda seguridad ser relacional. Al crear una base de datos relacional tienes que
trabajar con tablas, registros, campos, ndices, etc.

Conocer el administrador

Visual Basic incorpora el Administrador de datos con el que puedes crear y establecer las
propiedades de las tablas que conformen la base de datos.
Sin embargo, si tienes Microsofr Access es recomendable utilizarlo en lugar del
Administrador de Datos, ya que genera el mismo tipo de base de datos pero con una
facilidad y flexibilidad mucho mayor.
Para acceder al Administrador de Datos lo haremos mediante la opcin de mismo nombre
en el men Complementos.

El administrador de datos nos permite modificar una base de datos ya creada o crear una
nueva. Una base de datos creada con el MotorJet est compuesta por un nico archivo con
extensin *.MDB. Una base de datos MDB se compone de un conjunto de tablas y de
QueryDef. Las tablas son la estructura fundamental de las bases de datos, formadas por
distintos campos y sus valores en los registros introducidos. Las QueryDef son
instrucciones SQL, que han sido guardadas con un nombre al tener inters en utilizarlas en
futuras ocasiones.
SQL es un lenguaje que nos permite entre otras cosas extraer resultados de una base de
datos.

Crear una base de datos

Lo primero que tienes que hacer para crear una base de datos es indicar dnde se guardar
el archivo y darle un nombre vlido.
Una vez hayas creado el archivo de la base de datos, es el momento de ir construyendo las
tablas que formarn la misma.
Tienes que introducir el nombre de la nueva tabla, los campos que quieres que aparezcan en
la aplicacin. Puedes utilizar ms de una tabla para los nombres de los campos.
Debers seleccionar el o los campos que quieras incluir y pasarlos a campos seleccionados.

CAPITULO DECIMOSEGUNDO
ACCESO A BASES DE DATOS

Control Data

Con el control Data, podemos acceder a una base de datos, mostrar su informacin,
introducir nuevos registros, etc, y todo sin programar ni una sla lnea de cdigo

Los pasos a seguir para utilizar una base de datos en Visual Basic son:
a.- Dibujar el control data y establecer la conexin a la base de datos apropiada.
b.- Utilizar otros controles para manejar la informacin. Estos controles son conocidos
como controles enlazados, al depender del control data como origen de los datos que
muestran.
El control data posee varios controles al estilo de un reproductor de vdeo para acceder a los
registros anterior, posterior, primero y ltimo.
Las propiedades del control data que tienes que establecer para realizar la conexin con la
base de datos son:

Connect: Indica el tipo de base de datos a la que vamos a acceder. Por omisin es Access.
DatabaseName: Indica el archivo de base de datos a la que se quiere acceder indicando la
ubicacin exacta del archivo.
RecordSource: Permite indicar el conjunto de datos especfico de la base de datos indicada
en la anterior propiedad. Normalmente ser el nombre de una tabla de la base de datos o
una instruccin SQL.
Estableciendo adecuadamente el valor de estas tres propiedades tendremos la conexin con
la base de datos que queramos.
Si conoces la base de datos y el conjunto de datos a los que quieres tener acceso en tiempo
de diseo puedes utilizar la ventana de propiedades para establecer estas propiedades, en
caso contrario lo puedes hacer con cdigo escrito.

Controles enlazados

Una vez establecida la conexin a la base de datos e indicando el conjunto de datos a los
que vamos a tener acceso 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 esta ligado a un determinado control data.
Normalmente se utilizan cuadro de texto, cuadros de lista e incluso controles imagen para
mostrar el contenido de la base de datos a la que quieres acceder. Todos estos controles
pueden actuar como controles enlazados.
Exciten dos propiedades que tienes que modificar para enlazar los controles con el control
data:
DataSource: Indicaremos el control data que actuar como origen de los datos.
DataField: Campo especfico al que se enlaza el control.
Por ejemplo:
txtNombre.DataSource = datEmpleados
txtNombre.DataField = "Nombre"

Aqu se indica que se ligue el control txtNombre al campo Nombre de la tabla Empleados
que se accede mediante el control data (datEmpleados). Este control deber tener
correctamente establecidas las tres propiedades anteriormente citadas

Recordsets

Al utilizar un control data y establecer la conexin con la base de datos, ests indicando el
conjunto de datos sobre los que quieres tener acceso. En Visual Basic a dicho conjunto de
datos se les denomina RecordSet, siendo una propiedad del control data.
Existen tres tipos de Recordset: Table, Dynaset y Snapsoht. Dicho tipo se establece
mediante la propiedad RecordsetType del control data, que predeterminadamente tiene el
valor Dynaset.
Un Recordset tipo Dynaset es un conjunto dinmico de registros que representan una
determinada tabla o el resultado de una consulta, segn se haya establecido la propiedad
RecordSource del control data. Puedes agregar nuevos registros, modificar los campos
existentes e incluso eliminar registros y todos estos cambios se reflejan en la base de datos
afectada.
Un Recordset de tipo Table representa una determinada tabla de base de datos. Al crear un
Recordset de este tipo estars representando dicha tabla, cargndose en memoria un solo
registro que se corresponde con el registro actual. Toda modificacin que se realice 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 puedes actualizar la base de datos, slo puedes
visualizar los datos obtenidos.

Modificar la base de datos

Si crear un Recordset de tipo Table o Dynaset, podrs modificar la base de datos


subyacente sin tener que programar ni una sla lnea de cdigo.
Al ejecutar la aplicacin, puedes desplazarte a travs de los registros utilizando el control
data, cualquier modificacin que realices se ver reflejada en la base de datos al acceder al
nuevo registro.
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 entrar en valor True.

Aadir registros

Se pueden agregar nuevo registros a la base de datos sin tener que programar para ello. En
este caso tienes que situarte en el ltimo registro y moverte al siguiente.
Si estableces correctamente la propiedad EOFAction al realizar dicha accin se crear un
nuevo registro al que se le puede introducir nueva informacin.
La propiedad EOFAction puede tener tres valores y nos indica lo que debe ocurrir cuando
se llega al final de un Recordset del control data:
Si EOFAction tiene un valor MoveLast, mantiene el ltimo registro como registro actual sin
desplazarse al siguiente registro, que no existe, aunque pulsemos el botn del control data
para desplazarnos al prximo registro.
Si el valor EOFAction deja el registro actual invalidado (ya que dicho registro todava no
existe), y desactivas el botn que nos permite desplazarnos al siguiente tienes que controlar
esta situacin mediante cdigo ya que cualquier intento de acceder a la informacin del
registro actual producir un error al no ser un registro vlido.
Si EOFAction posee el valor AddNew, esntonces cuando te desplaces ms all del ltimo
registro, Visual Basic crear un registro nuevo en la base de datos, donde puedes introducir
la nueva informacin.
El valor AddNew es el que nos permite aadir nuevos registros a la base de datos sin tener
que programar para ello. Para crear un nuevo registro tienes que sobrepasar el ltimo
registro que tengas en esos momentos, entonces Visual Basic limpiar el valor de los
controles enlazados permitindote introducir la informacin del nuevo registro. Cuando te
muevas a otro registro se aadir a la base de datos.
Al igual que se puede indicar que debe ocurrir cuando se llegue al final de un recordset,
tambin podrs hacerlo cuando se llega al principo mediante la propieda BOFAction del
control data de la misma forma que EOFAction

CAPITULO DECIMOTERCERO
PROGRAMAR CON BASES DE DATOS
Moverse por un recordset

El control data nos permite movernos por un recordset de una forma rpida y sencilla a
travs de sus botones. Sin embargo en muchas ocasiones tendrs que 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 control data,
tambin tiene carcter de objeto, por lo que sern aplicables otras propiedades y mtodos.
La forma de hacerlo ser con la sintaxis estndar.

NombreControlData.Recordset.NombrePropiedad
NombreControlData.Recordset.NombreMtodo

Donde tanto el NombrePropiedad como el NombreMtodo son del recordset u no del


control data.

Los mtodos que puedes utilizar para desplazarte por un recordset son:

MoveFirst: Nos desplazamos al primer registro del recordset.


MovePrevious: Nos desplazamos al registro anterior del recordset.
MoveNext: Nos desplazamos al siguiente registro del recordset.
MoveLast: Nos desplazamos al ltimo registro del recordser.
Move fila [,inicio]: Permite desplazarnos un nmero especfico de registro hacia delante o
hacia atrs respecto al marcador de inicio.
El marcador BOF nos indica que estamos al principio del recordset y el marcador EOF nos
indica que estamos al final. Si situas el registro actual en dichos marcadores, no se
producir un error pero no podrs acceder a la informacin del registro actual ya que no es
un registro vlido.
Si se sobrepasa dichos marcadores se producir un error en tiempo de ejecucin. Hay que
utilizar 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.
Recuerda que BOFAction y EOFAction son propiedades del control data mientras que BOF
y EOF son del recordset.

Buscar registros

Para buscar registros puedes utilizar los mtodos Find cuando trabajes con recordset de tipo
Dynaset o Snapshot, o utilizar el mtodo Seek para un recordset de un tipo Table.
El mtodo Find presenta cuatro variantes:

FindFirst: Busca el primer registro que cumple determinado criterio.


FindLast: Busca el ltimo registro que cumpla un determinado criterio.
FindNext: Realiza la bsqueda hacia delante.
FindPrevious: Realiza la bsqueda hacia atrs

Veamos un ejemplo:
With.datEmpleados
.Recordset.FindFirst "Nombre = ' " & txt.Nombre.Text & "'"
If Recordset.NoMatch Then
MsgBox "Lo siento no es un nombre de empleado vlido"
Exit Sub
End If
End With

Mediante el uso de la estructura With nos evitamos tener que repetir cdigo. As no ser
necesario escribir la estructura datEmpleados hasta que lleguemos a End With.
En la lnea .Recordset.FindFirst "Nombre = ' " & txt.Nombre.Text & "'" es donde se
produce la bsqueda de un determinado registro del recordset.
Al utilizar el mtodo FindFirst se est indicando que se efecte la bsqueda del primer
registro cuyo valor en el campo Nombre coincide con el valor que se ha introducido en el
txtNombre.
Con el uso del operador & concatenamos para crear el criterio de bsqueda, si por ejemplo
se hubiera introducido el valor Coral en el cuadro de texto, esta lnea quedara de la
siguiente forma:

datEmpleados.Recordset.FindFirst "Nombre='busqueda'"

Luego utilizamos el mtodo Nomatch del recordset para comprobar, una vez realizada la
bsqueda, si se ha encontrado un registro o no. Si no se ha encontrado el registro, el mtodo
nomatch devolver True por lo que se mostrar un menseja mediante el MsgBox y se saldr
del procedimiento utilizando el mtodo Exit Sub.

Aadir registros

El valor AddNew en la propiedad EOFAction del control data nos permita agregar
registros, pero esta forma 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 puedes asignar los valores a sus campos.
Una vez introducida dicha informacin, tendrs que hacer uso del mtodo Update del
recordset, con el objetivo de que el nuevo registro se actualice en la tabla. Si no utilizas
Update el nuevo registro no se agregar finalmente.
El cdigo ser:

datEmpleados.Recordset.Update
La propiedad Bookmark se usa para saltar rpidamente al nuevo registro indicado por el
marcador LasrModified. Boolmark te permite guardar el puntero del registro actual y
colocarse rpidamente en un registro especfico.
El cdigo ser:

registroActual = datEmpleados.Recordset.Bookmark Aqu se guarda el registro actual


datEmpleados.Recordset.MoveFirst Desplazamos al registro actual
datEmpleados.Recordset.Bookmark = registroActual Vuelve al marcador guardado

Eliminar registros

Mediante el mtodo Delete, puedes borrar un registro entero de un recordset. En este caso
te tienes que situar en el registro y hacer uso de ste mtodo.
Tienes que tener cuidado a la hora de eliminar un 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.
Para evitar ste problema es conveniente desplazarno a un registro vlido una vez hayas
utilizado el mtodo. No es necesario el uso de Update para hacer efectiva la eliminacin.
Un cdigo de ejemplo sera

If datEmpleados.Recordset.EOF = False
datEmpleados.Recordset.Delete
If datEmpleados.Recordset.EOF = True Then
cmdEliminar.Enabled = True
End If
datEmpleados.Recordset.MoveLast
End If

En la primera lnea se comprueba si el recordset est vaco, es decir, si la propieda EOF


tiene su valor a True.
En el caso de que el recordset no est vaco, se realiza la eliminacin del registro actual,
ms tarde se vuelve a comprobar si el recordset est vaco ya que se poda haber borrado el
nico registro que contena.
Finalmente no movemos al ltimo registro con 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.

CAPITULO DECIMOCUARTO
OPCIONES AVANZADAS DE BASES DE DATOS

Cuadricula enlazada a datos

En algunas ocasiones desears mostrar ms de un registro a la vez, con sus


correspondientes campos. Para ello Visual Basic incorpora un nuevo control llamado
Cuadrcula, que se presenta en dos versiones: enlazada y no enlazada
Las dos permiten mostrar informacin de forma tabular, es decir, con un conjunto de filas y
columnas.
La versin enlazada (DBGrid), es ms apropiada cuando deseamos mostrar informacin
proveniente de una determinada base de datos.
Al utilizar dicho control puedes mostrar en cada una de sus columnas un campo y en cada
una de las filas un registro del recordset del que haya sido enlazado.
El control Cuadrcula enlazada a datos no aparece en la caja de herramientas estndar ya
que es un control personalizado con el siguiente htmlecto:
Debers agregarlo manualmente a la caja de herramientas, su nombre es Data Bound Grid.
El control cuadrcula enlazada a datos aparece inicialmente con dos filas y dos columnas.
Se puede modificar en tiempo de diseo esperar que en tiempo de ejecucin, cuando se
enlace con un determinado recordset se ajuste al mismo.
El primer conjunto de propiedades interesantes de este control es el que establece su
comportamiento en tiempo de ejecucin. Las propiedades AllowAddNes, AllowDelete y
AllowUpdate nos indican si en tiempo de ejecucin se va a permitir aadir, eliminar o
actualizar respectivamente el registro de la cuadrcula.
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 utilices una cuadrcula es para mostrar un conjunto de registros,
que seguramente tendrn ms de un campo.

Consultas en SQL

Cuando quieras mostrar informacin que provenga de ms de una tabla, no tienes ms


remedio que utilizar el lenguaje SQL para establecer la 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, puedas acceder a ella a travs
de instrucciones SQL.
Puedes establecer la propiedad RecordSource del control data en tiempo de ejecucin y
darle el valor de una determinada instruccin SQL, de esta forma el usuario puede
especificar lo que quiere extraer de la base de datos.
Una vez establecida la propiedad RecordSource, tienes que utilizar el mtodo Refresh del
control data para crear el objeto recordset, al haber cambiado la propiedad del recordsource.
La instruccin que se utiliza para crear consultas de seleccin SQL es SELECT. La sntaxis
de esta instruccin es la siguiente:

SELECT -columnas-
FORM -tablas-
[WHERE -condiciones-]
[ORDER BY -columnas-]

La instruccin SELECT comienza 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 aparecere la clusula FORM, 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 FORM.
Seguidamente nos encontramos con dos clusulas opcionales como nos indican la presencia
de cochetes. La clusula WHERE especifica el criterio que debe 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 de SQL.
La clusula ORDER BY especifica en qu orden aparecern los resultados de una consulta.
Tienes que especificar el campo o conjunto de campos por los que se ordenan los registros
de la consulta. Tambin puedes indicar si el orden es ascendente o descendente.
Vamos a ver un ejemplo:

SELECT Nombre
FORM Empleados

Se especifica que se muestre el campo Nombre de los registros que pertenecen a la tabla
Empleados.
Si quieres que se muestra ms de un campo, hay que separarlos por comas, y si quieres que
se muestren todos los campos de una tabla se puede utilzar el carter *. As, la consulta
devolver todos los campos de la tabla Empleados

SELECT Empleados.Nombre, Empleados.[fecha alta]


FORM Empleados,TiempoAlta
WHERE Empleados.Puesto = TiempoAlta.Puesto

En esta caso se est pidiendo que se muestren los campos Nombre y TiempoAlta de los
registros situados en la tabla Empleados y cuyo Puesto exista en algn registro de la tabla
Puesto.
Si se utilizan ms de una tabla de consultas es conveniente indicar el nombre de la tabla en
la clusula SELECT junto al nombre del campo que quieres mostrar, por que las dos tablas
podran tener el mismo nombre para uno o ms campos

Si el nombre de un campo est compuesto por ms de una palabra, tienes que utilizar
corchetes para delimitarlo.
Todas las tablas implicadas aparecen en la clusula FORM separadas por comas.
La clusula WHERE presenta el criterio de comparacin.

Validar el control data

Cuando se intereactua con el control data en un formulario podemos utilizar alguno de sus
eventos para establecer niveles de validacin de los datos que se han introducido o
modificado.
El evento ms utilizado es validate. Sucede siempre antes de que el registro actual cambie.
Veamos un ejemplo:

Private Sub datEmpleados_Validate(Action As Integer, Save As Integer)


Dim respuesta As Integer
If Save = True Then
respuesta = MsgBox("Quieres guardar los cambios", vbYesNo)
If respuesta = vbNo Then
Save = False
End If
End If
End Sub
El procedimiento de evento Validate contiene dos parmetros: Action que indica por qu se
ha producido el evento y Save que indica se 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 se ha realizado. Se se responde No, los cambios no tienen
efecto al establecer el valor False del parmetro Save.
Tambin se pueden crear reglas de validacin al crear una tabla. As puedes introducir
reglas de validacin junto al menseja que debe aparecer si se infringen, reglas de integridad
referencial, etc...

CAPITULO DECIMOQUINTO
TRABAJAR CON ARCHIVOS

Controles especializados

Visual Basic proporciona una serie de controles especializados en el acceso al sistema de


archivos 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.

Al cuadro de lista de unidades (figura superior), tienes que darle un tamao adecuado para
que se pueda mostrar cualquier unidad que tengas en tu ordenador. En tiempo de diseo se
muestra la etiqueta de la unidad del disco duro de forma que puedas ajustar el control al
tamao de la misma.
Este control incluye las unidades de disco duro, disco flexible y Cd-Rom, etc...

El cuadro de lista de directorios nos permite mostrar los directorios del sistema de archivos
del ordenador.
Es conveniente que este control muestre tres o cuatro carpetas o directorios. En tiempo de
diseo muestra la carpeta en la que se inicia la apliacin y en la que por defecto se guarda
el proyecto

El cuadro de lista de archivos nos muestra los archivos de un determinado directorio o


carpeta. Su propiedad ms interesante es Pattern que nos permite especificar qu tipo de
archivos son mostrados en dicho control. Para utilizar esta propiedad se pueden utilizar los
comodines * y ? al establecer la propiedad. Estos caracteres tienen el mismo significado
que en MS-Dos o Windows para especificar los nombres de los archivos.
Si estableces la propiedad Pattern con la cadena *.txt, ests indicando que se muestren slo
los archivos que tengan esta extensin. Se pueden mostrar ms de un tipo de archivos
separndolos con ;.
Conectar controles

En tiempo de diseo, al dibujar los distintos controles del sistema de archivos, estos
muestran la unidad y el directorio en la que se crea el proyecto como he comentado
anteriormente. En tiempo de ejecucin el usuario puede cambiar la unidad y el directorio o
carpeta y esta situacin no se ver reflejada si no se escribe cdigo.
Para que los controles estn sincronizados es necesario conectarlos.
El evento predeterminado del control cuadro de lista de unidades es Change. Este evento
sucede cuando el usuario despliega la lista de unidades 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.Parh = Drive1.Drive
End Sub

Para el control cuadro de lista de directorios deberemos hacer algo parecido, el cdigo ser
el siguiente:

Private Sub Dir1_Change()


File1.Path = Dir1.Path
End Sub

De esta forma tenemos conectados los tres controles de acceso al sistema de archivos.

Manejando los errores

Cuando se escribe cdigo en tiempo de diseo, Visual Basic puede detectar errores y avisar
de ellos. Posteriormente se pueden detectar ms errores en tiempo de compilacin, estos
errores son de carcter semntico. Los errores en tiempo de ejecucin son sucesos
inesperados que Visual Basic no puede controlar por s mismo.
Ante este tipo de errores existe la posibilidad de incorporar un manejador o controlador
de errores, que son un conjunto de lneas de cdigo que slo se ejecutan cuando se produce
un error que es interceptado por Visual Basic.
Se deben de escribir manejadores de errores siempre que se pueda prever la ocurrencia de
un error en tiempo de ejecucin. Alguna de estas situaciones son:
- Problemas con las unidades de disco flexible.
- Desbordamientos.
- Falta de memoria.
- Problemas con la red.
- Perifricos.
- Errores lgicos (nombre de archivo mal escrito...)
La instruccin que nos permite detectar errores en tiempo de ejecucin es On Error. Su
sntaxis es: On Error Goto Etiqueta, donde la etiqueta representa el nombre del
manejador de error, que tiene que estar situado en el mismo procedimiento que la
instruccin On Error. Cuando se produce un error en el procedimiento donde se coloca On
Error, Visual Basic dar el control al manejador de errores escrito en dicho procedimiento.
El cdigo puede ser:

ManejadorError:
If Err.Number = 68 Then
resp = MsgBox("El dispositivo no est preperado", vbAbortRetryIgnore)
Resume
ElseIf resp = vbAbort Then
Drive1.Drive = Dir1.Ptah
Resume Next
End If
End If

La primera lnea es la etiqueta que represena el nombre del manejador.


Al producirse un error en tiempo de ejecucin se crea un objeto Err que intercepta dicho
error. Este objeto posee la propiedad Number que es el nmero de error interceptado.
El cdigo pregunta si dicho error es el 68 y en ese caso presenta un cuadro de dilogo en el
que se indica que el dispositivo no est preparado, dando tres opciones: reintenter, cancelar
o ignorar.
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 depender de lo que elija el
usuario. Si quiere reintentar la operacin se ejecutar la instruccin Resume, que vuelve a
ejecutar la misma intruccin que provoc el error.
Si se anula la operacin se ejecutar Resume Next, que devuelve el control a la siguiente
instruccin que provoc el error.

CAPITULO DECIMOSEXTO
TRABAJAR CON ARCHIVOS II
Archivos de texto

Vamos a escribir cdigo para cuando el usuario haga click en un archivo de la lista de
archivos (captulo 15), su contenido se muestre en un cuadro de texto.
El cdigo puede ser el siguiente:

Private Sub File1_Click()


Dim nuevalinea As String, LTexto As String, Texto As String, Archivo As String
nuevalinea = 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
Text1.Text = Texto
Close #1
End Sub

Cuando el usuario selecciona un determinado archivo de la lista, su nombre se especifica en


la propiedad filename del cuadro de lista de archivos. Tienes que indicar la ruta de acceso
completa, por lo cual se concatena el directorio, que se encuentra en la propiedad Path y el
carter \ como 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 utilizamos la instruccin
Open.
La instruccin Open necesita el nombre del archivo que tiene que abrir y el modo en que se
va a abrir.
En la lnea Open Archivo for Input As #1, el archivo a abrir est situado en la variable
Archivo, en modo de lectura, especificado mediante la instruccin Input y su nmero
asociado que es el #1.
Una vez tenemos abirto el archivo en modo lectura, utilizamos la variable LTexto para ir
almacenando cada una de la lneas del archivo de texto. Para ello utilizamos la instruccin
Line Input donde se indica el nmero del archivo y la variable en al que se guarda la lnea
de texto.
Esta instruccin se situa en un bucle Do Until...Loop repitindose hasta que se llega al final
del archivo de texto especificado por la condicin EOF(1).
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 #1.
La instruccion FileCopy

La instruccin FileCopy nos permite realizar una copia de un determinado archivo.


La sntaxis de esta instruccin es:

FileCopy fuente, destino

La fuente es el archivo que queremos copiar y el destino es el archivo que ser resultado de
la copia.
El archivo fuente tiene que estar cerrado antes de utilizar esta instruccin ya que en caso
contrario se producir un error en tiempo de ejecucin. Con la instruccin FileCopy puedes
copiar cualquier archivo independientemente de su tipo

CAPITULO DECIMOSEPTIMO
UTILIZACION DE OLE

Introduccion

Compartir informacin sobre distintas aplicaciones es una de las caractersticas ms


potentes que posee Windows. Al compartir informacin, lo que realmente se est haciendo
es compartir objetos que son creados por dos o ms aplicaciones Windows distintas. Aqu
es donde entra en juego OLE, sentando las bases para crear y compartir objetos entre
distintas aplicaciones.
Visual Basic acta como nexo entre las aplicaciones Windows al permitir el uso de objetos
OLE en sus aplicaciones. Se pueden tener en un mismo formulario de Visual Basic una hoja
de clculo de Excel y un documento de Word.
Visual Basic puede utilizar los objetos de otras aplicaciones de la misma forma que
cualquier otro objeto de Visual Basic. Puede establecer o leer propiedades, utilizar sus
mtodos, etc... Esto se denomina Automatizacin OLE

El contenedor OLE

Mediante el uso del control contenedor OLE, puedes crear formularios de Visual Basic en
los que se 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 por Visual Basic, sino
que se aprovecha de las aplicaciones que crean los objetos insertados.
As, el equipo donde se ejecute la aplicacin Windows como hoja de clculo Excel o
procesador de textos como Word no necesitarn programar para conseguir que la aplicacin
presente la funcionalidad de dichas aplicaciones, sino que puedes utilizarlas desde tu
aplicacin.
Al pulsar el control OLE en la caja de herramientas de Visual Basic nos aparecer el
siguiente cuadro de dilogo:

En este cuadro nos aparecen los distintos tipos de objetos que podemos insertar en el
formulario. Estos objetos provienen de las aplicaciones compatibles con OLE que tengas
instaladas en tu equipo.
Cuando una aplicacin se instala en un ordenador queda registrada en el Registro de
Windows. Este registro es como una base de datos don Windows guarda informacin
referente a las aplicaciones que tiene instaladas. Entre otras cosas se guardan los objetos
insertables que ofrecen dichas aplicaciones y que despus nos aparecern en el cuadro de
dilogo insertar objeto.
Se puede insertar en un formulario un objeto utilizando la opcin Cerrar Nuevo o utilizar
uno ya existente mediante la opcin cerrar desde archivo. En este ltimo caso tienes que
especificar el archivo que posee el objeto a insertar.
Si quieres que el objeto insertado aparezca en el formulario como un icono, puedes activar
la casilla mostrar como icono del cuadro de dilogo insertar objeto.
Puedes indicar que el objeto sea incrustado o vinculado. Al incrustar un objeto se crea una
copia y se guarda en la aplicacin Visual Basic, por lo que slo se podr usar en esta.
Al vincular un objeto, ste sigue estando almacenado en el archivo original, guardndose en
la aplicacin una referencia al mismo y no el objeto en s.

Edicion del objeto

Cuando insertas un objeto a travs del control contenedor OLE, ests en disposicin de
editar el objeto con la aplicacin creadora del mismo. Para ello lo nico que tienes que
hacer es doble click sobre el objeto.
Al activar el objeto haciendo doble click, la aplicacin servidora es iniciada y el usuario
puede interactuar con ella utilizando toda la funcionalidad que presente.
En este sentido es importante indicar aplicaciones que permitan que la edicin sea en el
propio control contenedor (Edicin Visual), y otras en la que la edicin se produce en una
ventana independiente.
Para que la edicin del objeto sea en el propio contenedor OLE, es necesario haber
incrustado 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 el 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.
Pero si el formulario donde has insertado un objeto posee mens o barras de herramientas y
la edicin del objeto se produce en el propio contenedor, tienes que negociar dichos
elementos, es decir, tienes que indicar como se han de mostrar.
Si quieres 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 puedes especificar en qu posicin
deben de mostrarse cuando se edite el objeto en el contenedor OLE.
La propiedad NegociatePosition que aparece en el editor de mens, establece la posicin
de los elementos del men de nuestro formulario.
Puede tener los siguientes valores:
- 0: Indica que dicho elemento del men se ver cuando se edite el objeto, mostrndose
nicamente el men de la aplicacin servidora.
- 1, 2 y 3: Establece donde se mostrar, pudiendo ser a la izquierda, centro o derecha.

Independientemente de la propiedad NegocitaPosition del men, es necesario establecer la


propiedad NegociateMenu 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.

Objetos insertables
Algunas aplicaciones proporcionan objetos que pueden utilzarse como controles
personalizados en Visual Basic.
De esta forma se pueden agregar a la caja de herramientas de Visual Basic sin tener que
utilizar el control contenerdor OLE.
Para esto utilizaremos el el men contextual de la caja de herramientas o elegir Controles
personalizados en el men de herramientas.

Activa las casillas de los objetos que utilzas normalmente en tus aplicaciones 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 aplicacin aporte ms de un tipo de objeto insertable. Por
ejemplo, Excel permite la insercin de objetos hoja de clculo y grficos.
Tienes que tener en cuenta que al utilizar un objeto insertable como control personalizado
en la caja de herramientas, slo puedes incrustar un objeto nuevo ya que no tienes la opcin
de utilizar un archivo existente, pero si puedes editarlo en tiempo de ejecucin, aplicando
las mismas reglas que en el caso del control contenedor OLE

Automatizacion OLE

Una de las caractersticas ms potentes de la utilizacin del estdar OLE es la


Automatizacin OLE.
Nos permite mediante programacin, integrar varias aplicaciones Windows en una
aplicacin creada con Visual Basic.
El estndar OLE permite que las aplicaciones acten como servidores OLE o como clientes
OLE. Un servidor OLE proporciona objetos que pueden ser utilizados en otras aplicaciones.
Un cliente OLE es una aplicacin que utiliza objetos creados en una aplicacin distinta.
Al utilizar la automatizacin OLE, puedes utilizar los objetos de otras aplicaciones como si
fueran objetos de Visual Basic, estableciendo propiedades y utilizando sus mtodos.
El uso del examidor 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:

Dim x As Object
Set x = CreateObject ("Word.Basic")
x.ArchivoNuevo
x.TamaoFuente 24
x.Insertar "Uso de la Automatizacin OLE"

.En el ejemplo anterior se puede observar un fragmento de cdigo donde se crea un objeto
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.

You might also like