Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Practico Visual Basic 6.0
Manual Practico Visual Basic 6.0
Visual Basic
Lenguajes de Programacin
www.detodoprogramacion.com
Microsoft
PAG. 2
www.detodoprogramacion.com
Microsoft
INDICE GENERAL
MICROSOFT VISUAL BASIC 6.0. PROFESSIONAL
HERRAMIENTA DE MICROSOFT VISUAL STUDIO 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.................................
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
PAG. 3
www.detodoprogramacion.com
Microsoft
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 ...................
PAG. 4
www.detodoprogramacion.com
Microsoft
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 ...............................................................
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
PAG. 5
www.detodoprogramacion.com
Microsoft
PAG. 6
www.detodoprogramacion.com
Microsoft
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.
1.2. LA INTERFAZ DE VISUAL BASIC
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.
PAG. 7
www.detodoprogramacion.com
Microsoft
PAG. 8
www.detodoprogramacion.com
Microsoft
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.
1.3. PROYECTOS
PAG. 9
www.detodoprogramacion.com
Microsoft
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.
PAG. 10
www.detodoprogramacion.com
Microsoft
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.
PAG. 11
www.detodoprogramacion.com
Microsoft
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.
PAG. 12
www.detodoprogramacion.com
Microsoft
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.
PAG. 13
www.detodoprogramacion.com
Microsoft
PAG. 14
www.detodoprogramacion.com
Microsoft
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.
PAG. 15
www.detodoprogramacion.com
Microsoft
PAG. 16
www.detodoprogramacion.com
Microsoft
PAG. 17
www.detodoprogramacion.com
Microsoft
www.detodoprogramacion.com
Microsoft
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.
PAG. 19
www.detodoprogramacion.com
Microsoft
Objetos
(Ingles)
Objetos
(Espaol)
Prefijo
Form
Formulario
frm
Check box
Casilla de verificacin
chk
Combo box
Cuadro combinado
cbo
Cuadro combinado
enlazado a datos
dbc
Command button
Botn de comando
cmd
Data
Control de datos
dat
dir
PAG. 20
www.detodoprogramacion.com
Microsoft
div
fil
Frame
Marco
frm
Grid
Cuadrcula
grd
Data-bound grid
dbg
Barra de desplazamiento
Horizontal
hsb
Image
Imagen
img
Label
Etiqueta
lbl
Line
Lnea
lin
List box
Cuadro de lista
lst
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
Barra de desplazamiento
Vertical
vsb
PAG. 21
www.detodoprogramacion.com
Microsoft
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,
lista de parmetros [par1, ,parn] es opcional y depende de cada mtodo.
, parn], donde la
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.
PAG. 22
www.detodoprogramacion.com
Microsoft
PAG. 23
www.detodoprogramacion.com
Microsoft
PAG. 24
www.detodoprogramacion.com
Microsoft
PAG. 25
www.detodoprogramacion.com
Microsoft
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
.
PAG. 26
www.detodoprogramacion.com
Microsoft
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.
PAG. 27
www.detodoprogramacion.com
Microsoft
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.
PAG. 28
www.detodoprogramacion.com
Microsoft
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 de dicho 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.
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.
PAG. 29
www.detodoprogramacion.com
Microsoft
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:
If Button=2 Then
PopupMenumnuArchivo
End If
PAG. 30
www.detodoprogramacion.com
Microsoft
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:
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.
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).
PAG. 31
www.detodoprogramacion.com
Microsoft
PAG. 32
www.detodoprogramacion.com
Microsoft
Cuadro de Dilogo
4.1. INTRODUCCN
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.
www.detodoprogramacion.com
Microsoft
En esta tabla se muestran los valores que puede tomar el parmetro botones:
Constante
Valor
Descripcin
VbOKCancel
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
Botones S y No
VbRetryCancel
VbCitrical
16
VbQuestion
32
Icono de interrogacin.
VbExclamation
48
Icono de exclamacin.
VbInformation
64
VbApplicationModal
VbSystemModal
4096
PAG. 34
www.detodoprogramacion.com
Microsoft
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[,
contexto])
ttulo] [,
estndar] [,
posx] [,
posy] [,
archivoAyuda,
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.
PAG. 35
www.detodoprogramacion.com
Microsoft
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.
PAG. 36
www.detodoprogramacion.com
Microsoft
Para utilizar otros cuadros de dilogo, deber establecer las propiedades oportunas u
utilizar el mtodo adecuado. A continuacin se refieren los mtodos disponibles.
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.
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.
PAG. 37
www.detodoprogramacion.com
Microsoft
PAG. 38
www.detodoprogramacion.com
Microsoft
Controles bsicos
5.1. INTRODUCCIN
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.
PAG. 39
www.detodoprogramacion.com
Microsoft
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:
PAG. 40
www.detodoprogramacion.com
Microsoft
(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.
PAG. 41
www.detodoprogramacion.com
Microsoft
PAG. 42
www.detodoprogramacion.com
Microsoft
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.
PAG. 43
www.detodoprogramacion.com
Microsoft
PAG. 44
www.detodoprogramacion.com
Microsoft
Controles bsicos II
6.1. CASILLAS DE VERIFICACIN
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.
tiempo.
PAG. 45
www.detodoprogramacion.com
Microsoft
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.
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.
PAG. 46
www.detodoprogramacion.com
Microsoft
PrivateSubcmdAgregar_Click()
lstDeportes.Addltem txtDeportes.Text
IbICount = IstDeportes.ListCount
txtDeportes.Text = ""
txtDeportes.SetFocus
EndSub
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.
PAG. 47
www.detodoprogramacion.com
Microsoft
PrivateSubcmdEliminar_Click0
Dim Indice As Integer
Indice=IstDeportes.ListIndex
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.
PAG. 48
www.detodoprogramacion.com
Microsoft
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.
PAG. 49
www.detodoprogramacion.com
Microsoft
PAG. 50
www.detodoprogramacion.com
Microsoft
Fundamentos de Programacin
7.1. INTRODUCCIN
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.
7.2. VARIABLES
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.
PAG. 51
www.detodoprogramacion.com
Microsoft
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
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.
PAG. 52
www.detodoprogramacion.com
Microsoft
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:
PAG. 53
www.detodoprogramacion.com
Microsoft
Tamao de
almacenamiento
2 bytes
4 bytes
Simple (Single)
4 bytes
Doble (Double)
8 bytes
8 bytes
Moneda ( Currency)
Cadena de
Caracteres(String)
Byte
1 byte
Booleano (Boolean)
2 bytes
Fecha (Date)
8 bytes
Objeto (Object)
4 bytes
Variant
Valores posibles
-32.768 a 32,767
-2. 147.483.648 a
2. 147.483.647
-3.402823E38 a
1.401 298E-45 para valores
negativos. 1.401298E-45 a
3.402823E38 para valores
Positivos.
-1.79769313486231 E308a
-4.94065645841247F-324
para valores
negativos.4.94065645841247E-324a
1,79769313486232E308
para valores positivos.
-922337203685477,5808 a
92237203685477,5807
Desde 0 hasta
aproximadamente 2.000
millones (aproximadamente
65.400 para Microsoft
Windows versin 3.1 y
anteriores). Las cadenas de
Caracteres deben aparecer
entre comillas dobles ()
0 a 255
Verdadero (True) o Falso
(False).
Del 1 de Enero de 100 al
31 de Diciembre de 9999.
Cualquier referencia a un
Objeto.
Nulo, Error, cualquier valor
Numrico de rango Doble, o
cualquier texto de
PAG. 54
www.detodoprogramacion.com
Microsoft
7.4. 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
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.
PAG. 55
www.detodoprogramacion.com
Microsoft
PAG. 56
www.detodoprogramacion.com
Microsoft
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
+
*
/
\
Mod
^
&
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.
PAG. 57
www.detodoprogramacion.com
Microsoft
PAG. 58
www.detodoprogramacion.com
Microsoft
Fundamentos de Programacin II
8.1. ESTRUCTURAS DE DECISIN
If condicin1 Then
[instrucciones1]
[ElseIf condicin2 Then
[instrucciones2]]
[Else
[instruccionesN]]
End If
PAG. 59
www.detodoprogramacion.com
Microsoft
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
PAG. 60
www.detodoprogramacion.com
Microsoft
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:
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:
Hasta ahora slo ha usado el operador de igualdad(=) pero existen los siguientes:
PAG. 61
www.detodoprogramacion.com
Microsoft
=
<>
>
<
<=
>=
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.
PAG. 62
www.detodoprogramacion.com
Microsoft
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.
PAG. 63
www.detodoprogramacion.com
Microsoft
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:
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.
PAG. 64
www.detodoprogramacion.com
Microsoft
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
[Instrucciones]
[Exit Do]
Instrucciones]
Loop [{While / Until} condicin]
PAG. 65
www.detodoprogramacion.com
Microsoft
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.
PAG. 66
www.detodoprogramacion.com
Microsoft
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.
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.
PAG. 67
www.detodoprogramacion.com
Microsoft
PAG. 68
www.detodoprogramacion.com
Microsoft
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.
PAG. 69
www.detodoprogramacion.com
Microsoft
PAG. 70
www.detodoprogramacion.com
Microsoft
PAG. 71
www.detodoprogramacion.com
Microsoft
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:
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.
www.detodoprogramacion.com
Microsoft
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.
PAG. 73
www.detodoprogramacion.com
Microsoft
PAG. 74
www.detodoprogramacion.com
Microsoft
Efectos Grficos
10.1. EL CONTROL LINE
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.
PAG. 75
www.detodoprogramacion.com
Microsoft
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
PAG. 76
www.detodoprogramacion.com
Microsoft
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 e Y.
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.
PAG. 77
www.detodoprogramacion.com
Microsoft
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).
PAG. 78
www.detodoprogramacion.com
Microsoft
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.
11.2. DISEAR LA BASE DE DATOS
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 Jet de bases de datos (para 32 bits).
Este Motor Jet es un completo Sistema Gestor de Bases de Datos con el que podr crear y
manipular una base de datos.
PAG. 79
www.detodoprogramacion.com
Microsoft
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.
PAG. 80
www.detodoprogramacion.com
Microsoft
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.
PAG. 81
www.detodoprogramacion.com
Microsoft
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.
PAG. 82
www.detodoprogramacion.com
Microsoft
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).
PAG. 83
www.detodoprogramacion.com
Microsoft
Campos:
Tipo de datos
Texto
Entero largo
Tamao
100
4
ndices:
Clave principal
Tipo de datos
Entero largo (contador)
Texto
Texto
Texto
Texto
Texto
Texto
Tamao
4
Clave principal
Si
S
No
TABLA PELCULAS
-
Campos:
150
100
100
25
50
4
ndices:
PAG. 84
www.detodoprogramacion.com
Microsoft
TABLA PRSTAMO
-
Campos:
Tipo de datos
Entero largo
Texto
Fecha/Hora
Fecha/Hora
Booleano
Tamao
4
13
8
8
1
ndices:
Clave principal
Si
No
No
No
No
TABLA SOCIOS
-
Campos:
Tipo de datos
Texto
Texto
Texto
Texto
Texto
Fecha/Hora
Tamao
13
100
100
255
25
8
ndices:
C lave principal
Si
PAG. 85
www.detodoprogramacion.com
Microsoft
PAG. 86
www.detodoprogramacion.com
Microsoft
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
herramientas de Visual Basic.
en la caja de
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.
PAG. 87
www.detodoprogramacion.com
Microsoft
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.
DataSource: en esta propiedad indicaremos el control Data que actuar como origen de
datos.
PAG. 88
www.detodoprogramacion.com
Microsoft
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.
12.3. RECORDSETS
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.
PAG. 89
www.detodoprogramacion.com
Microsoft
cdigo.
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
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.
PAG. 90
www.detodoprogramacion.com
Microsoft
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.
PAG. 91
www.detodoprogramacion.com
Microsoft
PAG. 92
www.detodoprogramacion.com
Microsoft
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.
PAG. 93
www.detodoprogramacion.com
Microsoft
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.
PAG. 94
www.detodoprogramacion.com
Microsoft
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 &
PAG. 95
www.detodoprogramacion.com
Microsoft
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.
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
PAG. 96
www.detodoprogramacion.com
Microsoft
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:
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 utiliza Update 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.
PAG. 97
www.detodoprogramacion.com
Microsoft
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:
PAG. 98
www.detodoprogramacion.com
Microsoft
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.
PAG. 99
www.detodoprogramacion.com
Microsoft
PAG. 100
www.detodoprogramacion.com
Microsoft
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.
PAG. 101
www.detodoprogramacion.com
Microsoft
PAG. 102
www.detodoprogramacion.com
Microsoft
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.
PAG. 103
www.detodoprogramacion.com
Microsoft
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.
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).
PAG. 104
www.detodoprogramacion.com
Microsoft
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
PAG. 105
www.detodoprogramacion.com
Microsoft
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.
PAG. 106
www.detodoprogramacion.com
Microsoft
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.
PAG. 107
www.detodoprogramacion.com
Microsoft
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.
PAG. 108
www.detodoprogramacion.com
Microsoft
PAG. 109
www.detodoprogramacion.com
Microsoft
PAG. 110
www.detodoprogramacion.com
Microsoft
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.
PAG. 111
www.detodoprogramacion.com
Microsoft
PAG. 112
www.detodoprogramacion.com
Microsoft
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:
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:
PAG. 113
www.detodoprogramacion.com
Microsoft
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.
PAG. 114
www.detodoprogramacion.com
Microsoft
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:
PAG. 115
www.detodoprogramacion.com
Microsoft
PAG. 116
www.detodoprogramacion.com
Microsoft
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:
PAG. 117
www.detodoprogramacion.com
Microsoft
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.
PAG. 118
www.detodoprogramacion.com
Microsoft
PAG. 119
www.detodoprogramacion.com
Microsoft
PAG. 120
www.detodoprogramacion.com
Microsoft
Utilizacin de OLE
16.1. INRODUCCIN
ediante el uso del control Contenedor OLE, podr crear formularios de Visual
Basic en los que incluya informacin proveniente de distintas aplicaciones
Windows.
PAG. 121
www.detodoprogramacion.com
Microsoft
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.
PAG. 122
www.detodoprogramacion.com
Microsoft
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.
PAG. 123
www.detodoprogramacion.com
Microsoft
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.
www.detodoprogramacion.com
Microsoft
PAG. 125
www.detodoprogramacion.com
Microsoft
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.
PAG. 126
www.detodoprogramacion.com
Microsoft
Aplicaciones MDI
17.1. UNA APLICACIN MDI
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.
PAG. 127
www.detodoprogramacion.com
Microsoft
PAG. 128
www.detodoprogramacion.com
Microsoft
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.
PAG. 129
www.detodoprogramacion.com
Microsoft
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
PAG. 130
www.detodoprogramacion.com
Microsoft
Esta funcionalidad la puede conseguir al crear una aplicacin Visual Basic con muy poco
esfuerzo de programacin.
PAG. 131
www.detodoprogramacion.com
Microsoft
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.
PAG. 132
www.detodoprogramacion.com
Microsoft
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
PAG. 133
www.detodoprogramacion.com
Microsoft
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.
PAG. 134
www.detodoprogramacion.com
Microsoft
Depurar la Aplicacin
18.1. TIPO DE ERROR
PAG. 135
www.detodoprogramacion.com
Microsoft
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 para buscar 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.
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.
PAG. 136
www.detodoprogramacion.com
Microsoft
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.
PAG. 137
www.detodoprogramacion.com
Microsoft
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.
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.
PAG. 138
www.detodoprogramacion.com
Microsoft
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.
PAG. 139
www.detodoprogramacion.com
Microsoft
PAG. 140
www.detodoprogramacion.com
Microsoft
Finalizar la Aplicacin
19.1. INTRODUCCIN
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.
PAG. 141
www.detodoprogramacion.com
Microsoft
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.
PAG. 142
www.detodoprogramacion.com
Microsoft
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.
PAG. 143
www.detodoprogramacion.com
Microsoft
PAG. 144
www.detodoprogramacion.com
Microsoft
PAG. 145
www.detodoprogramacion.com
Microsoft
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.
PAG. 146
www.detodoprogramacion.com
Microsoft
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.
PAG. 147
www.detodoprogramacion.com
Microsoft
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.
PAG. 148
www.detodoprogramacion.com
Microsoft
PAG. 149
www.detodoprogramacion.com
Microsoft
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.
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.
PAG. 150
www.detodoprogramacion.com
Microsoft
PAG. 151
www.detodoprogramacion.com
Microsoft
CUANDO SE PRODUCE
WillMove
Durante RecordSet.
MoveNext,...,AddNew Delete, etc.
Antes de que cambie la propiedad
Value.
Despus de Wil IChangeField.
Durante RecordSct.Update
Delete, etc.
Durante RecordSet.Requery, ,
Close, Open, etc.
WillChangeField
WillChangeComplete
WillChangeRecord
WillChangeRecordset
PAG. 152
www.detodoprogramacion.com
Microsoft
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.
PAG. 153
www.detodoprogramacion.com
Microsoft
PAG. 154
www.detodoprogramacion.com
Microsoft
PAG. 155
www.detodoprogramacion.com
Microsoft
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.
PAG. 156
www.detodoprogramacion.com
Microsoft
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 InsertarFecha 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.
PAG. 157
www.detodoprogramacion.com
Microsoft
PAG. 158
www.detodoprogramacion.com
Microsoft
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.
Cierre la ventana posicin del formulario y que Visual Basic pregunte si se desea guardar
el proyecto antes de que se inicie.
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.
PAG. 159
www.detodoprogramacion.com
Microsoft
PAG. 160
www.detodoprogramacion.com
Microsoft
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.
PAG. 161
www.detodoprogramacion.com
Microsoft
PAG. 162
www.detodoprogramacion.com
Microsoft
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
Copia de seguridad
Restaurar
--------------------------Salir
mnuArchiv0
mnuArchivoCopia
mnuArcluvoRestaurar
mnuArchivoSepl
mnuArchivoSalir
Introducir
Socio
Pelcula
mnuIntroducir
mnuritroducirSocio
mnu ntroducirPel cula
Ctrl+S
Ctrl+P
Prstamos
Prestar pelcula... Ctrl+Z
Devolver pelcula Ctrl+Y
mnuPrstamos
mnuPrstamosPrestarpelcula
mnuPrstaniosDevolverpelcula
Informes
Prestamos fuera de tiempo
mnuInformesPrstamosfueratiempo
Bsquedas
Buscar pelcula...
Buscar socio...
mnuInformes
mnuInformesBsquedas
mnuInfomesBsquedasBuscarpelcula
mnuInfomesBsqtiedasBuscarsocio
Ayuda
Contenido
F1
--------------------Acerca de
mnuAyuda
mnuAyudaContenido
mnuAyudaSep 1
mnuAyuda.Acercade
Guarde el proyecto.
PAG. 163
www.detodoprogramacion.com
Microsoft
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.
PAG. 164
www.detodoprogramacion.com
Microsoft
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.
Elija la opcin Copia de seguridad... del men Archivo del formulario. Aparecer el
procedimiento de evento Click de dicho elemento de men.
Inicie el proyecto sin guardar los cambios. Elija Archivo - Copia de seguridad y
compruebe que aparece el cuadro de dilogo Imprimir.
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.
PAG. 165
www.detodoprogramacion.com
Microsoft
PAG. 166
www.detodoprogramacion.com
Microsoft
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.
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.
PAG. 167
www.detodoprogramacion.com
Microsoft
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.
PAG. 168
www.detodoprogramacion.com
Microsoft
CONTROLES BSICOS II
PRCTICA
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.
www.detodoprogramacion.com
Microsoft
Guarde el proyecto con el nombre Prctica7 en una nueva carpeta de nombre Prctica7
de VB.
PAG. 170
www.detodoprogramacion.com
Microsoft
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.
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.
PAG. 171
www.detodoprogramacion.com
Microsoft
PAG. 172
www.detodoprogramacion.com
Microsoft
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.
Passoword
hola
cuento
coche
Mensaje de aceptacin.
Bienvenido Seor Juan.
Bienvenido Seor Pedro.
Bienvenida Profesora Ana.
PAG. 173
www.detodoprogramacion.com
Microsoft
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.
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.
PAG. 174
www.detodoprogramacion.com
Microsoft
10
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.
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.).
PAG. 175
www.detodoprogramacion.com
Microsoft
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).
Utilice el sistema de ayuda de Visual Basic para ms informacin sobre las funciones
IsDate y WeekDay.
PAG. 176
www.detodoprogramacion.com
Microsoft
11
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
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.
Este formulario debe mostrarse cuando el usuario seleccione la opcin Ayuda -Acerca
de... del formulario principal del proyecto.
PAG. 177
www.detodoprogramacion.com
Microsoft
Cree un nuevo proyecto. Realice los pasos necesarios para que su nico formulario
muestre un aspecto similar al de la figura.
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.
PAG. 178
www.detodoprogramacion.com
Microsoft
12
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.
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.
Salga del Administrador de datos y cierre Visual Basic hasta la prxima prctica.
PAG. 179
www.detodoprogramacion.com
Microsoft
PAG. 180
www.detodoprogramacion.com
Microsoft
13
PRCTICA
En esta prctica trabajara con el control Data, sin programacin.
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.
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
PAG. 181
www.detodoprogramacion.com
Microsoft
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: Juan
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.
PAG. 182
www.detodoprogramacion.com
Microsoft
14
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.
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.
PAG. 183
www.detodoprogramacion.com
Microsoft
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: 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
PAG. 184
www.detodoprogramacion.com
Microsoft
15
PRCTICA
En esta prctica trabajara con el lenguaje SQL para realizar una consulta cuyo resultado se
mostrar en un control FlexGrid.
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:
PAG. 185
www.detodoprogramacion.com
Microsoft
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.
PAG. 186
www.detodoprogramacion.com
Microsoft
16
PRCTICA
En esta prctica utilizar la funcin FileCopy para realizar la copia de seguridad del archivo
de base de datos Videoclub.mdb.
Elija la opcin Copia de seguridad del men Archivo de este formulario. Deber tener el
siguiente cdigo, escrito en una prctica anterior:
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.
PAG. 187
www.detodoprogramacion.com
Microsoft
PAG. 188
www.detodoprogramacion.com
Microsoft
17
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.
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.
PAG. 189
www.detodoprogramacion.com
Microsoft
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.
PAG. 190
www.detodoprogramacion.com
Microsoft
18
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.
- 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.
PAG. 191
www.detodoprogramacion.com
Microsoft
PAG. 192
www.detodoprogramacion.com
Microsoft
19
DEPURAR LA APLICACIN
PRCTICA
NOTA: Esta leccin carece de prctica pudiendo aplicar las tcnicas mostradas siempre
que necesite depurar su aplicacin..
PAG. 193
www.detodoprogramacion.com
Microsoft
PAG. 194
www.detodoprogramacion.com
Microsoft
20
FINALIZAR LA APLICACIN
PRCTICA
En esta prctica realizar los pasos necesarios para general el paquete de instalacin de la
aplicacin VideoClub.
Acepte la ventana.
PAG. 195
www.detodoprogramacion.com
Microsoft
PAG. 196
www.detodoprogramacion.com
Microsoft
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.
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.
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.
PAG. 197
www.detodoprogramacion.com
Microsoft
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 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.
PAG. 198
www.detodoprogramacion.com
Microsoft
PRCTICAS COMPLEMENTARIAS
VISUAL BASIC 6.0
PAG. 199
www.detodoprogramacion.com
Microsoft
PAG. 200
www.detodoprogramacion.com
Microsoft
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 ProgramasAccesorios.
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.
PAG. 201
www.detodoprogramacion.com
Microsoft
PAG. 202
www.detodoprogramacion.com
Microsoft
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 2CenterScreen 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.
PAG. 203
www.detodoprogramacion.com
Microsoft
PAG. 204
www.detodoprogramacion.com
Microsoft
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.
PAG. 205
www.detodoprogramacion.com
Microsoft
PAG. 206
www.detodoprogramacion.com
Microsoft
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.
PAG. 207
www.detodoprogramacion.com
Microsoft
PAG. 208
www.detodoprogramacion.com
Microsoft
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.
PAG. 209
www.detodoprogramacion.com
Microsoft
PAG. 210
www.detodoprogramacion.com
Microsoft
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.
PAG. 211
www.detodoprogramacion.com
Microsoft
PAG. 212
www.detodoprogramacion.com
Microsoft
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
PAG. 213
www.detodoprogramacion.com
Microsoft
PAG. 214
www.detodoprogramacion.com