Sei sulla pagina 1di 37

Estructura de Visual Basic

Modo de Diseo y Modo de Ejecucin

La aplicacin Visual Basic de Microsoft puede trabajar de dos modos distintos: en modo de diseo y en
modo de ejecucin. En modo de diseo el usuario construye interactivamente la aplicacin, colocando
controles en el formulario, definiendo sus propiedades, y desarrollando funciones para gestionar los
eventos. La aplicacin se prueba en modo de ejecucin. En ese caso el usuario acta sobre el programa
(introduce eventos) y prueba cmo responde el programa. Hay algunas propiedades de los controles
que deben establecerse en modo de diseo, pero muchas otras pueden cambiarse en tiempo de
ejecucin desde el programa escrito en Visual Basic 6.0, en la forma en que ms adelante se ver.
Tambin hay propiedades que slo pueden establecerse en modo de ejecucin y que no son visibles en
modo de diseo.
Todos estos conceptos controles, propiedades, eventos, etc.- se explican en los apartados siguientes.

Formularios y controles

Cada uno de los elementos grficos que pueden formar parte de una aplicacin tpica de Windows
95/98/NT es un tipo de control: los botones, las cajas de dilogo y de texto, las cajas de
seleccin desplegables, los botones de opcin y de seleccin, las barras de desplazamiento horizontales
y verticales, los grficos, los mens, y muchos otros tipos de elementos son controles para Visual Basic
6.0. Cada control debe tener un nombre a travs del cual se puede hacer referencia a l en el programa.
Visual Basic 6.0 proporciona nombres por defecto que el usuario puede modificar. En el Apartado 1.2.4
se exponen algunas reglas para dar nombres a los distintos controles. En la terminologa de Visual Basic
6.0 se llama formulario (form) a una ventana. Un formulario puede ser considerado como una especie
de contenedor para los controles. Una aplicacin puede tener varios formularios, pero un nico
formulario puede ser suficiente para las aplicaciones ms sencillas. Los formularios deben tambin tener
un nombre, que puede crearse siguiendo las mismas reglas que para los controles.

Objetos y propiedades

Cada formulario y cada tipo de control tienen un conjunto de propiedades que definen su aspecto
grfico (tamao, color, posicin en la ventana, tipo y tamao de letra, etc.) y su forma de responder a
las acciones del usuario (si est activo o no, por ejemplo). Cada propiedad tiene un nombre que viene ya
definido por el lenguaje. Por lo general, las propiedades de un objeto son datos que tienen valores
lgicos (True, False) o numricos concretos, propios de ese objeto y distintos de las de otros objetos de
su clase. As pues, cada clase, tipo de objeto o control tiene su conjunto de propiedades, y cada objeto o
control concreto tiene unos valores determinados para las propiedades de su clase.
Se puede acceder a una propiedad de un objeto por medio del nombre del objeto a que pertenece,
seguido de un punto y el nombre de la propiedad, como por ejemplo optColor.objName. En el siguiente
apartado se estudiarn las reglas para dar nombres a los objetos.

Prof. Ana Sotelo Ochoa

Prof. Ana Sotelo Ochoa

Eventos

Ya se ha dicho que las acciones del usuario sobre el programa se llaman eventos. Son eventos tpicos el
clicar sobre un botn, el hacer doble clic sobre el nombre de un fichero para abrirlo, el arrastrar un
icono, el pulsar una tecla o combinacin de teclas, el elegir una opcin de un men, el escribir en una
caja de texto, o simplemente mover el ratn. Ms adelante se vern los distintos tipos de eventos
reconocidos por Windows 95/98/NT y por Visual Basic 6.0. Cada vez que se produce un evento sobre un
determinado tipo de control, Visual Basic 6.0 arranca una determinada funcin o procedimiento que
realiza la accin programada por el usuario para ese evento concreto. Estos procedimientos se llaman
con un nombre que se forma a partir del nombre del objeto y el nombre del evento, separados por el
carcter (_), como por ejemplo txtBox_click, que es el nombre del procedimiento que se ocupar de
responder al evento click en el objeto txtBox.

Mtodos

Los mtodos son funciones que tambin son llamadas desde programa, pero a diferencia de los
procedimientos no son programadas por el usuario, sino que vienen ya pre-programadas con
el lenguaje. Los mtodos realizan tareas tpicas, previsibles y comunes para todas las aplicaciones.
De ah que vengan con el lenguaje y que se libere al usuario de la tarea de programarlos. Cada tipo
de objeto o de control tiene sus propios mtodos. Por ejemplo, los controles grficos tienen un mtodo
llamado Line que se encarga de dibujar lneas rectas. De la misma forma existe un mtodo
llamado Circle que dibuja circunferencias y arcos de circunferencia Es obvio que el dibujar lneas rectas
o circunferencias es una tarea comn para todos los programadores y que Visual Basic 6.0 da ya
resuelta.
Propiedades de posicin y dimensin
En Visual Basic no todos los objetos que se agregan en un formulario se ven en la interfaz al ejecutar la
aplicacin, por lo que podemos decir que hay objetos visibles y objetos invisibles en tiempo de
ejecucin; todos los objetos visibles que sean agregados tendrn una posicin dentro del formulario, as
como un tamao.
A las propiedades que determinan la posicin de un objeto se les llaman propiedades de posicin, las
cuales determinan el punto a partir del cual el objeto se comenzar a trazar, a dibujar; dicho punto es
llamado punto de inicio, y siempre es la esquina superior izquierda del objeto. El tamao del objeto est
determinado por las propiedades de dimensin, mismas que especifican la distancia entre el punto de
inicio y la esquina inferior derecha del objeto.
El tamao de un objeto en Visual Basic est determinado en TWIPS. Un twip es la vigsima parte de un
punto, y si consideramos que un punto es 1/72 de pulgada, un twip sera 1/1440 de pulgada. No se
quiebre la cabeza tratando de encontrar un significado para "twip"; la unidad de medida pudo haberse
llamado "xwin" o "flox", o como fuera.
Las propiedades de posicin son:
Top

