Beruflich Dokumente
Kultur Dokumente
Kelvin Atencio
Maracaibo, Venezuela
Programación con VB 6.0 Ing. Kelvin Atencio
VISUAL BASIC:
En ella, aparece el cuadro de diálogo “Nuevo proyecto” que ofrece tres fichas de opciones
al comenzar en la sesión con Visual Basic, estas son:
• Nuevo: Propone crear un nuevo proyecto.
En ella aparece seleccionado por defecto EXE estándar. EXE es la abreviación de
EXECUTE o en español -proyecto ejecutable-. Esta opción nos crea un nuevo proyecto que
después de compilado nos crea una aplicación. Este es el elemento que más comúnmente
utilizaremos, ya que la presente investigación hace referencias a creaciones ejecutables. No hay
ejemplos de librerías dinámicas (*.dll o DLL ActiveX) ni a controles ActivesX (*.ocx) ni otro tipo de
aplicación; así que si desea buscar información sobre estos tipos de proyectos, puede abandonar
esta lectura.
• Existente: Propone abrir un proyecto que fue creado anteriormente, desplega el cuadro
de diálogo Abrir para buscar el proyecto en el directorio.
• Reciente: Propone también abrir un proyecto ya creado, pero a diferencia de
Existentes, éste nos desplega una lista de los proyectos que han sido creados o
modificados en las últimas sesiones de trabajo con VB 6.0.
Programación con VB 6.0 Ing. Kelvin Atencio
Para usar la Barra de herramientas diríjase al Menu Ejecutar y luego haga clic sobre Iniciar.
Se iniciará una prueba del programa, por ahora sólo mostrará el formulario con los controles
Command1 y Text1. También puede agregar un formulario al proyecto, para ello diríjase al menú
Proyecto y luego haga clic sobre Agregar formulario, después clic sobre Formulario.
La Fig. 4 modela lo que es el Explorador de Proyectos
(Sector 4 de la Fig. 2). Una aplicación puede contener uno o mas
elementos (nuestro ejemplo tiene dos formularios) y si quiere tener
acceso a uno de ellos tendrá que ir al Explorador de proyectos
hacer un clic sobre el elemento y luego clic en Ver Objeto o Ver
Código, según lo que desea.
En este ejemplo existe un proyecto con dos formularios
Form1(no seleccionado) y Form2 (seleccionado). Si hace clic en
Ver Objeto mostrará el formulario 2 si lo hace en Ver Código
mostrará el código de este formulario. En principio sólo es una
pantalla en blanco, ya que no hay código hasta el momento. Figura 4. Explorador de
Si no puede ver esta ventana directamente, tendrá que ir Proyectos
al menú Ver de la Barra de herramientas y luego hacer clic sobre
Explorador de Proyectos.
End Sub
Aquí se escribirán las sentencias que se efectuarán cuando haga clic en el botón Saludar
(ya que Command1 es el nombre del botón).
Ahora copie y pegue este código o escriba, de tal manera que quede de la siguiente
manera:
Nota: Para cerrar una sesión de trabajo con VB y abrir un Nuevo proyecto, puede guardar el
formulario, el proyecto y luego buscar en el Menú Archivo de la barra de herramienta, haga clic en
Quitar Proyecto, esto cierra el proyecto y puede crear uno nuevo en Archivo – Nuevo Proyecto. Si
no quita el proyecto y crea uno nuevo, se creará un Grupo de Proyectos.
Programación con VB 6.0 Ing. Kelvin Atencio
Objeto.Propiedad = Valor
Donde Objeto es el elemento al cual se hace referencia y valor es una constante o variable
que llama a una constante. El valor que identifica la propiedad.
Silla.Material = Madera
Silla.Patas = 4
Silla.Tamaño = 1,5
Se dice una variable que llama a una constante ya que, puede asignar a una variable un
valor y luego llamar a esta variable de la siguiente manera:
Material = Madera
Silla.Material = Material
identificar las propiedades por tener a su lado una figura como esta:
Lleve a cabo una pequeña demostración. En el programa #1, diríjase a la pantalla Ver
Código y escriba Command1. (la palabra Command1 más el punto), se desplegará una lista de
propiedades y métodos de los botones de comandos, en este caso de Command1. Observe la
figura que se encuentra a su lado.
• Los Métodos:
Los métodos son las diferentes acciones que puede realizar un elemento.
Por ejemplo la silla puede inclinarse, volver a su posición inicial, subir o bajar su cabecera,
moverse de un lado a otro, entre otros.
Los Métodos se diferencian en el código de las propiedades ya que no les sigue el signo
igual, pero podría tener un valor, es decir, tienen la siguiente forma:
Objeto.Método [Valor]
Silla.Inclinar 20°
Silla.Volver
El valor sólo aparece en algunos casos, es decir es opcional y depende del método que se
esté utilizando. Puede tener más de un valor. Ejemplo:
Realice la misma prueba que en las propiedades (Command1.) y ubique los métodos
mediante la figura.
• Los Eventos:
Los Eventos son los acontecimientos que pueden suceder mientras ejecuta una aplicación,
es decir, el clic a un botón de comando o a una etiqueta, esto llama a un procedimiento, a una
secuencia de comandos.
Estos se pueden Observar en el Código por la secuencia Sub, de la siguiente manera.
Sub Objeto_Evento([argumentos])
- Comando1
- Comando2
- ...Otros Comandos
End Sub
Por ejemplo, haciendo referencia a la silla observe lo que sucede al evento sentarse.
Sub Silla_Sentarse()
Peso es Variable
Si Peso es mayor a 100kg, entonces:
Silla.Romper
Sillas.Patas=0
Sino
Silla.Soportar
Fin de Secuencia Si
End Sub
El código describe los sucesos que se ejecutarán cuando suceda el evento sentarse.
un rayo .
• Las Constantes:
Son valores numéricos o cadenas de texto que hacen referencia a un estado. Por ejemplo:
En las casillas de verificación la propiedad Value del control puede tomar tres constantes:
- vbUnchecked, que corresponde al valor 0.
- VbChecked, que corresponde al valor 1.
- VbGrayed, que corresponde al valor 2
Se puede colocar su cadena de texto que corresponde a dicho estado o su valor numérico
si se quiere colocar en su forma abreviada. En VB 6.0 se utilizan mucho este tipo de constantes.
Las constantes se identifican en el Examinador de Objetos por tener a su lado una figura
como la siguiente:
Programación con VB 6.0 Ing. Kelvin Atencio
3. EL EXAMINADOR DE OBJETOS
El Examinador de Objetos es un tipo de ayuda de VB, que se utiliza generalmente para
encontrar los detalles de las distintas propiedades, los métodos, funciones, eventos o constantes.
Por ello es muy funcional a la hora de programar.
Para acceder a él, mientras esté en una sesión de programación, presione la tecla F2 o
vaya a la Barra de Herramientas en el menú Ver, busque Examinador de Objetos, se desplegará la
siguiente pantalla:
Por ejemplo, supongamos que deseamos verificar cuales son las diferentes constantes de
los estilos que se pueden emplear al crear un Cuadro de Mensaje (MsgBox), podemos escribir la
palabra MsgBox y el Examinador de objetos mostrará una serie de Clases que coinciden con la
palabra buscada, entre ellas VbMsgBoxStyle, puede hacer clic en ella y ver en la lista inferior las
constantes, tanto su modo abreviado como su equivalente numérico.
También puede acceder a las explicaciones de los distintos eventos de los controles o
formularios, para ello busque en la lista inferior izquierda el control al que desea encontrarle un
evento, por ejemplo CommandButton, la lista inferior derecha mostrará sus distintas propiedades,
métodos y eventos.
Si ahora hace clic sobre uno de ellos, en la parte inferior se muestra la explicación de dicho
elemento.
Programación con VB 6.0 Ing. Kelvin Atencio
4. LOS CONTROLES:
Los controles son una variedad de herramientas prediseñadas que pueden ser utilizados
en una aplicación según la finalidad de la misma.
Por la particularidad de cada una puede emplearse en ciertas circunstancias para mostrar
información, pedir información, enlistar miembros, desplegar imágenes o crear la ocasión para
realizar cálculos, entre otras.
Estos controles son llamados controles intrínsecos, ya que aparecen en todas las sesiones
y no se pueden quitar del Cuadro de Herramientas.
Pero además de éstos, existen otros controles que se pueden quitar o agregar y no
aparecen por defecto, aparecen en una lista adicional.
Para acceder a esta lista presione el botón secundario del mouse sobre el Cuadro de
Herramientas, en la lista que se desplega presione clic sobre Componentes; también lo pude hacer
Buscando en el Menú Proyecto – Componentes o simplemente CONTROL+T. De esta lista se dará
una explicación del control CommonDialog.
Ahora, mediante el Examinador de Objetos, se recomienda dedicar un tiempo a estudiar
las diferentes propiedades, los métodos y eventos de éstos distintos controles, aunque ya tenga
algo de experiencia siempre nos podemos encontrar con algún elemento nuevo. Para ello,
introduzca su nombre (Ejemplo: TextBox) y presione Buscar.
ETIQUETAS: (LABEL)
Las etiquetas se utilizan generalmente para dos fines:
• Escribir texto en el formulario, de modo que no esté disponible la opción de copiar
y pegar.
Programación con VB 6.0 Ing. Kelvin Atencio
Con esto, por ejemplo, se pueden identificar nombres de variables para el usuario.
(Ver Programa # 2).
• Mostrar resultados de modo que no se tenga la opción de copiar y pegar. (Ver
Programa # 2).
A continuación empecemos a codificar, para ello, haga clic en Ver Código en el Explorador
de Proyectos.
Escriba en la pantalla en blanco:
Public Suma As Double
Busque en la lista que dice (General) la palabra cmdSumar y cuando aparezcan las dos
líneas para agregar código agregue las siguientes sentencias, de tal manera que aparezca:
En este ejemplo se trabajaron con las propiedades de las etiquetas, Name (nombre),
Caption (título), BorderStyle (Estilo del Borde) y TabIndex (Índice de Tabulación). Existen otras
propiedades que también son muy utilizadas que son AutoSize (Ajustar horizontalmente al tamaño
del Caption) y WordWrap (Ajustar verticalmente al tamaño del Caption).
Los Cuadros de texto son muy utilizados en las aplicaciones con VB, tiene mucha
funcionalidad, pero generalmente son usados para:
• Leer valores o cadenas de texto para trabajar con ellos.
• Mostrar resultados tal como las etiquetas, pero en este caso facilita la posibilidad
de copiar y pegar.
Los Cuadros de texto son generalmente modificables en tiempo de ejecución, pero puede
convertirlo a sólo lectura si establece su propiedad Locked a True (verdadero). En este caso sólo
tendrá la posibilidad de copiar, pero no la de pegar
Como ya se ha trabajado la propiedad Text de los cuadros de Texto, se presenta ahora la
explicación del método SetFocus y dos de los eventos que se pueden generar al trabajar con estos
controles, los mismos son Change (que ocurre cuando cambia el control) y KeyPress (que ocurre
que presiona una tecla cuando este control tiene el enfoque). Si quiere la explicación de otras
propiedades, métodos o eventos diríjase al Examinador de Objetos.
Ahora, se puede empezar a codificar para realizar el programa, copie y pegue el siguiente
código o escriba:
Option Explicit
End Sub
Ejecute la aplicación con la tecla F5, y compruebe las nuevas opciones que se han
generado en este programa, por ejemplo el reconocimiento de la tecla Enter (KeyAscii = 13) o
activar el botón de comando cuando ya se han rellenado los cuadros de texto con valores.
Para obtener una explicación detallada del programa puede ir a la Sección Detallada de
Programas y buscar el programa #3.
Puede mostrar una imagen en este control en tiempo de diseño mediante la propiedad
Picture, para cambiarla en tiempo de ejecución puede utilizar la siguiente:
Una desventaja que tiene este control con respecto al control imagen, es que el tamaño de
la imagen no se puede adaptar al tamaño del control, pero si el tamaño del control al tamaño de la
imagen mediante la propiedad AutoSize, si esta propiedad esta establecida como True (verdadera)
el tamaño del control se adapta al tamaño de la imagen, si el tamaño de la imagen es muy grande
debe tener cuidado de no opacar otros controles, si toma el valor False (Falso) no se cambia el
tamaño del control ni de la imagen, si la imagen es más grande que el control ésta se recortará.
Donde X1 y Y1 son las coordenadas del punto inicial y X2 y Y2 las del punto final, el color
es opcional.
X, Y son las coordenadas del centro del círculo, radio el tamaño del radio y el color es
opcional.
Donde radio es la distancia más grande de la elipse, inicio y fin se colocan si se desea
realizar sólo un arco, y aspecto es la relación o proporción de la distancia vertical con respecto a la
horizontal, los valores mayores a uno dibujan elipses alargadas verticalmente, mientras que los
valores entre cero y uno dibujan elipses alargadas horizontalmente. No se aceptan valores
negativos.
Donde inicio y fin son los ángulos de inicio y fin del arco en radianes y aspecto es opcional
y se coloca si desea dibujar el arco de una elipse.
• Escribir Texto: Se escribe texto mediante el método Print. Para establecer el lugar
donde se colocará el texto se utilizan las instrucciones Objeto.CurrentX y
Objeto.CurrentY.
Objeto.CurrentX = CoordenadaX
Objeto.CurrentY = CoordenadaY
Objeto.Print "Escriba texto"
Notas Importantes: Es importante resaltar que la coordenada Y se mide de arriba hacia abajo, tal
como los formularios.
Si en algún método gráfico desea omitir el color, inicio o fin deberá dejar el espacio en
blanco entre las dos comas:
Programación con VB 6.0 Ing. Kelvin Atencio
Como se puede ver el color es opcional en todos los métodos gráficos y si se omite este
presentará el color de la propiedad ForeColor cuyo valor predeterminado es negro.
Control Propiedades
1er Botón de Comando Name: cmdMostrar
Caption: Mostrar &imagen
Top: 120
2do Botón de Comando Name: cmdCuadrado
Caption: Dibujar c&uadrados
Top: 600
3er Botón de Comando Name: cmdLinea
Caption: Dibujar &líneas
Top: 1080
4to Botón de Comando Name: cmdPunto
Caption: Dibujar varios &Puntos
Top: 1560
5to Botón de Comando Name: cmdElipse
Caption: Dibujar &Elipse
Top: 2040
6to Botón de Comando Name: cmdCirculo
Caption: Dibujar &círculos y arcos
Top: 2520
7mo Botón de Comando Name: cmdTexto
Caption: Escribir &texto
Top: 3000
8vo Botón de Comnado Name: cmdBorrar
Caption: &Borrar
Top: 3480
PictureBox Name: Monitor
Height: 3735
Width: 4095
Left: 2280
Top: 120
BackColor: Blanco
Option Explicit
Private Sub cmdMostrar_Click()
Set Monitor.Picture = LoadPicture("C:\Windows\Aros.bmp")
End Sub
MARCOS (FRAME):
Programación con VB 6.0 Ing. Kelvin Atencio
Los Marcos actúan como agrupadores y contenedores de otros controles. Por ejemplo se
puede utilizar para agrupar botones de opción para que el usuario elija una de las opciones
presentadas o casillas de verificación para elegir varias opciones.
Puede colocar cualquier control sobre él y al colocarlo el control hará referencia con sus
propiedades top y left al marco y no al formulario.
(La explicación de los botones de opción puede encontrarla más adelante durante la
descripción de los controles)
• Dibujar una etiqueta en la parte superior del formulario, con las siguientes propiedades
Caption: (Borre su contenido)
Height: 375
Width: 4575
Left: 120
Top: 120
BorderStyle: 1 – Fixed Single
• Dibujar ahora un control Frame (marco) con las siguientes propiedades:
Caption: Carrera
Height: 1575
Width: 2055
Left: 120
Top: 600
• Colocar un botón de opción dentro del marco. Colocando el nombre optCarrera y
Caption igual a Ingeniería.
• Se va a crear una matriz de controles, para ello, se debe copiar el botón de opción y al
pegar se desplegará un mensaje de diálogo que preguntará. ¿Desea crear una matriz
de controles? Responda Si. Se pegará un control cuyo Caption se debe cambiar a
Arquitectura. Después corte este control, seleccione el marco (haga clic sobre él) y
pegue el control. Esto se hace para asegurar que el control quede dentro del marco
seleccionado. Luego, colóquelo debajo del anterior botón de opción. Después, se debe
pegar otro control (botón de opción) como matriz de control cuyo Caption va a cambiar
a Letras.
• Ahora se colocará otro control Frame (marco), se dibujará este control sobre el
formulario asignando las siguientes propiedades:
Caption: Institución
Height: 1575
Width: 2415
Left: 2280
Top: 600
• Se van a colocar también tres botones de opción, el nombre para el primero es (no su
Caption, sino su propiedad Name) es optInstitucion, cree la matriz de controles y
colóquelos dentro de este marco, sus caption respectivos son: Universidad Nacional,
Universidad Estatal y universidad Municipal.
• Se asigna a la propiedad TabIndex del botón de opción que dice Universidad Nacional
el valor cero (0).
• Coloque debajo de los marcos un botón de comando con Caption igual a &Salir.
• Ahora le toca el paso a la codificación:
Si el control está habilitado, éste responde al evento clic cambiando su propiedad value a
activado o desactivado, según sea el caso, si se presiona doble clic el control reconoce cada clic
por separado quedando en el mismo estado.
Puede crear un acceso directo si antepone el signo & a la letra en la propiedad Caption, así
al presionar la combinación Alt+Letra se llevará a cabo el evento clic.
Si no desea que la casilla muestre un texto en su propiedad Caption sino que muestre una
figura, puede utilizar la propiedad Picture y Style para asignar la imagen a el control.
Este programa tiene la finalidad de utilizar el control CheckBox, se debe crear un proyecto
nuevo y en el formulario colocar tres controles CheckBox, con los siguientes Captions:
1. &Entre 20 y 30 años
2. &Tiene experiencia en el área
3. &Bilingüe
Ahora, para continuar se colocará un botón de comando debajo de las casillas de
verificación, con Caption: &Contratar?.
Para finalizar se agrega debajo del botón de comando una etiqueta con las siguientes
propiedades:
• Caption: (Sin contenido)
• Font: Tamaño:12 – Negrita
• Autosize=True (verdadero)
• Alignment: 2 – center
Al ejecutar el programa se verifica que si el aspirante cumple con los tres requisitos debe
ser contratado y no aquellos que sólo cumplen menos.
Se puede crear un acceso directo si antepone el signo & a la letra en la propiedad Caption,
así al presionar la combinación Alt+Letra se llevará a cabo el evento clic, es decir, la selección.
El programa que ejemplifica este control es el Programa #5.
Los cuadros de lista es un control que tiene la finalidad de presentar una lista de elementos
al usuario de tal manera que éste escoja una o varias opciones, o puede también utilizarse para
enlistar elementos en tiempo de ejecución.
Los elementos pueden colocarse en la lista en tiempo de diseño o en tiempo de ejecución.
Para agregarlos en tiempo de diseño, se debe rellenar la propiedad List (en la ventana
Propiedades) con los elementos que se deseen, en este caso, cada vez que se coloque un
elemento se presiona la combinación de teclas Control+Enter para pasar a la siguiente línea, al
siguiente elemento.
Para agregarlos en tiempo de ejecución se utiliza la instrucción Additem, de la siguiente
manera:
Lista.Additem "Elemento" [, índice]
Lista.Additem Elemento, 0
Sólo se pueden eliminar elementos mediante su número de índice, para obtener el número
de índice de un elemento seleccionado se utiliza la propiedad Lista.ListIndex, de tal manera que
para eliminar un elemento seleccionado se debe escribir:
If Lista.ListIndex>=0 Then
Lista.RemoveItem Lista.ListIndex
End if
Si no existe un elemento seleccionado la propiedad ListIndex toma el valor –1, por lo tanto
se le antecede la sentencia IF asegurando que haya seleccionado un elemento. Si no se coloca
esta sentencia y no hay elementos seleccionados en la lista el programa genera un error.
Este programa utiliza una lista para ordenar puntos de coordenadas X, Y. Grafica estos
puntos en un PictureBox.
Para este fin, se deben colocar una lista, dos etiquetas, dos cuadros de texto, un cuadro de
imagen y tres botones de comando.
A continuación, se muestran las propiedades Name que deben tener estos controles:
Control Name
Cuadro de texto 1 txtX
Cuadro de texto 2 txtY
Lista 1 lstPuntos
Botón de Comando 1 cmdIngresar
Botón de Comando 2 cmdEliminar
Botón de Comando 3 cmdBorrar
Cuadro de Imagen 1 Monitor
Las propiedades Height y Width del Monitor son 2175 cada una.
Se deben ubicar los controles de tal manera que se observen de la siguiente manera:
Option Explicit
txtX.SetFocus
End If
End If
End Sub
Se puede interactuar un poco con el programa para relacionarse con los comandos y
funciones de cada botón de comando, lista y control PictureBox.
Es importante resaltar que, en este caso, aunque se elimine de la lista las coordenadas de
un punto, no se borra éste del cuadro de imagen. Esto se hace debido a que todavía no se tienen
las herramientas necesarias para generar dichos procedimientos, esto es sólo un ejemplo de cómo
se utiliza el control ListBox y por lo tanto se dejaron a un lado estas posibilidades.
Para obtener más detalles sobre este programa dirigirse a la Sección Detallada de
Programas al final de este tomo.
Puede ver también el ejemplo del control ComboBox para ver otra utilidad de los cuadros
de lista.
Guarde este programa ya que lo utilizará mas adelante cuando se introduzca en el tema
del trabajo con ficheros.
Es muy importante resaltar que los cuadros de lista y el cuadro combinado tienen funciones
similares, sin embargo pueden tener distintas funciones según el programa.
En el caso del ejemplo del cuadro de lista se utilizó para enlistar un conjunto de puntos que
se iban dibujando en el cuadro de imagen, además los elementos (puntos) se encerraban en
paréntesis y se separaban las variables por comas. En el caso del ejemplo del cuadro combinado
se utilizó para desplegar una lista en el cual el usuario podía elegir una opción; en este ejemplo
también se pudo utilizar un cuadro de lista sin embargo se quiso que ambos ejemplos sirvieran
para ambos casos de manera que el lector pueda asociar las distintas funciones que pueden tener
estos controles a la hora de programar.
Ahora, se procederá a colocar el siguiente código dentro la ventana de código del formulario:
Option Explicit
Private Sub Command1_Click()
Form1.ScaleMode = vbCharacters
Picture1.ScaleMode = vbCharacters
Label1.Move 0, 0
Label1.Caption = Text1
HScroll1.Max = Label1.Width - Picture1.Width + 1
HScroll1.Visible = (Picture1.Width < Label1.Width)
Programación con VB 6.0 Ing. Kelvin Atencio
End Sub
Ejecute el programa y coloque en el cuadro de texto una cadena de números o textos más
grande que el tamaño del cuadro de imagen, luego haga clic en el botón de comando, aparecerá la
barra de desplazamiento horizontal permitiendo desplazarse para ver el contenido completo de la
etiqueta. Si coloca un número de menos caracteres no aparecerá la barra.
Para obtener la explicación del programa detalladamente, se puede dirigir a la Sección
Detallada de Programas.
Puede utilizar la barra de desplazamiento también para observar completamente una
imagen contenida dentro de un control cuadro de imagen. Esto es muy útil ya que el cuadro de
imagen no muestra la imagen completa si su tamaño es menor. Se puede entonces colocar un
Picture2 dentro de un Picture1 y seguir la secuencia semejante a como se hizo con la etiqueta,
colocando además una barra de desplazamiento vertical.
Option Explicit
Puede ejecutar el programa para observar su funcionalidad. Para obtener una explicación
detallada del programa diríjase a la Sección Detallada de Programas.
CONTROLES
• CONTROL DRIVELISTBOX: LISTA DE UNIDADES DE DISCOS
Estos controles se agruparon en uno ya que tienen finalidades semejantes. El caso de las
listas de unidades de disco, muestran un cuadro combinado con las unidades de disco presentes
en su computador. La propiedad más importante de este control es la propiedad Drive que
devuelve o establece la unidad seleccionada en tiempo de ejecución.
Las listas de directorios muestran las distintas carpetas de directorio que están grabadas
dentro del computador. la propiedad más importante de ésta es la propiedad Path que devuelve o
establece la ruta de acceso actual.
La listas de archivos muestran la lista de archivos de un directorio seleccionado. También
tiene la propiedad Path con las misma función que las listas de directorio, a diferencia que éste
muestra la lista de archivos y no la de directorio. También contiene la propiedad Patern que
muestra sólo la extensión de algún tipo de archivo. Es útil por ejemplo, si quiere mostrar sólo
archivos de extensión *.exe, *.doc, u otro.
Ejecute el programa y ubique las diferentes unidades de disco, directorio y verifique que la
lista de archivos corresponde a los archivos de word (*.doc) de la carpeta, es recomendado buscar
la carpeta Mis Documentos.
La explicación detallada de la codificación la puede encontrar en la Sección Detallada de
Programas.
Propiedad Shape:
Es la más común y permite dibujar distintos tipos de figura sin escribir código, por ejemplo:
agregue un control Shape a un formulario y cambie la propiedad Shape (en la Ventana de
Propiedades del Control) presionando doble clic o eligiendo de la lista, la forma va cambiando
según vaya cambiando su propiedad Shape, se pueden crear las siguientes figuras:
Las constantes se utilizan para cambiar la forma del control en tiempo de ejecución, o se
puede colocar su forma abreviada mediante su número correspondiente.
Propiedad FillStyle:
Se refiere al estilo del relleno del control. Si se encuentra en la forma Transparente = 1, la
propiedad FillColor queda deshabilitada, de tal manera que no habrá color de relleno. Los distintos
estilo de la propiedades FillStyle pueden obtenerse en el Examinador de Objetos introduciendo la
palabra FillStyleConstants.
Para cambiar el grosor del borde utilice la propiedad BorderWidth, el grosor
predeterminado es uno, de tal manera que los números mayores a uno serán mas gruesos que la
predeterminada. No se aceptan valores menores a uno, ni valores decimales.
Para cambiar el color del borde elija el tipo de borde con la propiedad BorderStyle y cambie
la propiedad BorderColor y DrawMode al de su preferencia.
Los estilos de borde también se pueden obtener en el Examinador de objeto introduciendo
la palabra BorderStyleConstants.
Programación con VB 6.0 Ing. Kelvin Atencio
Donde, imagen es el nombre del control y Ruta es una cadena de texto con la ruta a la
imagen que desea mostrar.
Si la imagen es pequeña y la propiedad Stretch es True (verdadera), la imagen pierde
calidad al adaptarse al tamaño del control.
Si la propiedad Stretch esta establecida a False (Falso) el control cambia de tamaño
adaptándose al tamaño de la imagen.
1. Cree un archivo de Excel, rellene las casillas de la siguiente manera, o rellene las
casillas como una base de datos Excel con los datos que prefiera (esto es sólo una
opción):
De tal manera que se puede crear y agregar un archivo nuevo eligiendo de esta lista el tipo
de archivo con la opción “Crear nuevo” o puede insertar un archivo ya creado mediante la opción
“Crear desde un archivo”. Inserte algunos tipos de archivos nuevos y ya creados desde el
contenedor OLE e interactúe, es muy fácil obtener resultados con este control directamente.
Estos métodos deben combinarse con algunas de sus propiedades para poder almacenar
datos, abrir documentos o realizar completamente la acción que se desea. Es decir, no basta
mostrar el cuadro de diálogo abrir para abrir un archivo, hace falta algunas propiedades que nos
distingan.
Este control en tiempo de ejecución no es visible, solo puede ver su aplicación en la
aparición de los cuadros de diálogos, en tiempo de diseño este control tiene un tamaño que no se
puede variar.
Las propiedades de este control se encuentran “divididas” según el método, por ejemplo, la
propiedad Filter (que devuelve o establece los filtros que se mostrarán en el cuadro de lista
Archivos de tipo de un cuadro de diálogo) sólo pueden ser utilizados por los métodos Abrir
(ShowOpen) y Guardar (ShowSave) ya que son los únicos cuadros de diálogos que necesitan
especificar un tipo de archivo. De esta manera, se muestran a continuación las diferentes
propiedades del control CommonDialog según los métodos mostrados anteriormente:
La propiedad Filter es la propiedad que establece el o los tipos de archivos que se pueden
abrir, o el tipo de archivos que se va a guardar.
Para cambiar la propiedad Filter de un control cuadro de diálogo se utiliza la siguiente
sentencia:
NombreCDialog.Filter="DecripciónTipo1|tipo1|DescripciónTipo2|tipo2"
Hasta completar todos los tipos de archivo posibles que pueden ser usados por la
aplicación. Por ejemplo:
En un formulario agregue un botón de comando (Command1) y un Control Common
Dialog, siguiendo los siguientes pasos:
• Diríjase a Proyecto, haga clic sobre Componentes...
• Espere un momento hasta que aparezca la lista de componentes.
• Busque en la lista Microsoft Common Dialog Control 6.0, active su casilla de verificación.
• Haga clic en Aplicar para agregar al cuadro de herramientas y luego en Cerrar para salir de
la lista.
• Seleccione el control Common Dialog que ahora debe aparecer en el cuadro de
herramientas.
• Dibújelo en el formulario.
Propiedad FileName:
La propiedad FileName devuelve el nombre del archivo que se ha seleccionado cuando se
utiliza el cuadro de diálogo Abrir. Puede utilizarse también para el cuadro de diálogo guardar.
Para ver un ejemplo de esta propiedad puede ver los programas #27 y 28, donde se
encuentra la aplicación de esta propiedad. Se utiliza de la siguiente manera:
Archivo = NombreCDialog.FileName
Donde Archivo es una variable que almacenará una cadena de texto con la ruta y el
nombre del archivo seleccionado, la parte derecha de la igualdad corresponde al archivo
seleccionado del cuadro de diálogo.
Propiedad FileTitle:
Devuelve o establece el nombre (sin la ruta de acceso) del archivo que se va a abrir o
guardar en tiempo de ejecución.
Método ShowPrinter:
Propiedades:
• Copies: Devuelve o establece un valor que determina el número de copias que se van a
imprimir.
• FromPage: Devuelve o establece el valor que indica la primera página que se va a
imprimir.
Programación con VB 6.0 Ing. Kelvin Atencio
• ToPage: Devuelve o establece el valor que indica la primera página que se va a imprimir.
• Orientation: Devuelve o establece la orientación del papel de la impresora.
• Min: Establece el intervalo de impresión.
• PrinterDefault: Determina si las selecciones de un usuario en cuadro de diálogo Imprimir
se usan para cambiar la configuración predeterminada de la impresora.
Método ShowColor:
Sólo tiene la propiedad Color que devuelve o establece el color seleccionado en el cuadro
de diálogo, por ejemplo:
Este código dibuja un círculo en las coordenadas x, y de cualquier radio con el color
seleccionado en el cuadro de diálogo.
Método ShowFont:
Las propiedades del método ShowFont se refieren al tipo de fuente, son las siguientes:
Método ShowHelp:
• HelpCommand: Devuelve o establece el tipo de Ayuda en pantalla
solicitada.
• HelpContext: Devuelve o establece el Id de contexto para el tema de
Ayuda solicitado.
• HelpFile: Devuelve o establece el nombre del archivo de Ayuda asociado
con el proyecto.
• HelpKey: Devuelve o establece la palabra clave que identifica el tema de
Ayuda solicitado.
Programación con VB 6.0 Ing. Kelvin Atencio
Ejemplo:
Variable1 = 45
Variable2 = "Cadena de Texto"
Variable1 = 45
Variable2 = 30
Variable1 = Variable1 + Variable2
En este caso es muy importante resaltar que, la tercera línea de instrucción el signo igual
no representa una ecuación de igualdad sino una asignación. La primera línea asigna el valor 45 a
Variable1, en la segunda línea se asigna 30 a la Variable2. En la tercera línea se realiza una
operación de suma (Variable1+ Variable2 = 45+30 ) que se asigna a Variable1, por ello el valor de
Variable1 cambia de 45 a 75. En este caso se pudo utilizar una Variable3 que guardara el valor de
la suma, pero de la forma como se desarrolló permitió la economía de memoria ya que utilizó una
variable menos.
• Declarar variables:
Para declarar variables se utiliza la Sentencia:
Donde, Dim le dice al programa que cree una nueva variable con el nombre Variable, y [As
Tipo] es opcional y declara el tipo de dato que se desea almacenar, sino se coloca el programa
crea una variable tipo Variant (ver más delante de que se trata). Por ejemplo: Dim MiCadena As
String, prepara una variable de nombre MiCadena para almacenar cadenas de texto.
Las variables una vez declaradas no distingue entre mayúsculas y minúsculas, es decir si
se declaró la variable con nombre MiCadena, cuando se escriba micadena, Micadena, miCadena u
otro nombre con otras mayúsculas y minúsculas, el programa cambiará el nombre colocando
MiCadena, que es el nombre original, es decir, aunque cambie mayúsculas y minúsculas será la
misma variable.
• No puede ser igual a una palabra clave de Visual Basic. No puede ser por ejemplo
Dim, If, Then, For, String, etc.
• No puede incluir caracteres especiales como asterisco, punto, signo de admiración
o interrogación, u otros.
• Pueden tener el mismo nombre siempre y cuando estén en procedimientos
diferentes.
Si declara una variable dentro de un procedimiento, una vez terminada la secuencia del
procedimiento, se perderá el valor de la misma, para evitar esto se deberá declarar la variables de
forma:
Static Variable [As Tipo]
Hay variables que se necesitan que puedan modificarse desde diferentes procedimientos
para esto, se debe declarar las variables en la sección de declaraciones del formulario (líneas
superiores del código del formulario) de la siguiente forma:
Option Explicit
Public Variable As Integer
Ejecute el programa e interactúe con el haciendo clic sobre los botones. Verifique como
varían los valores de las variables cada vez que presiona uno de ellos.
Para obtener una información detallada sobre la codificación del programa diríjase a la
Sección Detallada de Programas.
Programación con VB 6.0 Ing. Kelvin Atencio
Tipos de Datos:
Una buena selección de la variable dentro de un programa promueve un ahorro de
memoria, por lo que se recomienda que se seleccione el tipo adecuado para almacenar los datos
que se desean. Los tipos de datos son los siguientes:
• Boolean: Almacena un valor que puede tomar dos opciones: verdadero (True) o
Falso (False). Un ejemplo de este tipo de dato es la propiedad visible de algunos
controles. Ocupa un espacio en la memoria de 2 bytes.
• Byte: Puede almacenar un número natural que puede estar entre 0 y 255. No
acepta valores negativos. Puede ser utilizado por ejemplo para almacenar edades,
los números de meses del año o los días del mes, etc. Si se realiza una suma o
restan dos números Bytes, el resultado debe ser Byte, debe estar entre 0 y 255, si
no, el programa genera un error de desbordamiento. Ocupa un espacio de 1 byte.
• Integer: Puede almacenar valores enteros desde –32.768 hasta 32.767. Ocupa en
la memoria 2 bytes.
• Long: También puede almacenar valores enteros, pero en este caso tiene una
extensión más grande ya que almacena números entre –2.147.483.648 hasta
2.147.483.647. Ocupa en la memoria 4 bytes.
• Single: Puede almacenar valores numéricos con decimales, tanto negativos como
positivos, es de precisión simple, su rango está entre –1,401298x10-45 hasta
+1,401298x1045. Ocupa en la memoria 4 bytes.
• Double: También puede almacenar valores numéricos con decimales, negativos y
positivos, pero por tener más memoria asignada puede tener valores de precisión
doble, van desde –4,94065645841247x10-324 hasta 1,79769313486232x10308.
ocupa en la memoria 8 bytes.
• Currency: Este tipo de dato se utiliza para almacenar valores numéricos
monetarios, su rango va desde –922.337.203.685.477,5808 hasta el
922.337.203.685.477,5807.
• String: Se utiliza para almacenar cadenas de texto. Puede tener una longitud fija si
se declara: Dim Variable As String * Longitud, donde longitud es un
número entero que indica el número de caracteres que va a tener la variable. Si
cuando se introduce una cadena, ésta tiene la longitud menor a la cantidad dada
por Longitud, entonces el programa los rellena con espacios en blanco, si la
cantidad de caracteres es mayor entonces se recortará. Ocupa en la memoria de
acuerdo al número de caracteres que contenga (1 byte por carácter).
• Date: Este tipo de dato puede almacenar valores de fechas y horas. Su rango va
para las fechas desde 1/1/100 hasta el 31/12/9999 y para las horas desde 0:00:00
hasta 23:59:59.
• Variant: Este tipo de dato es el que mas memoria consume (16 bytes), pero tiene
una ventaja sobre los otros y es que puede almacenar cualquiera de los tipos de
datos descritos anteriormente, incluso puede cambiar de una cadena a un número,
después guardar una fecha o cualquier otro tipo de dato. Las variables tipo variant
no son declaradas necesariamente puede escribir Dim Variable y VB
reconocerá como si hubiese escrito Dim Variable As Variant.
• Estructuras: Se utiliza para crear un solo tipo de dato (personalizados)
combinando los distintos tipos básicos vistos anteriormente. Estas se explicarán
más adelante en esta misma sección. Su espacio en la memoria es variable de
acuerdo al tipo de datos que combine.
Programación con VB 6.0 Ing. Kelvin Atencio
Dim Variable
Crea una variable tipo variante de nombre Variable
Existen funciones que convierten un tipo de dato a otro: las funciones de conversión son:
Función Convierte a:
Cbool(expresión) Boolean
Cbyte(expresión) Byte
Ccur(expresión) Currency
Cdate(expresión) Date
CDbl(expresión) Double
Cint(expresión) Integer
CLng(expresión) Long
CSng(expresión) Single
CStr(expresión) Strng
Cvar(expresión) Variant
Por ejemplo la sentencia CStr(45125) almacena 45125 como una cadena de texto y no
como un valor numérico.
Para crear una variable de este tipo de dato se procede del mismo tipo como si estuviera
creando una variable de tipo Nombre:
Public Variable As Nombre
Variable.SubVariable1 = Valor1
Variable.SubVariable2 = Valor2
Type Alumnos
Nombre As String
Edad As Byte
Grado As Byte
End Type
Crea un tipo de dato que graba el nombre, edad y grado de un alumno, luego se colocará:
Constantes:
Una constante es un valor que por si sólo puede ser difícil de recordar y por lo tanto se le
asigna un nombre para trabajar con el nombre y no con el valor. Existen constantes que están
intrínsecas en el lenguaje de programación como por ejemplo FillStyleConstants, que contienen
un diverso conjunto de constantes que pueden ser utilizadas para cambiar el estilo del, relleno a un
objeto.
Pero, en VB 6.0, puede crear sus propias constantes anteponiendo la palabra Const al
nombre de la constante que desea crear, agregar el símbolo igual (=) y luego el valor, de tal
manera quedaría:
O también:
Const LineasCruzadas = vbCross
Luego, puede llamar a la constante de igual manera que se llamaría a una variable, pero
en este caso no se puede cambiar el valor asignado, si se intentara cambiar el programa mostraría
un error de compilación.
6. MATRICES:
Las matrices permiten crear variables con un mismo nombre diferenciándose sólo por un
número de índice. Los elementos de las matrices están entre un índice inicial y un índice final, los
índices de los elementos de la matriz deben estar dentro de estos índices.
Las matrices almacenan todos sus elementos en un mismo tipo de dato, este tipo de dato
fue declarado al mismo tiempo que fue declarado la matriz. Las matrices pueden ser de tamaño fijo
o dinámicas (que pueden cambiar de tamaño).
Los índices de las matrices comienzan a enumerarse desde cero por lo tanto el número al
lado de la matriz sumado en uno es el número de elementos que contiene la matriz. Por lo tanto:
Crea una matriz de nombre MiMatriz de 11 elementos de tipo cadena de texto. Con
números de índice entre 0 y 10. Si se desea que sólo contenga 10 elementos tendrá que
declararse:
También puede declarar matrices con números de índices entre dos valores diferentes por
ejemplo:
De esta manera puede variar los números de índice entre dos valores Tipo Long diferentes.
Matriz(Índice) = Valor
De la misma manera que se asigna un valor a una variable, pero esta vez contiene dentro
del paréntesis el número de índice correspondiente.
De manera que:
Dim i As Integer
Dim K(9) As Integer
For i = 0 To 9
K(i)=i
Next
Almacena el número de índice en su variable correspondiente.
También se pueden crear matrices multidimensionales si separa con una coma los valores
de índices de la siguiente manera:
Al igual que las matrices unidimensionales puede cambiar la numeración de sus índices
como valores de tipo Long. Ejemplo:
De esta manera se creará una matriz de dos dimensiones de 20 elementos. (De uno hasta
cinco en el primer índice y de diez hasta trece en el segundo índice)
Puede agregar más dimensiones y crear matrices de tres dimensiones, cuatro o mas
dimensiones.
Option Base 1
Para que se comience a enumerar desde uno o,
Option Base 0
Para enumerarse desde el número cero.
Matrices Dinámicas:
Las matrices vistas anteriormente son estáticas, ya que el número de elementos no puede
variar, esto puede ocasionar que el número de elementos no sea suficiente para algunas acciones
o por el contrario que esté sobredimensionado.
Para este caso se crearon la matrices dinámicas, estas se declaran de la misma forma que
las matrices dinámicas pero sin nada en los paréntesis, de la siguiente manera:
Luego, en tiempo de ejecución, cuando ya se esté seguro del número de elementos que
necesite, se puede redimensionar, con la siguiente sentencia:
Cada vez que redimensione la matriz se borrarán todos los elementos que estaban
almacenados en la matriz, esto es muy útil si desea utilizar la matriz para almacenar valores
nuevos, pero sino, esto se puede evitar si se coloca la palabra Preserve. Esta sentencia preservará
los valores almacenados en la matriz hasta ese momento.
Redim sólo se puede usar una vez por función o por procedimiento.
Aunque se puede redimensionar el número de elementos que tiene una matriz no se puede
cambiar el número de dimensiones.
Para ampliar la matriz en un elemento preservando los valores de los elementos que ella
contiene se puede utilizar la palabra UBound de la siguiente manera:
Sólo se puede cambiar la última dimensión de una matriz, si se intenta cambiar otra
dimensión se producirá un error en tiempo de ejecución.
Programación con VB 6.0 Ing. Kelvin Atencio
Los operadores lógicos son símbolos (algunos matemáticos) que se utilizan para crear
condiciones y bucles. El computador toma decisiones (mediante las sentencias de control que se
verán mas adelante) según estas condiciones devuelvan verdadero o falso. Los operadores lógicos
son:
Operador Símbolo
Igual =
Diferente <>
Igual (en texto) Like
Menor que <
Mayor que >
Menor o igual que <=
Mayor o igual que >=
Negación Not
Condición Devuelve:
30 = 12 Falso
12 <> 30 Verdadero
30 < 12 Falso
Not 12 > 30 Verdadero
Se pueden colocar mas de una combinación y así anidar condiciones que también
devolverán verdadero o falso:
Condición Devuelve:
Programación con VB 6.0 Ing. Kelvin Atencio
X = 2 Or X = 3 And V = 1 Or V = 2 Verdadero
X = 2 And V = 3 Or X = 1 And V = 2 Falso
Operadores Matemáticos y Funciones Matemáticas:
VB 6.0 contiene un conjunto de operadores matemáticos que se utilizan para hacer
cálculos numéricos, algunos de ellos son:
8. PROCEDIMIENTOS Y FUNCIONES:
Procedimientos:
Los procedimientos contienen conjunto de acciones o secuencias de código que ejecuta la
aplicación. Estos procedimientos pueden ser llamados desde cualquier lugar de un formulario o sin
son públicos desde cualquier lugar de la aplicación.
Los procedimientos pueden simplificar la codificación cuando existe una secuencia de
código que se debe repetir. Con el nombre del procedimiento puede llamar a este conjunto de
secuencias.
Supongamos que se tienen dos procedimientos: el principal de nombre Procedimiento1 y el
secundario de nombre Procedimiento2. Si en algún lugar de Procedimiento1 se llama a
Procedimiento2, desde este lugar, el programa comienza a ejecutar el conjunto de secuencias de
Procedimiento2, luego terminado este procedimiento el programa continua ejecutando las
secuencias de Procedimiento1 hasta completar la secuencia.
Las variables privadas de un procedimiento no se conservan cuando se ejecute el otro
procedimiento, si las variables son públicas (declaradas en la sección superior del código del
formulario bajo la sentencia Public) si conservan su valor.
Option Explicit
Public Area As Double
Los primeros sólo ejecutan una serie de sentencias y comandos y no devuelven un valor.
Los segundos contienen una función dentro de sí que devuelven un valor al llamarlos.
Los terceros pueden devolver o asignar valores.
Option Explicit
Private Sub Form_Load()
Text1 = ""
Text2 = ""
Command1.Caption = "Calcular Residuo"
Label1 = ""
End Sub
Se puede notar que la función disminuyó considerablemente las instrucciones que debían
colocarse en la secuencia de Command1. De hecho, no fue necesario declarar variables. Los
detalles de la programación aparecen en la Sección Detallada de Programas.
Programación con VB 6.0 Ing. Kelvin Atencio
9. SENTENCIAS DE CONTROL
Las sentencias de control se utilizan en VB 6.0 para que el programa lleve un curso lógico
y tome decisiones en base a condiciones que se puedan presentar mientras éste se ejecuta.
Como ya se ha visto anteriormente, las condiciones pueden devolver dos posibilidades en
una decisión, puede devolver verdadero (True) o Falso (False); así puede llevar el programa a
ejecutar una serie de instrucciones de acuerdo a una respuesta, para ello se utilizan las estructuras
de decisión.
If condición Then
Instrucciones si condición es verdadera
[Else]
Instrucciones si condición es falsa
End If
If condición Then
Instrucciones si condición es verdadera
End If
También es posible que se encuentre el caso de que haya mas de una condición que se
desea comparar, así por ejemplo, si se cumple una condición se ejecutan una serie de
instrucciones, en caso de que sea falso talvez se desee comparar otra condición y verificar si es
verdadera, así sucesivamente hasta encontrar la condición que se cumple, para esto se utiliza la
siguiente secuencia:
If condición1 Then
Instrucciones si condición1 es verdadera
[ElseIf condición2 Then]
[Instrucciones si condición2 es verdadera]
[ElseIf condición3 Then]
[Instrucciones si condición3 es verdadera]
...
[Else]
[Instrucciones si todas las condiciones son falsas]
End If
Puede agregar cualquier cantidad de ElseIf tantas veces como quiera hasta lograr el
objetivo de alcanzar la secuencia que se quiere ejecutar según la condición. Cuando ya una
condición se cumple se ejecutan las instrucciones que están dentro de esta condición y al terminar
la secuencia se va hasta el final
Programación con VB 6.0 Ing. Kelvin Atencio
Esta secuencia es muy valiosa si las condiciones no incluyen la misma variable o incluyen
más de una variable. Ya que si desea comparar una variable es más fácil utilizar la secuencia
Select Case.
Ejecute la aplicación e introduzca un valor numérico en el cuadro de texto. Luego haga clic
en el botón de comando y espere la respuesta.
Si tiene alguna duda sobre la codificación de este programa puede repasar la explicación
de la estructura de decisión If, y verificar los detalles sobre la función de dicha estructura.
Esta explicación se encuentran las cuatro combinaciones posibles de casos que se pueden
presentar. En la sección que muestra Case Is, se puede colocar menor o igual (<=) , menor (<),
mayor (>) o mayor o igual (>=) y hacer la comparación de la variable respecto a un valor.
La siguiente instrucción:
Do While condicion
Sentencias
[Exit Do]
Loop
Se utiliza para realizar el conjunto de instrucciones mientras se cumpla una condición, así,
si la condición devuelve verdadero (True) o distinto de cero, se ejecutan el conjunto de
instrucciones, luego se regresa al inicio y se vuelve a verificar la condición, si es verdadera de
nuevo o distinta de cero, se vuelve a ejecutar la secuencia hasta que la condición devuelva Falso o
cero.
Este bucle se puede escribir mas rápidamente de la siguiente manera:
While condidion
Sentencias
Wend
Do
Programación con VB 6.0 Ing. Kelvin Atencio
Sentencias
[Exit Do]
Loop While condicion
También se puede cambiar la estructura Do ... Loop de tal manera que se ejecute el
conjunto de instrucciones cuando la condición devuelva Falso o cero, para ello se debe cambiar la
palabra While de la instrucción por la palabra Until. De tal manera quedaría:
Ejecute la aplicación e interactúe colocando valores hasta llegar hasta 100, verifique que
se detiene el proceso.
Este programa no se colocó en la Sección detallada de Programas ya que es de fácil
comprensión y muchos de los procesos utilizados ya han sido ampliamente explicados.
Donde variable es una variable que va a cambiar desde un valor inicial a un valor final, con
un incremento dado por Step (opcional). Exit For se puede utilizar en alguna parte del interior de
las sentencias si se desea dar fin al bucle.
El valor incremento puede ser positivo, para ir incrementando la variable o negativo para ir
disminuyendo, lógicamente si es positivo el valor inicial debe ser menor al valor final o si es
negativo el valor inicial debe ser mayor al valor final. Si no se coloca el incremento (Step) este
asumirá uno a menos que la variable cambie dentro de las sentencias.
Programación con VB 6.0 Ing. Kelvin Atencio
Donde Elemento es una variable de tipo Variant si es una Matriz o un Objeto si es una
colección de objetos. También te la opción Exit For para salir del bucle en el momento que se
desea.
OTRAS SENTENCIAS:
Sentencia Goto:
La sentencia Goto permite dirigir la secuencia de instrucciones a otro lugar mas inferior en
vez de seguir la secuencia de líneas como generalmente se ejecuta un programa.
Cuando esta sentencia se coloca, se debe colocar a su lado el nombre de un
subprocedimiento, este nombre debe colocarse más abajo (en el lugar donde se desea que se
dirija el programa) seguido de dos puntos y luego las sentencias o instrucciones que se desea que
se ejecute, por ejemplo:
Es muy importante resaltar que las líneas de secuencia de las instrucciones por realizarse
de arriba hacia abajo no excluye al subprocedimiento, por lo tanto para finalizar la ejecución de
instrucciones antes del subprocedimiento debe agregarse la palabra Exit Sub/Function que
corresponda para no ejecutar las líneas contenidas en el procedimiento.
Esta sentencia también se utilizan en el caso que se produzca un error en la ejecución de
un procedimiento, en este caso se escribiría en la primera línea del procedimiento:
Y debajo en la parte inferior del procedimiento colocar las líneas correspondientes a las
acciones que se deben tomar en caso de producirse un error. Esto se ve ejemplificado en el
siguiente programa:
Programación con VB 6.0 Ing. Kelvin Atencio
Ejecute la aplicación, introduzca un valor entero en el primer cuadro de texto y presione clic
sobre el botón de comando, Text2 mostrará Verdadero si el valor es divisible entre 2, 3 y 4 o falso
si no lo es. Pruebe con distintos números.
Los detalles sobre la codificación de este programa están en la Sección Detallada de
programas.
Sentencia With:
A esta sentencia también se le llama Bloque With, ya que agrupa un conjunto de
instrucciones con respecto a un objeto, control o estructura. La sentencia With se utiliza cuando se
desea ejecutar un conjunto de instrucciones con referencia a un objeto, control o estructura para no
hacer referencia en cada paso a esta sino una sola vez. Por ejemplo la secuencia:
With Label1
.BorderStyle=1
.Caption="Nombre:"
.Enabled=True
.Width=1815
End With
Cambia las propiedades estilo de borde, caption, ensamblado y ancho de la etiqueta uno, con
necesidad de escribir Label1 sólo una vez.
Programación con VB 6.0 Ing. Kelvin Atencio
Los cuadros de diálogo se utilizan para presentar un mensaje al usuario con la finalidad
que éste tome decisiones y el programa reaccione a ellas.
Por ejemplo si el usuario introdujo realizó una acción inválida, usted puede mostrar
mediante un mensaje informando que la acción que se ha realizado fue inválida y por lo tanto debe
corregir para continuar. También se pueden presentar cuadros de diálogo para mostrar
información. Hay otros cuadros de diálogo como el cuadro de diálogo de Abrir, Guardar como,
Imprimir, que esperan acciones del usuario para continuar.,
Los cuadros de diálogos pueden ser modales o no modales. Modales significa que se debe
cerrar el cuadro de diálogo (puede ser hacer clic sobre el botón Aceptar, Cancelar, Cerrar u otro)
para continuar utilizando la aplicación. Si no se cierra no se podrá continuar utilizando la aplicación.
Los cuadros de diálogo Guardar como, Imprimir, Abrir y el que se han utilizado hasta ahora
en la programación: MsgBox, son de tipo modal, esperan la reacción del usuario, mientras que el
cuadro de diálogo Buscar es de tipo no modal, es decir, puede seguir cambiando o utilizando la
aplicación mientras el cuadro de diálogo no modal está abierto o en funcionamiento.
Haga clic sobre Form1 en el Explorador de Proyectos, luego clic sobre Ver objeto, en el
botón de comando presione doble clic para empezar a escribir código, escriba de tal manera que
quede:
Ejecute el programa y verifique que cuando hace clic sobre el botón de comando
Command1 de Form1 se desplega el Form2 de tipo modal, si elimina la sentencia vbModal,
entonces Form2 no será de tipo modal. El botón de comando de Form2 hace que se cierre el
formulario mediante la sentencia Unload Me.
Por ser de fácil comprensión este programa no se encuentra detallado en la Sección
Detallada de Programas.
Donde Prompt es una variable o una cadena de texto que representará el mensaje escrito
que desea que el usuario lea, Estilo es opcional y son un conjunto de características que puede
tener el cuadro de mensaje ya sea que tenga botón de Aceptar, Cancelar, Ayuda o que tenga un
icono a su lado como el signo de exclamación o un icono crítico, si se omite el estilo
predeterminado no se mostrarán iconos y será vbOkOnly que significa que sólo se presentará el
botón Aceptar. Los estilos de cuadros de mensaje se pueden observar si coloca la palabra
vbMsgBoxStyle en el Examinador de objetos.
El titulo también es una variable o una cadena de texto que aparecerá en el título del
cuadro de mensaje, por ejemplo el siguiente código presenta el siguiente mensaje:
Ejecute la aplicación y haga clic sobre el botón de comando, se mostrará un mensaje como
el siguiente:
Presenta dos opciones Si o No, si presiona clic sobre Si, se sale del programa y si presiona
el otro botón cierra el mensaje y continúa la aplicación. Por ser de muy fácil comprensión este
programa no se incluye en la Sección Detallada de Programas.
Option Explicit
Private Sub Command1_Click()
Dim Respuesta As String, Suma As Integer
Respuesta = InputBox("Introduzca un número", "Suma", 10)
Suma = Respuesta + 25
Label1 = Suma
End Sub
En este caso cuando se presiona un clic sobre el botón de comando se desplega una caja
de entrada como la siguiente:
El valor que introduzca en la caja de entrada el programa sumará 25, sino agrega un valor
y coloca una cadena de texto el programa generará un error.
Este programa no se detalla en la Sección Detallada de Programas ya que es de fácil
comprensión.
Programación con VB 6.0 Ing. Kelvin Atencio
El Editor de Menús posee una lista inferior que esquematiza todos los elementos creados
en él.
Las flechas que se encuentran inmediatamente arriba de la lista tienen distintas funciones
cada una, las flechas hacia la izquierda y la derecha sirven para disminuir y aumentar las sangrías
de los menús, respectivamente. Las flechas hacia arriba y hacia abajo sirve para mover un menú
desde una posición inicial a una final (cambiar de posición).
Las sangrías de los menús se utilizan para crear submenús, así, aquellos que aparecen sin
sangría son los menús principales que se muestran al usuario directamente en la Barra de
Herramientas, los submenús primarios (una sangría) son aquellos que se muestran directamente al
hacer clic sobre el menú principal, si desea crear otros submenús se deberá colocar doble, triple u
otras sangrías al submenú, dependiendo de cuantos submenús desea crear. La máxima cantidad
de submenús que puede crear es cinco niveles. Las sangrías se identifican por tener cuatro
puntos(....).
La propiedad Index se utiliza para crear matrices de controles de menús, esto se hace con
el objetivo de simplificar el código cuando los elementos de las matrices deben de utilizar el mismo
Programación con VB 6.0 Ing. Kelvin Atencio
código sólo variando por su número de índice. También se pueden utilizar para crear un menú en
tiempo de ejecución, aumentando la propiedad Index en uno.
La Propiedad Shortcut se utiliza si quiere agregar un acceso directo, por ejemplo si elige la
combinación Ctrl+O para un submenú (que es el caso del submenú Abrir), si se encuentra en
cualquier lugar de la aplicación al presionar esta combinación de teclas se llama a las instrucciones
que se encuentran dentro del evento clic del nombre de menú, de manera que no tendrá que
Programación con VB 6.0 Ing. Kelvin Atencio
dirigirse siempre a la Barra de Menú sino que conociendo la combinación de teclas se abrevia el
tiempo de ejecución. Si se presiona Ctrl+O o Ctrl+G o Ctrl+P se llama al procedimiento de Abrir,
Guardar, o imprimir respectivamente que son los nombres de los submenús.
La Propiedad Checked que no fue utilizada en el programa pasado sirve para colocar un
símbolo de chequeo al lado del caption del submenú, tiene la siguiente forma:
De tal manera que se muestre que hay un elemento activo y uno inactivo, en el caso del
ejemplo se supone que se pueden crear dos tipos de gráficos (logarítmico y semilogarítmico) y
según se muestra actualmente se está utilizando el gráfico de tipo logarítmico.
Luego vaya al formulario y agregue un PictureBox (de nombre Picture1), después escriba
el siguiente código:
Ejecute la aplicación, presione el botón secundario del mouse sobre el control Picture1 y
verifique que se desplega un menú emergente con las opciones Dibujar Circulo y Dibujar Línea, si
hace clic en alguno de ellos se llamarán a las instrucciones correspondientes.
Este programa aparece en la Sección Detallada de programas explicando algunas de sus
instrucciones principales.
Programación con VB 6.0 Ing. Kelvin Atencio
• vbBlack (Negro)
• vbBlue (Azul)
• vbCyan (Aguamarina)
• vbGreen (Verde)
• vbMagenta (Fucsia)
• vbRed (Rojo)
• vbWhite (Blanco)
• vbYellow (Amarillo)
Pero si sólo se trabajara con estos colores se estaría muy limitado, por ello el lenguaje
cuenta con una manera de colores personalizados, cuenta con la instrucción RGB.
Esta función combina tres colores principales R (Rojo) G (Verde) y B (Azul) – por sus
siglas en inglés (Red, Green Blue) – para crear colores personalizados, el valor de cada
componente principal puede variarse desde el cero hasta el 255 generando mas de 16 millones de
posibilidades de colores.
La instrucción RGB tiene la siguiente forma:
Donde variable es el nombre de una variable que almacena un valor tipo Long (Numérico
Entero de gran extensión) que devuelve la función RGB, red es el tinte del color rojo, green el tinte
de color verde y Blue el tinte de color azul, como ya se ha dicho estos valores pueden estar entre 0
y 255.
De esta manera la combinación RGB( 0, 0, 0) devuelve el color negro mientras que la
combinación RGB (255, 255, 255) devuelve el color blanco.
Ejecute el programa. Puede ver las variaciones de los colores mientras cambia las
posiciones de las barras de desplazamiento, tanto individualmente como el color generado por la
combinación de los tres colores.
Programación con VB 6.0 Ing. Kelvin Atencio
NombreColección.Remove índice
O bien
NombreColección.Remove "Clave"
MiColección.Remove 1
En el caso que este elemento esté en la primera posición o más directamente con su clave:
Programación con VB 6.0 Ing. Kelvin Atencio
MiColección.Remove "Pedro"
Para obtener un elemento de una colección se utiliza el método item, que tal como Remove
puede colocarse tanto su índice como su clave. Tiene la siguiente forma:
o también
Si se utilizaron números como claves, éstos deben ser convertidos mediante la instrucción
CStr para ser usados en el método item o Remove, ya que si es un número entero la colección lo
admite como un índice.
Como item es el método predeterminado del objeto Collection, en la codificación no es
necesario hacer referencia a él, se puede simplificar de la siguiente manera:
[Set] Variable = NombreColección(índice)
o también,
Formulario Estándar
Formulario Secundario
Formulario MDI
Para probar este programa ejecútelo, maximice la ventana MDI, es decir la ventana
superior, presione el botón Command1 (el que tiene la imagen Nuevo) se creará un nuevo
Programación con VB 6.0 Ing. Kelvin Atencio
Documento (Documento 2), coloque los dos de tal manera que sean totalmente visibles ambos,
que no se superponga uno del otro, presione el segundo botón de comando se dibujará una elipse
en el formulario activo, esto sucede debido a la sentencia ActiveForm que detecta el formulario
activo y trabaja sobre el de acuerdo a la instrucción. Igualmente sucede con el tercer botón de
comando, pero en este caso borra el contenido de la imagen.
Otros detalles del programa pueden verse en la Sección Detallada de Programas.
Programación con VB 6.0 Ing. Kelvin Atencio
Los primeros almacenan la información de acuerdo al código ASCII que pueden ser leídos
por programas como el Bloc de Notas (NotePad). Generalmente tienen extensión *.txt (archivos de
texto) o *.bat. Existen otros archivos que también guardan la información como archivos ASCII,
como son *.c (archivos de lenguaje de programación C), *.cpp (Archivos de lenguajes de
programación C++), *.java (archivos de lenguaje de programación JAVA) o *.m (Archivos de
programas de Matlab).
Los ficheros binarios son ficheros que devuelven la información tal como se encuentran en
la memoria. Éstos no son legibles por el bloc de notas y tampoco directamente por el usuario.
Ocupan menos espacios de memoria y pueden ser fácilmente cambiados a formato ASCII al
escribirlos y al leerlos.
• Acceso Secuencial: Leen y escriben los datos secuencialmente, es decir, uno tras
otro y no hay posibilidad de volver atrás, el acceso secuencia sólo aplica a ficheros Ascii y por lo
tanto pueden ser leídos por el bloc de notas (NotePad). Este tipo de acceso tiene tres formas de
apertura, una para sólo lectura (Input), y dos para escritura (Output y Append).
• Acceso Aleatorio: Estos ficheros están formados por registros del mismo tamaño
en bytes, por lo tanto permiten acceder a alguno de ellos sin necesidad de para por todos los
anteriores. Es muy importante resaltar que cada registro debe tener el mismo tamaño en bytes,
para que así se pueda acceder a un registro específico por su ubicación en la memoria. La única
forma de apertura es Random que sirve tanto para lectura como para escritura de datos. Este tipo
de acceso almacena la información tal como se encuentra en la memoria.
Para trabajar con ficheros deben respetarse los siguientes pasos mediante el código:
• Apertura del fichero
• Leer o escribir datos
• Cerrar el fichero
Apertura de un fichero.
Para abrir un fichero se utiliza la sentencia Open. Ella debe especificar el tipo de acceso
que se desea.
La instrucción general para abrir un fichero es la siguiente:
Donde Open da la orden de apertura, Archivo es una cadena de texto que devuelve la ruta
y el nombre del fichero o archivo que se va a abrir, tAcceso es el tipo de acceso de acuerdo a los
Programación con VB 6.0 Ing. Kelvin Atencio
tres tipos de acceso que se explicaron anteriormente (Input, Output, Append, Random o Binary),
Número es un número entero positivo (o variable que devuelve un número entero positivo) que
definirá el número del fichero. La sentencia [Len = Tamaño] aplica sólo a ficheros de Acceso
aleatorio, donde tamaño define el tamaño en bytes de cada registro.
Donde Número, hace referencia al número con el cual el fichero fue abierto y las variables
1, 2, 3, ... son los nombres de las variables que almacenarán las distintas líneas de escritura del
archivo o fichero abierto.
Option Explicit
Cuando presiona el botón de comando, puede elegir un archivo de texto (*.txt) que tenga
tres o más de líneas (si lo elige de menos líneas se mostrará un mensaje de error). La variable
Programación con VB 6.0 Ing. Kelvin Atencio
Linea1 almacenará los caracteres de la primera línea y así sucesivamente llegar hasta la tercera
línea, estas variables serán mostradas en la etiqueta 1.
Como ya la mayoría de los comandos han sido explicados en la Sección Detallada de
Programas en otros programas, este programa no aparece en dicha sección.
Función Input:
La función Input tiene la siguiente forma general:
Variable = Input(nCaracteres, #Número)
Donde Variable es una variable que almacena los caracteres indicados por nCaracteres,
por ejemplo la siguiente sentencia:
Variable = Input(10, #1)
Almacena en Variable los primeros 10 caracteres del fichero abierto mediante la asignación
número 1.
Si se desea que la variable almacene todos los caracteres de un fichero o archivo se puede
utilizar la siguiente instrucción:
Variable = Input(LOF(Número), #Número)
Ya que LOF devuelve el número total de bytes o caracteres que contiene un fichero.
PARA ESCRITURA:
Las sentencias de escritura sólo se pueden utilizar en ficheros secuenciales que fueron
abiertos mediante el tipo de acceso Output o Append.
Sentencia Print:
La sentencia Print tiene la siguiente forma:
Print #Número, [Spc(n)];[Tab(n)];Variable1; Variable2; Variable3;...
Donde Número es el valor numérico del fichero abierto donde se desea escribir, Variable1,
2, 3..., son las variables que se van a agregar al fichero o archivo abierto. Las sentencias
Programación con VB 6.0 Ing. Kelvin Atencio
opcionales son Spc(n) que indica si desea dejar un número de espacios (indicados por n) al
comenzar a escribir, o un número de tabulaciones (indicados por n) al comenzar de escribir en la
línea.
Option Explicit
Private Sub Command1_Click()
Dim Variable1 As String, Variable2 As String
Open "C:\Fichero.txt" For Output As #1
Variable1 = "Primera Cadena"
Variable2 = "Segunda Cadena"
Print #1, Spc(5); “Variables = ”Variable1;”, ”; Variable2
End Sub
Cuando ejecuta el programa y hace clic en Command1 aparentemente no pasa nada, pero
se ha creado un nuevo archivo (llamado Fichero) en la unidad C: (Disco Duro) donde se escribe,
primero dejando cinco espacios en blanco:
Variables = Primera Cadena, Segunda Cadena
Sentencia Write:
La sentencia Write tiene la siguiente forma general:
Write #Número, Variable1; Variable2; Variable3...
Una diferencia relevante que tiene esta sentencia con respecto a la sentencia Print, es que
ésta separa las variables en el fichero por comas, además encierra entre comillas las cadenas de
texto, entre numerales (#) los valores de fechas y boolean , y agrega al final de la línea un retorno
de carro + avance de línea, constantes de VB 6.0 Chr(13) y Chr(10) respectivamente.
Por lo tanto, si escribe otra sentencia Write debajo, se escribirá en la siguiente línea del
fichero.
Por ejemplo:
Escribiendo al lado de “Hoy es” la fecha actual y al lado de “La hora es” la hora actual.
Donde Archivo es una cadena de texto que debe tener la ruta y el nombre del archivo o
fichero que se va a abrir, Número es el valor numérico entero que se asigna al fichero y Bytes es el
tamaño de cada registro en bytes.
Los ficheros de acceso aleatorios pueden grabar información de tal manera que puede
crear una base de datos que puede ser almacenada en un dispositivo de memoria (disco duro,
disquete, etc) para operar con los registros posteriormente. La desventaja que hasta ahora
presenta VB 6.0 es que no posee sentencias para eliminar registros de este tipo de fichero.
Esperemos que las versiones posteriores posean dichas funciones.
PARA LECTURA:
Sentencia Get:
La sentencia Get se utiliza para leer u obtener registros almacenados en el fichero, tiene la
siguiente forma general:
Get #Número, Registro, Variable
PARA ESCRITURA:
Sentencia Put:
La sentencia Put tiene una forma similar a la sentencia Get, se generaliza como:
Put #Número, Registro, Variable
Aunque no existe un método para eliminar registros, se puede seguir un conjunto de pasos
que permiten eliminarlos, estos son:
Además agregue un módulo estándar (El módulo estándar se agregar mediante la barra de Menú
en Proyecto – Agregar Módulo) y en él agregue el siguiente código:
Ejecute el formulario, haga clic sobre el botón cmdNuevo y establezca un nombre para el
archivo nuevo, agregue valores de coordenadas y estos se irán grabando en el disco duro en un
archivo cuyo nombre usted estableció.
Para cerrar el fichero presione el botón con el nombre cmdCerrar, si intenta abrir un archivo
o crear un archivo nuevo y está abierto otro fichero el programa generará un error.
Puede borrar puntos de coordenadas mediante el botón cmdEliminar, en este caso (a
diferencia del programa #7 que borraba sólo el dato de la lista) el programa nuevo borra el punto
de la lista y del cuadro de imagen.
Si desea tener una explicación detallada sobre la codificación de este pasado programa
puede dirigirse a Sección Detallada de Programas al final de este trabajo de investigación.
Donde Archivo es una cadena de texto que indica el nombre y la ruta del fichero y Número
es el número que se asigna al fichero.
Por ejemplo:
En este caso se abre un fichero, se lee el décimo byte y se le asigna a la variable ByteDiez,
luego se cambia la variable a r y se escribe en esa misma posición la variable.
Cierre de Fichero:
Tanto los ficheros de acceso secuencial, los de acceso aleatorio y binarios se cierran de la
misma manera, se utiliza la siguiente sintaxis:
Close #Número
Donde Número es el número de fichero que se desea cerrar, si se omite se cierran todos
los ficheros, también se puede utilizar el método Reset para cerrar todos los ficheros.
Para imprimir texto mediante el objeto Printer se utiliza el método Print de la siguiente
manera:
Printer.Print Texto
Donde texto contiene la cadena de caracteres que se desea imprimir, se puede llamar al
contenido de una caja de texto (TextBox) si se coloca su nombre, de la siguiente manera:
Printer.Print Text1.Text
Donde Ruta es una cadena de texto que contiene la ruta y el nombre de la imagen que se
desea imprimir, DistanciaX es la distancia en puntos que existe entre el margen izquierdo del papel
y la ubicación donde se desea imprimir la imagen y DistanciaY la distancia entre el margen superior
y la ubicación donde se desea imprimir la imagen.
Además de poder imprimir texto e imágenes, el objeto printer soporta los métodos gráficos
explicados en el control PictureBox (Circle, Line, CurrentX, CurrentY), puede imprimir, círculos,
arcos, elipses, cuadrados, rectángulos, etc. Pero en este caso hay que resaltar que la impresora
generalmente tiene más resolución que el monitor y por lo tanto al utilizar un método gráfico con el
Programación con VB 6.0 Ing. Kelvin Atencio
objeto Printer debe tomar en cuenta que los puntos por pulgadas de la impresora son mucho mayor
a los puntos por pulgada del monitor. Al momento de imprimir se observan éstos más pequeños.
En el programa anterior se utiliza el método EndDoc del objeto Printer para enviar el
documento a la impresora, este método da fin a la inclusión de elementos y da comienzo a la
impresión.
Existen otros métodos muy útiles, uno de ellos es NewPage, que continúa el trabajo de
impresión en una nueva página y el método KillDoc que cancela el trabajo de impresión.
Existe una enumeración en VB 6.0 llamada PrinterObjectConstants que puede verse desde
el examinador de objetos, ella contiene las distintas constantes que pueden establecerse a las
propiedades en un trabajo de impresión. Definen el tipo de papel a usar, orientación del mismo,
color y calidad de la impresión y otras propiedades.
Programación con VB 6.0 Ing. Kelvin Atencio
17. EL PORTAPAPELES:
El portapapeles de Windows puede llamarse mediante la palabra Clipboard. Permite unas
de las acciones mas comunes usadas bajo ambiente Windows: copiar, cortar y pegar.
Este objeto no posee propiedades ni eventos, sólo contiene seis métodos que sirven para
colocar, obtener, verificar el formato o borrar el contenido de él. Existen dos métodos que sirven
para trabajar con texto: SetText y GetText; que coloca información o obtiene cadenas de texto del
portapapeles respectivamente. Otros dos métodos que funcionan de la misma manera pero para
gráficos, son: SetData y GetData. El método GetFormat devuelve un valor booleano que indica si
un elemento del portapapeles se ajusta a un formato determinado y el método Clear se utiliza para
eliminar o vaciar la información del portapapeles, tanto para texto como para gráficos.
El portapapeles puede contener dos elementos siempre y cuando no tengan el mismo
formato, es decir, si pega una imagen al portapapeles y luego un texto, permanecen los dos
elementos contenidos en el mismo. Pero si coloca un texto, y posteriormente otro texto se elimina
el primero para colocar el segundo.
Método GetText:
Este método se utiliza para devolver el contenido grabado en el portapapeles, lo que
corresponde a la acción de Windows Pegar, se utiliza la siguiente sintaxis:
Clipboard.GetText([Formato])
Método SetData:
Este método se utiliza para colocar una imagen o gráfico en el portapapeles, también
corresponde a la acción de copiar, pero en este caso como ya fue mencionado es para imágenes y
gráficos, tiene la siguiente forma:
Clipboard.SetData FuenteImagen[, Formato]
Programación con VB 6.0 Ing. Kelvin Atencio
Donde Ruta define la ruta y el nombre de la imagen que desea pegar en el portapapeles,
los formatos aceptados para imágenes son las siguientes:
Método GetData:
Se utiliza para pegar imágenes llamadas desde el portapapeles, tiene la siguiente forma:
Clipboard.GetData ([Formato])
Como en todos los casos formato es opcional, puede tomar cualquiera de los valores o
constantes descritos en el punto anterior, de colocarse debe ir entre paréntesis y si se omite, el
portapapeles alige el formato apropiado con el que fue grabado.
Método GetFormat:
Este método se utiliza para verificar el formato del texto o imagen contenida en el
portapapeles. Sólo puede ser verdadero (True) o falso (False), que corresponde al si o no el
contenido del portapapeles cumple con un formato específico tanto para texto como para
imágenes, tiene la siguiente forma:
VariableBool=Clipboard.GetFormat(Formato)
En este caso el formato si es requerido colocarlo, puede tomar cualquiera de los formatos
especificados en SetText y SetData, la VariableBool almacena Verdadero o Falso dependiendo de
la correspondencia del contenido del portapapeles con el formato.
Es muy importante resaltar que algunas imágenes cumplen en algunas ocasiones con más
de un formato de imagen. Es decir, una sola imagen puede cumplir con el formato vbCFBitmap y a
la vez el formato vbCFDIB.
Método Clear:
Borra el contenido del portapapeles, si el portapapeles contiene texto e imágenes se borran
ambos. Es muy utilizado muy a menudo antes de colocar algún contenido al portapapeles, sin
embargo, como se puede colocar simultáneamente texto e imágenes puede omitirse para agregar
alguno de ellos sin borrar el contenido anterior. Pero, si sólo se está trabajando con un formato
(sólo texto o sólo imagen) es recomendable vaciar el contenido del portapapeles antes de colocar
un nuevo elemento.
Este método tiene la siguiente forma:
Clipboard.Clear
Option Explicit
End If
If Clipboard.GetFormat(vbCFBitmap) Then
Formato = Formato + 2
End If
Select Case Formato
Case 0: Mensaje = "El Portapapeles está vacío"
Case 1: Mensaje = "El Portapapeles contiene sólo texto"
Case 2: Mensaje = "El Portapapeles contiene sólo una imagen"
Case 3: Mensaje = "El Portapapeles contiene una imagen y un texto"
End Select
Label2.Caption = Mensaje
End Sub
Ejecute la aplicación e interactúe con la misma, puede copiar texto (Caption de Label1) o
imagen (imagen de Picture1), y colocarlo en otros controles. Puede verificar el contenido del
portapapeles o borrar para comenzar de nuevo.
Nota: Si no se hace la referencia no se podrá declarar una variable como Database. Se generará el
siguiente Error de compilación. No se ha definido el tipo definido por el usuario.
El objeto DAO trabaja con colecciones, estas son a su vez objetos de acceso a datos.
Luego de haber declarado la Base de datos, se debe declarar una sesión de trabajo
mediante la utilización del Objeto Workspace. El objeto Workspace define una sesión de trabajo
para algún usuario. En algunos casos necesitará crear más de una sesión de trabajo, pero
normalmente sólo necesitará una sola sesión, para ello Visual Basic genera el primer elemento de
la colección WorkSpaces, esta es Workspaces(0).
Entonces primero declarar y luego, asignarlo. En el siguiente ejemplo se usa el Workspace
creado por defecto en VB -Workspaces(0)-.
Dim UnaSesion As Workspace
Set UnaSesion = Workspaces(0)
Donde argumentos varía según el método que se vaya a utilizar y los Objetos DAO Inferior
y Superior mantendrán sus posiciones cualquiera que sea el caso de la creación del objeto DAO.
Para crear la base de datos se utiliza el método CreateDatabase, en este caso el objeto
DAO superior es el Workspaces UnaSesion y el objeto inferior MiBase, los argumentos son: (Ruta,
Idioma, Opciones) Ruta es una cadena de texto que define el archivo de base de datos que se
creará (de no tener extensión se agregará .mdb), Idioma es una constante de VB que define el
idioma (por supuesto), se recomienda para los idiomas español, inglés o francés, la constante
dbLangGeneral (la constante dbLangSpanish no ofrece ninguna ventaja frente a dbLangGeneral) y
opciones se refiere a la versión de Access en la que se creará y puede incluir también si desea
crear una base de datos codificada, si se omite se creará una base de datos no codificada. Por lo
tanto para crear una nueva base de datos se coloca:
Dim Archivo As String
Archivo="C:\CarpetaDatos\MiBase.mdb"
Programación con VB 6.0 Ing. Kelvin Atencio
Después de creada una base de datos, se procede a crear las tablas, sus campos, y si se
desea también se pueden crear consultas, índices (claves) y relaciones entre tablas.
Para crear una tabla se usa el método CreateTableDef, pero antes de crearla se debe
declarar la variable correspondiente, por ejemplo:
Dim Tabla1 As TableDef
Si se declara de la forma anterior sólo se podrá crear una tabla, por lo tanto se deben
declarar tantas variables de objeto TableDefs como tablas se requieran para la base de datos. De
forma que se puede agregar a la sentencias anterior:
Dim Tabla1 As TableDef, Tabla2 As TableDef, Table3...
Cuando se está creando una tabla no se está agregando a la base de datos, solo se está
creando en forma apartada permaneciendo en la memoria RAM del ordenador, por ello luego debe
agregarse al documento de datos mediante el método Append, este se verá mas adelante.
Ahora si, se puede crear la o las tablas.
Set Tabla1 = MiBase.CreateTableDef("NombreTabla1")
Set Tabla2 = MiBase.CreateTableDef("NombreTabla2")
Set Tabla3 = MiBase.CreateTableDef("NombreTabla3")
...
Se puede observar que se ha usado la fórmula general:
Set ObjDAOInf = ObjDAOSup.Método (Argumentos)
En este caso ObjDAOInf es el objeto TableDef (Tabla#) y el superior es el nombre del
objeto DataBase (MiBase).
Para el caso del ejemplo puede cambiar los nombres de las tablas al que desea que
aparezcan cuando ejecute Access.
Siguiendo la secuencia, ahora le toca el paso a la creación de los campos, se usa el
método CreateField. Tal y como se procedió con los objetos anteriores, estos también deben
declararse, de la siguiente manera:
Dim Campo_1_1 As Field, Campo_1_2 As Field, Campo_2_1 As Field,...
En este ejemplo, se utiliza Campo_1_1 para referirse al campo de la primera tabla, primer
campo, es decir, el primer número se utilizó para identificar la tabla y el segundo para identificar el
número del campo. Ahora se puede crear el campo:
Si utilizamos la ecuación general:
Set ObjDAOInf = ObjDAOSup.Método (Argumentos)
Sería ahora:
Set Campo_1_1=Tabla1.CreateField("Nombre", Tipo, Caracteres)
Donde Nombre es una cadena de texto que definirá el nombre del campo, por ejemplo:
ID_Cliente, NombreCliente, Dirección, etc. Tipo define el tipo de dato que aceptará el campo: la
siguiente tabla enumera algunas de las opciones:
Constante Tipo Descripción
dbBoolean Boolean Verdadero o Falso
dbByte Byte 0 a 255
dbCurrency Currency Dinero o cálculos de signo decimal fijo
dbDate Date/Time Datos de fechas y hora
dbDouble Double Números de precisión doble
dbInteger Integer Números enteros medianos
dbLong Long Números enteros Largos
dbMemo Memo Texto extendido
dbNumeric Numeric Numérico
dbSingle Single Números de precisión simple
dbText Text Cadenas de texto
dbTime Time Hora
Se desea conocer otros tipos de datos puede dirigirse a la ayuda de VB.
En el caso de Caracteres, sólo aplica cuando el tipo de dato es texto, y se refiere al
número máximo de caracteres que puede tener la cadena de texto.
Programación con VB 6.0 Ing. Kelvin Atencio
Una vez creadas todas las tablas y campos de la base de datos se procede a agregarlas,
esto es posible al método Append, se utiliza de la siguente manera:
Primero los campos:
Tabla1.Fields.Append Campo_1_1
Tabla1.Fields.Append Campo_1_2
Tabla2.Fields.Append Campo_2_1
Aquí es muy útil la sentencia With cuando existe un número considerado de campos para
resumir el código:
With Tabla1
.Fields.Append Campo_1_1
.Fields.Append Campo_1_2
.Fields.Append Campo_1_3
.Fields.Append Campo_1_4
End With
Para finalizar es recomendable no dejar la base de datos abierta, esta se cierra mediante
el método Close:
MiBase.Close
Option Explicit
End With
With Tabla2
.Fields.Append Campo_2_1
.Fields.Append Campo_2_2
End With
With MiBase
.TableDefs.Append Tabla1
.TableDefs.Append Tabla2
End With
MiBase.Close
End Sub
Para crear un índice se utiliza el método CreateIndex, y como todos los objetos debe
declararse antes de ser asignado:
Dim Indice As Index
Set Indice = Tabla1.CreateIndex("PrimerIndice")
Una vez creado el índice, éste pasa a crear al campo que se quiere sea índice, fíjese bien
que aunque la sentencia dice crear campo, el campo ya estuvo que estar creado, sólo se utiliza
esta sentencia para asignar el índice al campo deseado:
En este caso el nombre del campo y su tipo de dato debe coincidir con el campo creado.
De hecho si es tipo texto (dbText) debe coincidir también el número de caracteres declarados
cuando se creó el campo. Esto en caso que se quiera que sólo un campo tenga índice, si desea
que otro campo de la misma tabla también sea índice entonces se colocan las dos sentencias:
Una vez que se hayan asignado el o los índices, se debe(n) agregar a la colección Fields,
de la siguiente manera:
Indice.Fields.Append Campo_1_1
Indice.Fields.Append Campo_1_2
Las dos líneas son necesarias si desea que dos campos sean índices, si sólo se desea que
un campo sea el indice sólo es necesario escribir la primera línea.
Después de agregar el o los índices a la colección Fields, se deben agregar a la colección
Indexes del Objeto Tabledef, de la siguiente manera:
Tabla1.Indexes.Append UnIndice
Para relacionar un campo con otros, ese campo debe ser clave primaria. A la tabla que
contiene a este campo se le llama Tabla Principal. A la tabla que contiene el campo (o los campos)
relacionados se le llama Tabla Relacionada.
Después de declararse, si observa un poco los pasos de los objetos, le toca el paso a la
creación de la relación, esto se hace de la siguiente manera:
En este caso NombreRelación pasa a ser el nombre de la relación, aunque este sea poco
utilizado. La relación se ha creado pero falta un detalle importante, que campos se van a
relacionar. Supongamos que se va a relacionar el primer campo de la primera tabla (Campo_1_1
de la Tabla1) y el primer campo de la segunda tabla (Campo_2_1 de la Tabla2), claro está, esto no
es posible porque estos campos no son del mismo tipo ni tienen el mismo nombre, pero como se
dijo anteriormente, esto es sólo una suposición.
Para ello se procede de la siguiente manera:
Relacion.Table = "Tabla1"
Relacion. ForeignTable = "Tabla2"
Podemos utilizar la propiedad Attributes para cambiar los atributos de la relación, por
ejemplo se puede establecer la constante dbRelationUpdateCascade, para que, cuando se realice
algún cambio en el campo de la tabla principal, se refleje en el campo o los campos relacionados
con él.
Establecemos cual es el nombre del campo de la tabla principal que vamos a relacionar,
mediante el método CreateField (aunque el campo ya ha sido creado), también debemos declarar
el nombre del objeto Field que vamos a crear para la relación:
OtroCampo.ForeignName = "Campo_2_1"
Relación.Fields.Append OtroCampo
Y ahora añadimos el objeto Relation recién creado a la colección Relations del objeto
Database
MiBase.Relations.Append Relacion
Sección:
Explicación Detallada de Programas
Cuando hace clic en el botón Saludar, el programa llama al código de Private Sub
Command1_Click(). Por ello, verifica si la propiedad Caption del botón Command1 es
“Saludar”, si es así, entonces el programa ejecuta las sentencias después de Then y antes de
Else. Por lo tanto, la propiedad Text del control Text1 mostrará: “¡Hola!, ¿Cómo estas?”, luego
cambia la propiedad Caption de Command1 a “Borrar”. Ahora el botón no mostrará la palabra
Saludar, sino Borrar.
Al volver a hacer clic (ahora en Borrar), el programa vuelve a llamar a la sentencia
Private Sub Command1_Click(). Verifica la condición Command1.Caption=”Saludar”,
pero en este caso es falsa ya que es “Borrar”, entonces se ejecutan las sentencias que están
después de Else y antes de End If. Así, la propiedad Text del control Text1 generará una
cadena vacía (“”) y la propiedad Caption del botón Command1 volverá a ser “Saludar”.
Luego viene la siguiente sección, que se llama cada vez que cambie el contenido del
cuadro de texto txtBase, comprueba si la longitud en bytes de los cuadros de texto txtBase y
txtAltura tienen uno o más elementos, de ser así, activa el botón Calcular. Es importante resaltar
que el contenido de txtAltura_Change es igual al contenido de txtBase_Change, ya que estos
verifican si los dos cuadros de textos tienen uno o más elementos.
Luego se llama al evento KeyPress, que se genera cada vez que se presione y libera una
tecla del teclado. En este caso, reconoce si se presiona la tecla Enter (vbKeyReturn o 13), de ser
presionada esta tecla ocasiona que el cuadro de texto txtAltura tome el enfoque.
El último evento en la codificación es KeyPress del Cuadro de texto txtAltura, este provoca
(si se presiona la tecla Enter) que el botón de comando Calcular tome el enfoque.
en la etiqueta una cadena que incluye “Ha decidido estudiar” luego la variable strCarrera que
describe la carrera, a continuación escribe “ en la “ y después la variable strInstitucion. No se hizo
referencia el evento de los botones de opción dentro del control Frame de la institución ya que
ocurre un procedimiento semejante al del control Frame que contiene las carreras. El botón de
comando finaliza el programa mediante la descarga del formulario.
asigna el valor negativo de Value a la propiedad left de la etiqueta, hace que la etiqueta se
desplace hacia la izquierda mostrando el contenido de ella.
muy importante resaltar que a pesar de tener el mismo nombre de una variable de otro
procedimiento, es otra variable, ya que está declarada en otro procedimiento.
igual para el caso de divisible entre 3 y 4, una vez terminada esta secuencia se cambia el valor de
la función Divisible a Verdadero (hay que notar que en caso de que fuera falso el procedimiento ya
anteriormente ha saltado este paso), luego se colocó la sentencia Exit Function para que el
programa finalice la secuencia, el subprocedimiento NoEsDivisible cambia el valor de la función a
Falso.
Programa #24. Menú Emergente:
El primer procedimiento llamada es el evento Picture1_MouseUp que ocurre cuando libera
algún botón del mouse sobre el control Picture1 (Cuadro de imagen). En este la instrucción If
button=2 Then, ocurre cuando persona el botón secundario del mouse, si es así se desplega el
menú emergente mediante la instrucción: PopupMenu mnuDibujar, Popupmenu realiza el
llamado y al lado está el nombre del menú que se quiere desplegar.
Las demás instrucciones ya han sido vistas en la explicación del control cuadro de imagen.
ActiveForm, busca el formulario activo, como todos los formularios abiertos son instancias
de Form1, todos tienen el control Picture1, por ello en él se dibuja una elipse, es decir, en el control
Picture1 del formulario activo.
Con respecto al tercer botón de comando, también utiliza la sentencia ActiveForm, pero en
este caso para borrar el contenido de su cuadro de imagen.
error) posteriormente se procede a abrir el fichero tipo aleatorio, se leen los datos (Get #1,
Registro, Punto), se enlista y se grafica en el monitor el punto.
El evento clic del botón cerrar, cierra el fichero, borra el contenido de la lista y del cuadro
de imagen, este boton se debe presionar si se desea abrir un fichero nuevo, si abre un fichero
cuando existe otro abierto se produce un error.
Para el caso del cmdIngresar las cuatro primeras líneas se han explicado, luego se asigna
a registro un número mayor en uno del número de registros que existen (Registro = LOF(1)/4+1), el
número de registros que existen viene dado por LOF(1)/4, que es el tamaño del fichero entre el
tamaño de cada registro. Se escribe en el fichero los datos del punto, luego borra el contenido de
los cuadros de texto y hace que tome el enfoque el primer cuadro de texto (txtX).
El comando Eliminar crea una variable nueva que guarda el número del registro que se va
a eliminar (RegEliminar=lstPuntos.ListIndex + 1) ya que las listas comienzan a enumerar
desde cero, abre el archivo provisional que grabará los registros que no serán borrados. Luego se
utiliza el bucle For para pasar los registros desde el fichero original hasta el fichero provisional, es
muy importante notar que para para los registros que se encuentran antes el traslado es directo:
Get #1, Registro, Punto
Put #2, Registro, Punto)
Pero a partir del registro que será borrado se utilizan las siguientes instrucciones
Get #1, Registro + 1, Punto
Put #2, Registro, Punto)
Esto se hace con la intención que grabe el registro superior en uno al registro menor en
uno del fichero provisional, es decir que si se va a eliminar el tercer registro, pase el cuarto del
fichero original al tercero del provisional, así se desplaza el registro eliminado.
La sentencia Close #1 cierra el fichero original, luego Kill(Archivo) borra del disco duro éste
fichero.
Los demás comandos que se encuentran en este procedimiento, ya se han visto.
Programación con VB 6.0 Ing. Kelvin Atencio
Indice:
Contenido: Página
VISUAL BASIC 2
1. EL ENTORNO DE DESARROLLO DE VB 6.0 2
3. EL EXAMINADOR DE OBJETOS 9
4. LOS CONTROLES: 10
5. VARIABLES, TIPOS DE DATOS Y CONSTANTES: 34
6. MATRICES: 40
7. OPERADORES LÓGICOS, OPERADORES 42
MATEMÁTICOS Y FUNCIONES MATEMÁTICAS:
8. PROCEDIMIENTOS Y FUNCIONES: 44
9. SENTENCIAS DE CONTROL 47
10. CUADROS DE DIÁLOGO 53
11. LOS MENÚS 56
12. COLORES EN VISUAL BASIC 60
13. EL OBJETO COLLECTION 62
14. PROGRAMAS DE MÚLTIPLES DOCUMENTOS 64
(FORMULARIOS MDI)
15. TRABAJO CON FICHEROS 67
16. IMPRIMIR TEXTO E IMÁGENES 75
17. EL PORTAPAPELES 77
18. BASE DE DATOS 81
19. SECCION DETALLADA DE PROGRAMAS 86