Muestra la posicin con respecto al margen superior de la pantalla o del objeto


contenedor.

Left

Muestra la posicin con respecto al margen izquierdo de la pantalla o del objeto


contenedor.

Las propiedades de dimensin son:


Height

Altura del objeto.

Width

Ancho del objeto.

La figura muestra grficamente cmo se interpretan las propiedades de posicin y las propiedades de
dimensin. Vea como las dimensiones de Height y Width comienzan a partir del punto de inicio.

Prof. Ana Sotelo Ochoa

Las formas para cambiar la posicin de los objetos son:


Arrastrando el objeto
Utilizando las combinaciones de teclas Ctrl + <Flechas de direccin>
Las formas para cambiar el tamao de los objetos son;
Arrastrando los controladores de tamao
Utilizando las combinaciones de teclas Shift + <Flechas de direccin>

Mi primer cdigo
En un formulario creamos los controles como lo indica la siguiente imagen:

Prof. Ana Sotelo Ochoa

A continuacin escribimos el siguiente cdigo:


Option Explicit
Private Sub Form_Load()
txtCaja.Top = 0
End Sub
Private Sub optArriba_Click()
txtCaja.Top = 0
End Sub
Private Sub optAbajo_Click()
txtCaja.Top = frmColores0.ScaleHeight - txtCaja.Height
End Sub
Private Sub optAzul_Click()
txtCaja.BackColor = vbBlue
End Sub
Private Sub optRojo_Click()
txtCaja.BackColor = vbRed
End Sub
Private Sub optVerde_Click()
txtCaja.BackColor = vbGreen
End Sub
Private Sub optAmarillo_Click()
txtCaja.BackColor = vbYellow
End Sub
Ejercicios msgbox e inputbox de Visual Basic 6.0
MSGBOX
Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un botn y
devuelve un entero que indica el botn utilizado.

Prof. Ana Sotelo Ochoa

Dim Mensaje, Botones, Titulo, Respuesta


Mensaje = "Desea Continuar?"
Botones = vbYesNo + vbQuestion + vbDefaultButton2
Titulo = "Eliminar Fichero"
Respuesta = MsgBox(Mensaje, Botones, Titulo)
If Respuesta = vbYes Then 'El usuario Eligio el botn si
'Ejecutar una accin
Else 'El usuario el botn No
'Ejecutar otra accin
End If
Ejercicio 1
1.- Crear un formulario con un botn de comando como se muestra en la figura
2.- Incluir en el command1 el siguiente codigo en el evento click
msgbox "Actualizacin terminada", vbokonly, "Informacin"
3.- Ejecutar la aplicacin

Ejercicio 2
Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente
cdigo
msgbox "Quieres seguir?", vbYesNo, "Informacin importante"

Prof. Ana Sotelo Ochoa

Ejercicio 3
Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente
cdigo
Dim intRespuesta As Integer
intRespuesta = MsgBox("Quieres seguir?", vbQuestion + vbYesNo, Informacin
importante")
If intRespuesta = 6 Then
MsgBox"Seguimos"
Else
MsgBox"Terminamos"
End If

Ejercicio 4
Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente
cdigo
msgbox "Actualizacin terminada:" & vbCrLf & vbCrLf & _
"- Importacin de datos de venta." & vbCrLf & "- Clculos de impuestos." & _
vbCrLf & "- Venta por proveedor." & vbCrLf , vbOKOnly, "Actualizacin terminada."

Ejercicio 5
Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente
cdigo
msgbox "Actualizacin terminada:" & vbCrLf & vbCrLf & _
"- Importacin de datos de venta." & vbCrLf & _
"- Clculos de impuestos." & vbCrLf & _
"- Venta por proveedor." & vbCrLf _
, vbExclamation + vbOKOnly, _
"Actualizacin terminada."

INPUTBOX
Esta funcin muestra un cuadro de dilogo modal (ste es un trmino tcnico para definir un
formulario que ha de cerrarse antes de poder continuar con el desarrollo normal del programa),
que contiene un Ttulo y un Mensaje (definibles), un cuadro de texto y dos botones
"ACEPTAR" y "CANCELAR".

Ejercicio 1
Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente
cdigo
Dim Val As String
Val = InputBox ("Cual es tu nombre", "Ejemplo 1.- INPUTBOX")
MsgBox "Su nombre es: " & Val

Prof. Ana Sotelo Ochoa

Ejercicio 2
Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente
cdigo
Dim Val As String
Val = InputBox("Digita tu nmero de cuenta", "Ejemplo 2.- INPUTBOX","ABC-123")

Ejercicio 3
Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente
cdigo
Dim A As Double 'Nmeros con muchos decimales
A = InputBox("Ingresa el precio del cual quieres obtener el IVA")
A = A * 0.15 'Obtenemos el IVA
MsgBox "El iva es: " & A

Ejercicio 3 MINICALCULADORA
En este ejemplo se muestra una calculadora elemental que permite hacer las cuatro
operaciones
aritmeticas. Los archivos de este proyecto se pueden llamar minicalc.vbp y minicalc.frm

Y a continuacion se muestra el codigo correspondiente a los procedimientos


Option Explicit
Private Sub cmdDiv_Click()
txtResult.Text = val(txtOper1.Text) / val(txtOper2.text)
lblOp.Caption = /

Prof. Ana Sotelo Ochoa

End Sub
Private Sub cmdProd_Click()
txtResult.Text = val(txtOper1.Text) * val(txtOper2.text)
lblOp.Caption = *
End Sub
Private Sub cmdDiv_Click()
txtResult.Text = val(txtOper1.Text) / val(txtOper2.text)
lblOp.Caption = /
End Sub
Private Sub cmdResta_Click()
txtResult.Text = val(txtOper1.Text) - val(txtOper2.text)
lblOp.Caption = -
End Sub
Private Sub cmdSuma_Click()
txtResult.Text = val(txtOper1.Text) + val(txtOper2.text)
lblOp.Caption = +
End Sub

Responde a lo siguiente:

Prof. Ana Sotelo Ochoa

Crea un formulario con ocho etiquetas, nueve cajas de texto, tres botones ye escribe el
siguiente cdigo:
El botn Salir
Private Sub Command3_Click()
Unload Me
End
End Sub
El botn Limpiar
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Text4 = ""
Text5 = ""
Text6 = ""
Text7 = ""
Text8 = ""
Text9 = ""

Prof. Ana Sotelo Ochoa

Text1.SetFocus
End Sub
El botn Prom. Gral. Redondeado
Private Sub Command1_Click()
Dim n1 As Double, n2 As Double, n3 As Double, n4 As Double, n5 As Double,
n6 As Double
Dim promedio As Integer
n1 = Val(Text2): n2 = Val(Text3)
n3 = Val(Text4): n4 = Val(Text5)
n5 = Val(Text6): n6 = Val(Text7)
promedio = ((n1 + n2 + n3 + n4 + n5 + n6) / 6)
Text8 = Str(promedio)
If promedio >= 9.5 Then
Text9 = "Excelente"
End If
If promedio >= 9 And promedio < 9.5 Then
Text9 = "Muy Bien"
End If
If promedio >= 8.5 And promedio < 9 Then
Text9 = "Bien"
End If
If promedio >= 8 And promedio < 8.5 Then
Text9 = "Regular"
End If
If promedio < 8 Then

Prof. Ana Sotelo Ochoa

Text9 = "Mal"
End If
End Sub

Ejercicio N 1: Nuevos Controles.


Estos dos
controles: el
MonthView y el
DTPicker son
controles
especiales que
trae la versin 6
y que podemos
traer de
Componentes,
seleccionando
Microsoft
Windows
Common
Controls - 2 6.0,
y como vemos
nos despliegan
hora y fecha y
un calendario

Prof. Ana Sotelo Ochoa

que podemos
recorrer.
El ejercicio puede bajarse de Aqu.

Ejercicio N 2: Validar un texto.


El control caja
de Texto tiene
ahora en esta
versin 6 un
nuevo
procedimiento
que nos permite
controlar la
informacin que
se ingresa, y una
vez validada
recin pasar al
campo de texto
siguiente.
Prueben tratar de pasar a la caja de texto siguiente sin ingresar ningn dato con
la tecla Tab y vern que no lo permite.
El cdigo es:
Private Sub Text1_Validate(Cancel As Boolean)
If Text1.Text <> "MIRTA" Then
MsgBox "Debes tipear MIRTA en el primer texto para pasar al segundo.",
vbInformation, "Instrucciones"
Cancel = True
End If
End Sub
Private Sub Text2_Validate(Cancel As Boolean)
If Text2.Text <> "CONSUDEC" Then
MsgBox "Debes tipear CONSUDEC en el segundo texto para pasar al tercero.",
vbInformation, "Instrucciones"
Cancel = True
End If
End Sub
El ejercicio puede bajarse de Aqu.

Ejercicio N 3: Crear controles.


Prof. Ana Sotelo Ochoa

Ahora Visual
Basic nos
permite, crear
controles en
tiempo de
ejecucin sin
necesidad de
hacerlo dentro
de un array, a
partir del
primero creado
en tiempo de
diseo.
El cdigo es:
Private WithEvents cmdmiboton As CommandButton
Private Sub cmdmiboton_Click()
cmdmiboton.Caption = "Me hiciste Clic!"
End Sub
Private Sub Label2_Click()
Set cmdmiboton = Controls.Add("VB.commandbutton", "Button")
With cmdmiboton
.Visible = True
.Width = 3000
.Caption = "Qu Sorpresa!!"
.Top = 3000
.Left = 1000
End With
Label2.Enabled = False
End Sub
Primero hacemos Click en la Label que crea el botn y luego con el Click del
botn cambiamos su propiedad Caption.
El ejercicio completo lo podemos bajar de Aqu.

Ejercicio N 4: ImageCombo.

Prof. Ana Sotelo Ochoa

Este nuevo
control
pertenece al
grupo de
componentes:
Microsoft
Windows
Common
Controls 6.0. Y
nos permite
desplegar
imgenes
adems de texto
en un Combo
desplegable.

Private Sub Command1_Click()


Static i% 'un contador de numeros enteros
Static imgi% 'un indice para las imagenes del control ImageList
Dim comboimage As ComboItem 'variable de tipo objeto para 'declarar un
comboItem
'Agrega una referencia al objeto comboItem usando el metodo 'Add
Set comboimage = ImageCombo1.ComboItems.Add
'agrega un texto
ImageCombo1.ComboItems.Add , , "Soy el item N " & CStr(i%)
ImageCombo1.Text = "Soy el Item N " & CStr(i%) 'agrega un 'grafico
comboimage.Image = imgi% + 1 'controlar que no se exceda de 'la cantidad de
images del ImageList
If imgi% = ImageList1.ListImages.Count - 1 Then
imgi% = 0
Else imgi% = imgi% + 1
End If
'incrementa la variable
contadora i% = i% + 1
End Sub

Prof. Ana Sotelo Ochoa

Private Sub Form_Activate()


ImageCombo1.ImageList = ImageList1
End Sub
El ejercicio puede bajarse de Aqu.

Ejercicio N 5: Coolbar.
Este control
pertenece al
grupo Microsoft
Windows
Common
Controls 3 6.0, y
permite
desplegar una
barra que
contenga otros
controles.
En este caso al hacer Click en el icono del Reloj despliega la hora. Estos
controles que se insertan dentro de la Coolbar pueden mantenerse flotantes o
fijos.
El cdigo es:
Private Sub Command1_Click()
Label1.Caption = Time
End Sub
Private Sub Form_Activate()
List1.AddItem "Chocolates"
List1.AddItem "Caramelos"
List1.AddItem "Chupetines"
List1.AddItem "Galletitas"
End Sub
En el caso de la Lista le agregamos distintos Items a travs del Mtodo AddItem
en tiempo de ejecucin.
El ejercicio puede bajarse de Aqu.

Ejercicio N 6: Barra de progreso.

Prof. Ana Sotelo Ochoa

Este ejercicio
nos muestra el
uso de una barra
de progreso que
podemos usar
mientras se
realiza la carga
de un archivo o
en otro
momento de
espera hasta
que se complete
una tarea.
El cdigo es el siguiente:
Option Explicit
Private Sub cmdSalir_Click()
End
End Sub
Private Sub Form_Load() 'Inicializamos el timer para que este apagado
Timer1.Enabled = False
End Sub
Private Sub cmdComenzar_Click() 'Inicializamos la barra de progreso, y
comenzamos el Timer
Progreso.Value = 0
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer() 'Si el progreso todava no termina, seguir
aumentando Value hasta 100
With Progreso
If .Value < .Max Then
.Value = .Value + 1
Else 'Termino
MsgBox "Proceso Terminado", , "Barra de Progreso" 'Deshabilitamos el Timer
Timer1.Enabled = False
End If
End With

Prof. Ana Sotelo Ochoa

End Sub
Aqu usamos with para referirnos al control y no tener que repetir su nombre.
Esto es muy til cuando debemos modificar los valores de varias propiedades
por cdigo de un mismo control.
El ejercicio completo puede bajarse de AQU.

Ejercicio N 7: Barra de estado.


Un ejemplo de
como modificar
en tiempo de
ejecucin la
Barra de estado.
En el formulario
tenemos una
caja de texto
donde
ingresamos el
texto a
desplegar y
luego en el click
de un botn lo
asignamos al
panel de la barra
correspondiente.
El cdigo correspondiente es:
Private Sub cmdAceptar_Click()
StatusBar1.Panels("Texto").Text = txtPanel
End Sub
Como vemos es muy sencillo, para asignarle un valor al panel correspondiente
debemos identificarlo con el nombre del mismo, determinado en la ventana
propiedades, para tener acceso al mismo debemos hacer click con el boton
derecho sobre el control y alli podemos configurar los distintos paneles.
El ejercicio puede bajarse de AQU.

Ejercicio N 8: Pestaas.

Prof. Ana Sotelo Ochoa

Es comn usar
el control
TabStrip para
mostrar
aplicaciones con
pestaas, sin
embargo es
mucho ms
potente el
control Tabbed
Dialog ya que
cada panel
puede contener
otros controles,
esto facilita el
diseo y su
codificacin.
En el formulario dibujamos un control SStab traido de componentes y luego en
su primer pestaa dibujamos varias labels que nos vincularan con las otras
pestaas, donde se mostrar en una texto y en la otrs una imagen. El cdigo es
el siguiente:
Option Explicit
Private Sub Form_Load()
SSTab1.Tab = 0 'esto hace que se muestre el primer panel
End Sub
Private Sub
Label1_Click()
Text1.Text = "Aqui podemos cargar un texto con formato richtextbox, sobre el
Tema 1."
SSTab1.Tab = 1
End Sub
Private Sub Label4_Click()
Picture1.Picture = Picture2
SSTab1.Tab = 2
End Sub
Private Sub Label5_Click()
Text1.Text = "Aqui podemos cargar un texto con formato richtextbox, sobre el
Tema 2."
SSTab1.Tab = 1

Prof. Ana Sotelo Ochoa

End Sub
Private Sub Label6_Click()
Picture1.Picture = Picture3
SSTab1.Tab = 2
End Sub
Como vemos lo importante es la propiedad Tab y la asignacin del indice del
panel de l control que queremos mencionar.
El cdigo completo lo pueden bajar de AQU.

Ejercicio N 9: ListView.
Este control nos
permite
desplegar una
lista de archivos
al estilo el
Explorador de
Windows. En
este caso los
agregamos a
traves del
ingreso de datos
de cajas de
texto. Y
despliegan un
icono al azar
seleccionado de
un control
ImageList, que
hemos usado en
otros ejercicios.
El formulario,
permite a traves
del uso de
botones de
opcion
seleccionar que
modalidad
queremos que
tengan los
iconos.
El cdigo es el siguiente:
Option Explicit
Function NroAzar(Min As Integer, Max As Integer) As Integer
NroAzar = Int((Max - Min + 1) * Rnd + Min)

Prof. Ana Sotelo Ochoa

End Function
Private Sub cmdAgregar_Click()
Dim Nuevo As ListItem
Dim IndiceIcono As Integer
'Elegir un icono al azar para el elemento
IndiceIcono = NroAzar(1, ilIconos.ListImages.Count)
'Agregar el nuevo elemento, y asignarle el icono elegido
Set Nuevo = lvwPersonas.ListItems.Add(, , txtNombre, IndiceIcono, IndiceIcono)
Nuevo.SubItems(1) = txtEdad
Nuevo.SubItems(2) = txtSexo
Nuevo.SubItems(3) = txtTelefono
End Sub
Private Sub cmdEliminar_Click()
lvwPersonas.ListItems.Remove lvwPersonas.SelectedItem.Index
End Sub
Private Sub cmdSalir_Click()
End
End Sub
Private Sub optVista_Click(Index As Integer)
'Cambiamos el tipo de vista en View
lvwPersonas.View = Index
End Sub
Elegimos un Icono al azar de un ImageList el texto lo ingresamos a traves de las
Cajas de Texto. Tenemos dos botones con la opcion de Agregar y de Borrar, los
ingresos. Y Botones de Opcion para seleccionar la propiedad View de la Lista
acorde al Indice del option Button. los iconos que se muestran en los
encabezados fueron asignados al ingresar el Nombre de las columnas y
asociando la propiedad Icon Index a los Iconos de la ImageList ilColumnas. o
sea que tenemos dos controles ImageList.
El codigo completo puede bajarse de AQU.

Prof. Ana Sotelo Ochoa

Ejercicio N 10: TreeView.

Este ejercicio
muestra un
tipico arbol de
archivos de
windows con su
raz principal y
sus derivados.
Acompaado de
Iconos tomados
tambin de un
control
ImageList. El
mtodo Add,
agrega un Nodo
al arbol de
Archivos.
El cdigo es:
Option Explicit
Private Sub Arbol_Click()
lblActual = Arbol.SelectedItem.Text
End Sub
Private Sub cmdSalir_Click()
End
End Sub
Private Sub Form_Load()
Dim i As Integer
Arbol.Nodes.Add , , "Raiz", "Nodo raiz", 1
For i = 1 To 3
Arbol.Nodes.Add "Raiz", tvwChild, "Hijo " & i, "Hijo " & i, (i + 1)
Next i
Arbol.Nodes.Add "Hijo 1", tvwChild, "Nieto 1", "Nieto 1", 5 Arbol.Nodes.Add
"Nieto 1", tvwNext, "Nieto 2", "Nieto 2", 6 Arbol.Nodes.Add "Nieto 1",
tvwPrevious, "Nieto 0", "Nieto 0", 7
End Sub

Prof. Ana Sotelo Ochoa

El ejercicio completo puede bajarse de Aqu.

Ejercicio N 11: Control Chart.


El control
Miscrosoft Chart
nos permite
desplegar
grficos
asociados a
determinados
datos que
podemos cargar
de otros
archivos como
puede ser una
planilla de Excel
o una Base de
datos, o
determinarlos
por cdigo.
El control lo traemos de Componentes. Y al dibujarlo en el formulario vamos a
ver que contiene de manera predeterminada un grfico con datos apcrifos para
mostarnos su diseo.
Como organiza los datos: El control MSChart requiere que todos los datos se
organicen en filas y columnas. Adems requiere saber cuntos puntos de datos
habr en cada fila y columna que debe graficar. Por lo general se cuenta con
una columna de datos con mltiples filas (algo parecido a un alista de nmeros).
Por ejemplo: si se desean graficar las ventas de una empresa durante los
ltimos doce meses, contar con una sola columna(un ao) y doce filas(una por
cada mes). Si desea comparar los dos ltimos aos, tendr dos columnas (una
por cada ao) y doce filas(una por cada mes). Para poder organizar los datos
usamos las propieddaes ColumnCount y RowCount. En el ejemplo mencionado:
ColumnCount= 1
RowCount= 12
ChartType= 1 (vtChChartType2dBar)
Para agregar datos en tiempo de diseo: capturamos 12 cifras en tiempo de
diseo para poder apreciar el grfico. establecemos la propiedad
AutoIncremente a True y en la propiedad Data asignamos el valor 1, 2 o 3 para
incrementar. Hagan la prueba, de esa manera carga datos de manera
automtica.
Vamos a hacer un primer ejercicio viendo las propiedades y siguiendo un poco
el ejemplo anterior:
Option Explicit
Dim data(1 To 5, 1 To 3) As String

Prof. Ana Sotelo Ochoa

Dim i As Integer
Dim m As Integer
Private Sub Form_Load()
Randomize
'Establece la cantidad de filas
MSChart1.RowCount = 3
'asigna la cantidad de columnas de color
MSChart1.ColumnCount = 3
'Puedo asignar un valor determinado a la columna de color de una fila en este
caso la verde.
MSChart1.Row = 3
MSChart1.Column = 2
MSChart1.data = 34
'Le cambia el texto a la Primer fila o row
MSChart1.Row = 1
MSChart1.RowLabel = "Primera Fila"
'Le cambio el texto a la etiqueta del color azul, teniendo la propiedad
ShowLegend a True
MSChart1.ShowLegend = True
MSChart1.Column = 3
MSChart1.ColumnLabel = "Azul"
'Le agrego un texto al pie del grafico
MSChart1.FootnoteText = "Este es el pie del grfico."
'Le agrego un Ttulo.
MSChart1.TitleText = "Grfico MSChart"
'Puedo cambiar el tipo de letra del titulo y del Pie de grafico
With MSChart1.Title.VtFont
.Name = "Arial"

Prof. Ana Sotelo Ochoa

.Style = VtFontStyleBold
.Effect = VtFontEffectUnderline
.Size = 14
.VtColor.Set 0, 0, 255
End With
With MSChart1.Footnote.VtFont
.Name = "arial"
.Style = VtFontStyleBold
.Effect = VtFontEffectUnderline
.Size = 10
.VtColor.Set 125, 150, 155
End With
'Con la propiedad ChartType podemos cambiar el tipo de grafico.
'Por ejemplo: vtChChartType3dBar: es un grafico de Barras en 3D.
'Tambien podemos crear un array de 2 dimensiones (una tabla) y graficarla.
For i = 1 To 5
For m = 1 To 3
data(i, m) = Rnd * 100
Next m
Next i
MSChart1.ChartData = data
End Sub

Ejercicio N 12: Grficos con Chart.

Prof. Ana Sotelo Ochoa

En este ejercicio
vamos a abrir
una tabla y a
traves de una
consulta SQL
vamos a graficar
los datos de la
misma. La tabla
que usamos se
llama
books6.mdb y
esta incluida en
el codigo de los
ejercicios del
Control Chart.
En este ejercicio vamos a usar un menu que consta de Archivo: Grabar,
Imprimir y Salir.Un menu Edicion que copia al portapapeles y Un menu de
Grficos que despliega distintos tipos de graficos , uno de ellos a traves de la
base de datos y otros por cdigo.
Option Explicit
'debemos cargar la referencia Microsoft ActiveX data object 2.0 y el MSChart.
Private Sub Form_Load()
End Sub
Private Sub Form_Resize()
With MSChart1
.Left = 0
.Top = 0
.Width = Me.ScaleWidth
.Height = Me.ScaleHeight
End With
End Sub
Private Sub mnuArchivoGuardar_Click()
Dim strArchivoGuardar As String
strArchivoGuardar = App.Path & "\" & App.EXEName & ".bmp"
MSChart1.EditCopy
SavePicture Clipboard.GetData, strArchivoGuardar
MsgBox "El grfico ha sido guardado en " & strArchivoGuardar, vbInformation,
"Guardar Grfico"

Prof. Ana Sotelo Ochoa

End Sub
Private Sub mnuArchivoImprimir_Click()
MSChart1.EditCopy
Printer.PaintPicture Clipboard.GetData, 0, 0
Printer.NewPage
Printer.EndDoc
MsgBox "El grfico ha sido enviado para su impresin.", vbInformation,
"Imprimir grfico"
End Sub
Private Sub mnuArchivoSalir_Click()
Unload Me
End Sub
Private Sub mnuEdicionCopiar_Click()
MSChart1.EditCopy
MsgBox "El grfico se copiado a la memoria.", vbInformation, "Copia de grfico"
End Sub
Private Sub mnuGraficosBaseDatos_Click()
'abrimos una conexion a datos con el uso de un proveedor OLEDB 'cuidado con
la ruta donde esta la base de datos.
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strProveedor As String
Dim strOrigenDatos As String
Dim strSQL As String
strProveedor = "Microsoft.Jet.OLEDB.3.51"
strOrigenDatos = App.Path & "\books6.mdb"
strSQL = "SELECT Title, SUM(Sales) AS Ventas FROM BookSales GROUP BY
Title HAVING SUM(Sales) > 0"

Prof. Ana Sotelo Ochoa

cnn.Open "provider=" & strProveedor & "; Data Source=" & strOrigenDatos
rst.Open strSQL, cnn, adOpenStatic
With MSChart1
.ShowLegend = True
.chartType = VtChChartType2dBar
'esta linea carga los datos
Set .DataSource = rst
End With
End Sub
Private Sub mnuGraficosIncrAut_Click()
Dim intBucle As Integer
With MSChart1
.chartType = VtChChartType3dBar
.ColumnCount = 12 .RowCount = 12
.AutoIncrement = True
For intBucle = 1 To 144
.Data = intBucle
Next
.AllowDynamicRotation = True
.ShowLegend = True
End With
End Sub
Private Sub mnuGraficosMatriz_Click()
Dim avarDatos(0 To 3, 1 To 5) As Variant
Dim intCol As Integer
Dim intFila As Integer
'carga las leyendas y los datos

Prof. Ana Sotelo Ochoa

With MSChart1
.chartType = VtChChartType3dBar
.ColumnCount = 6
.RowCount = 12
'los bucles generan los datos de la matriz dimensionada como variant
For intCol = 1 To 5
For intFila = 1 To 3
If intCol = 1 Then
avarDatos(intFila, intCol) = "trim" & CStr(intFila + 1)
Else
avarDatos(intFila, intCol) = Int((50 - 10 + 1) * Rnd + 10)
End If
Next
Next
.ShowLegend = True
End With
'asigna los datos al control chart
MSChart1.ChartData = avarDatos
End Sub
Private Sub mnuGraficosPuntos_Click()
Dim intCol As Integer
Dim intFila As Integer
With MSChart1
.chartType = VtChChartType3dBar
.ColumnCount = 6
.RowCount = 12
For intCol = 1 To 6

Prof. Ana Sotelo Ochoa

For intFila = 1 To 12
.Column = intCol .Row = intFila
.Data = intCol * intFila
Next
Next .ShowLegend = True
End With
End Sub

Ejercicio N 13: Control Chart y Excel.


Vamos a usar
datos de una
planilla de Excel,
para generar un
grfico al
cargarse el
formulario que
contiene al
control
MiSChart. El
cdigo es el
siguiente:
Option Explicit
' Coloque este cdigo en la seccin Declaraciones.
' Si utiliza Office 97, asegrese de establecer una
' referencia a Microsoft Excel 8.0 Object Library.
' Si utiliza Office 95, establezca una referencia a
' Microsoft Excel 5.0 Object Library y declare
' la variable como Worksheet.
Dim wkbObj As Workbook ' Declara una variable de objeto.
Private Sub Form_Load()
' Establece despus la variable con el mtodo
GetObject. Set wkbObj = GetObject _ (App.Path & "\pepe.xls")
Dim matrizDatos(1 To 6, 1 To 2)
Dim i As Integer For i = 1 To 6
' Los valores de la columna A llenan la primera serie de las ' matriz. Si estos

Prof. Ana Sotelo Ochoa

valores son cadenas, se convierten


' las etiquetas de las filas.
matrizDatos(i, 1) = wkbObj.Worksheets(1) _ .Range("A" & i + 1).Value
' Despus los valores de la columna B llenan la segunda.
matrizDatos(i, 2) = wkbObj.Worksheets(1) _ .Range("B" & i + 1).Value
Next i
MSChart1.ChartData = matrizDatos
End Sub
Los cdigos de los tres ltimos ejercicios que usan el Control Chart pueden
bajarse de AQU.

Ejercicio N 14: Formulario de Datos.


Visual Basic cuenta con una cantidad importante de Asistentes. Entre ellos el
asistente para la creacin de un Formulario de datos, osea un formulario que va
a mostrar datos de una Base de datos.
Para incorporar al Asistente vamos a Complementos, Administrador de
complementos y alli se nos abre una ventana desde donde podemos
seleccionar cualquiera de los Asistentes.
Seleccionamos
VB 6 Data Form
Wizard y
hacemos doble
click, o
marcamos en la
casilla de
seleccin, para
qu se cargue.
Luego hacemos
Aceptar y al ir a
Complementos
veremos la
opcion de del
asistente
incluida. La
seleccionamos y
se abrir una
ventanacon la
introduccin al
Asistente.
Pasamos a Siguiente, ya que aqu no podemos cargar la configuracin de
ningn perfil, porque no tenemos ninguna configuracin o plantilla grabada.

Prof. Ana Sotelo Ochoa

En esta pantalla
seleccionamos
qu tipo de base
de datos vamos
a usar, si una de
Access o de un
servidor remoto.
En este caso
elegimos
Access. Y
pasamos a la
pantalla
siguiente.

En esta
pantalla si
hacemos Click
en el botn
Examinar
podemos elegir
la base de datos
que vamos a
usar.

Prof. Ana Sotelo Ochoa

Aqu aparece
una lista de
opciones, que
nos permite
elegir qu tipo
de formulario
vamos a crear y
como vamaos a
mostrar los
datos. Registro
individual: nos
mostrar
registro por
registro.
Cuadrcula: lo
har en una
grilla.
Maestro/Detalle:
relaciona dos
tablas.
FlexGrid mostrar: las tablas con sus resmenes y totales de los datos
existentes en la tabla y Chart lo har de manera grfica. Nosotros vamos a elegir
a manera de grilla o Cuadrcula.
En esta pantalla
seleccionamos
la tabla de la
base de datos. Y
de ella los
campos que
queremos
mostrar. Los
seleccionamos y
con los botones
con flecha los
vamos pasando
a la lista de la
derecha. Si
queremos
ordenar los
datos por un
campo
determinado lo
elegimos del
combo
desplegable.

Prof. Ana Sotelo Ochoa

Aqui hacemos
Click en
seleccionar
todos los
botones o
elegimos solo
algunso. estos
nos permiten
navegar la grilla.
La pantalla
Siguiente nos
pregunta si
queremos
guardar esta
configuracin
como una
plantilla para
futuros
formularios.
Luego hacemos
Finalizar.
Al cerrase la
ventana del
Asistente
veremos en
nuestro
proyecto
estndar un
nuevo
formulario, si no
usamos el
primero o Form1
lo podemos
eliminar.
Posicionados en la ventana proyecto con el botn derecho tenemos la opcin
de eleminarlo. Y grabamos la aplicacin con el formulario que cre el asistente.
Sino lo usamos como formulario de presentacin. Como vemos en la ventana
cdigo el asistente, ya codific los botones de navegacin y de cierre de la
Aplicacin.
El ejercicio completo podemos bajarlo de Aqu.

Ejercicio N 15: DHTML: Hola Mundo

Prof. Ana Sotelo Ochoa

Visual Basic en
su versin 6
cuenta con un
tipo de proyecto
que nos permite
crear un archivo
con extensin
html y por lo
tanto al
ejercutarlo, se
abre en el
navegador, para
esto crea una
.dll donde
convierte el
codigo visual
basic a htm.
Como vemos en la imagen debemos elegir en proyecto Nuevo: Aplicacin
DHTML (Dinamic Html). Tenemos aqu tambin una caja de herramientas y una
ventana diseo y otra ventana cdigo aunque con ciertas modificaciones, en el
nombre de los objetos y en sus procedimientos. Vamos a hacer el tpico ejemplo
de Hola Mundo pero en este editor de cdigo HTML. La aplicacin en tiempo de
ejecucin abre una pgina web con las siguientes caractersticas:
Vamos a dibujar
un control
image, un botn
y una caja de
texto,
modificamos
sus propiedades
a travs de la
ventana
propiedades, y
luego
codificamos en
la ventana
cdigo, la
sintxis es la
siguiente:
Private Function Button1_onclick() As Boolean
Image1.border = 4
TextField1.Value = "Hola mundo"
End Function
Los procedimientos aqu se llamarn funciones. Y la caja de texto en lugar de
Caption tiene una propiedad llamada Value. Y la funcin no es Click sino
onClick.

Ejercicio N 16: DHTML: Operaciones

Prof. Ana Sotelo Ochoa

Ahora vamos a
hacer una
calculadora
simple de
operaciones
matemticas.
Abrimos un
nuevo proyecto
DHTML y
dibujamos una
tabla con
etiquetas y cajas
de texto y cinco
botones. En
tiempo de
ejecucin se ve
como la imagen
de la izquierda.
Y la codificacin
es la siguiente:
Dim numero1 As Integer
Dim numero2 As Integer
Private Sub BaseWindow_onload()
TextField1.Select
End Sub
Private Function Button1_onclick() As Boolean
numero1 = TextField1.Value
numero2 = TextField2.Value
TextField3.Value = Val(numero1 + numero2)
End Function
Private Function Button2_onclick() As Boolean
numero1 = TextField1.Value
numero2 = TextField2.Value
TextField3.Value = Val(numero1 - numero2)
End Function
Private Function Button3_onclick() As Boolean
numero1 = TextField1.Value
numero2 = TextField2.Value
TextField3.Value = Val(numero1 * numero2)
End Function
Private Function Button4_onclick() As Boolean
numero1 = TextField1.Value
numero2 = TextField2.Value
TextField3.Value = Val(numero1 / numero2)
End Function
Private Function Button5_onclick() As Boolean
TextField1.Value = ""
TextField2.Value = ""
TextField3.Value = ""
End Function

Prof. Ana Sotelo Ochoa

Los dos ejercicios que usan el diseador de paginas web pueden bajarlos
de Aqu.

Prof. Ana Sotelo Ochoa

Potrebbero piacerti anche