Está en la página 1de 22

Ejercicio Nº 1: Validar un texto.

El control caja de Texto tiene ahora en esta v


6 un nuevo procedimiento que nos permite
controlar la información que se ingresa, y un
validada recién pasar al campo de texto sigu

Prueben tratar de pasar a la caja de texto siguiente sin ingresar ningún dato con la tecla Tab y verán que no
permite.

El código 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, "Instruccione

Cancel = True

End If

End Sub
El ejercicio puede bajarse de Aquí.

Ejercicio Nº 2: Crear controles.


Ahora Visual Basic nos permite, crear contro
tiempo de ejecución sin necesidad de hacer
dentro de un array, a partir del primero cread
tiempo de diseño.

El código 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 botón y luego con el Click del botón cambiamos su propieda
Caption.
El ejercicio completo lo podemos bajar de Aquí.

Ejercicio Nº 3: ImageCombo.
Este nuevo control pertenece al grupo de
componentes: Microsoft Windows Common
Controls 6.0. Y nos permite desplegar imáge
además 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

Private Sub Form_Activate()


ImageCombo1.ImageList = ImageList1

End Sub
El ejercicio puede bajarse de Aquí.

Ejercicio Nº 4: Coolbar.

Este control pertenece al grupo Microsoft W


Common Controls 3 6.0, y permite desplega
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 d
Coolbar pueden mantenerse flotantes o fijos.

El código 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 través del Método AddItem en tiempo de ejecución.
El ejercicio puede bajarse de Aquí.

Ejercicio Nº 5: Barra de progreso.

Este ejercicio nos muestra el uso de una ba


progreso que podemos usar mientras se rea
carga de un archivo o en otro momento de e
hasta que se complete una tarea.
El código 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 todavía 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

End Sub

Aquí usamos with para referirnos al control y no tener que repetir su nombre. Esto es muy útil cuando debe
modificar los valores de varias propiedades por código de un mismo control.

El ejercicio completo puede bajarse de AQUÍ.

Ejercicio Nº 6: Barra de estado.

Un ejemplo de como modificar en tiempo de


ejecución la Barra de estado. En el formular
tenemos una caja de texto donde ingresamo
texto a desplegar y luego en el click de un b
asignamos al panel de la barra correspondie
El código 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 clic
el boton derecho sobre el control y alli podemos configurar los distintos paneles.

El ejercicio puede bajarse de AQUÍ.

Ejercicio Nº 7: Pestañas.

Es común usar el control TabStrip para mos


aplicaciones con pestañas, sin embargo es
más potente el control Tabbed Dialog ya que
panel puede contener otros controles, esto
el diseño y su codificación.

En el formulario dibujamos un control SStab traido de componentes y luego en su primer pestaña dibujamo
varias labels que nos vincularan con las otras pestañas, donde se mostrará en una texto y en la otrs una im
El código 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

End Sub

Private Sub Label6_Click()

Picture1.Picture = Picture3

SSTab1.Tab = 2

End Sub

Como vemos lo importante es la propiedad Tab y la asignación del indice del panel de l control que queremo
mencionar.

El código completo lo pueden bajar de AQUÍ.

Ejercicio Nº 8: ListView.

Este control nos permite desplegar una lista


archivos al estilo el Explorador de Windows
este caso los agregamos a traves del ingres
datos de cajas de texto. Y despliegan un ico
azar seleccionado de un control ImageList, q
hemos usado en otros ejercicios. El formula
permite a traves del uso de botones de opci
seleccionar que modalidad queremos que te
los iconos.

El código es el siguiente:

Option Explicit

Function NroAzar(Min As Integer, Max As Integer) As Integer

NroAzar = Int((Max - Min + 1) * Rnd + Min)

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 d
botones con la opcion de Agregar y de Borrar, los ingresos. Y Botones de Opcion para seleccionar la propie
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 Ima
ilColumnas. o sea que tenemos dos controles ImageList.

El codigo completo puede bajarse de AQUÍ.

Ejercicio Nº 9: TreeView.
Este ejercicio muestra un tipico arbol de arc
de windows con su raíz principal y sus deriv
Acompañado de Iconos tomados también de
control ImageList. El método Add, agrega un
al arbol de Archivos.

El código 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", "N
6 Arbol.Nodes.Add "Nieto 1", tvwPrevious, "Nieto 0", "Nieto 0", 7

End Sub

El ejercicio completo puede bajarse de Aquí.

Ejercicio Nº 10: Control Chart.


El control Miscrosoft Chart nos permite des
gráficos asociados a determinados datos qu
podemos cargar de otros archivos como pu
una planilla de Excel o una Base de datos, o
determinarlos por código.

El control lo traemos de Componentes. Y al dibujarlo en el formulario vamos a ver que contiene de manera
predeterminada un gráfico con datos apócrifos para mostarnos su diseño.

Como organiza los datos: El control MSChart requiere que todos los datos se organicen en filas y columnas
Además requiere saber cuántos puntos de datos habrá en cada fila y columna que debe graficar. Por lo gene
cuenta con una columna de datos con múltiples filas (algo parecido a un alista de números). Por ejemplo: si
desean graficar las ventas de una empresa durante los últimos doce meses, contará con una sola columna(
y doce filas(una por cada mes). Si desea comparar los dos últimos años, tendrá dos columnas (una por cad
doce filas(una por cada mes). Para poder organizar los datos usamos las propieddaes ColumnCount y RowC
En el ejemplo mencionado:

ColumnCount= 1

RowCount= 12

ChartType= 1 (vtChChartType2dBar)

Para agregar datos en tiempo de diseño: capturamos 12 cifras en tiempo de diseño para poder apreciar el g
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 automática.

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

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 gráfico."

'Le agrego un Título.

MSChart1.TitleText = "Gráfico MSChart"

'Puedo cambiar el tipo de letra del titulo y del Pie de grafico

With MSChart1.Title.VtFont

.Name = "Arial"

.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º 11: Gráficos con Chart.

En este ejercicio vamos a abrir una tabla y a


de una consulta SQL vamos a graficar los da
la misma. La tabla que usamos se llama
books6.mdb y esta incluida en el codigo de
ejercicios del Control Chart.

En este ejercicio vamos a usar un menu que consta de Archivo: Grabar, Imprimir y Salir.Un menu Edicion qu
al portapapeles y Un menu de Gráficos que despliega distintos tipos de graficos , uno de ellos a traves de la
de datos y otros por código.
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 gráfico ha sido guardado en " & strArchivoGuardar, vbInformation, "Guardar Gráfico"

End Sub

Private Sub mnuArchivoImprimir_Click()

MSChart1.EditCopy

Printer.PaintPicture Clipboard.GetData, 0, 0

Printer.NewPage

Printer.EndDoc

MsgBox "El gráfico ha sido enviado para su impresión.", vbInformation, "Imprimir gráfico"

End Sub

Private Sub mnuArchivoSalir_Click()

Unload Me

End Sub

Private Sub mnuEdicionCopiar_Click()


MSChart1.EditCopy

MsgBox "El gráfico se copiado a la memoria.", vbInformation, "Copia de gráfico"

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 d
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"

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

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

For intFila = 1 To 12

.Column = intCol .Row = intFila

.Data = intCol * intFila

Next

Next .ShowLegend = True

End With

End Sub

Ejercicio Nº 12: Control Chart y Excel.


Vamos a usar datos de una planilla de Excel
generar un gráfico al cargarse el formulario
contiene al control MiSChart. El código es e
siguiente:

Option Explicit

' Coloque este código en la sección Declaraciones.

' Si utiliza Office 97, asegúrese 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 después la variable con el método

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 valores son cadenas, se convie

' las etiquetas de las filas.

matrizDatos(i, 1) = wkbObj.Worksheets(1) _ .Range("A" & i + 1).Value

' Después 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 códigos de los tres últimos ejercicios que usan el Control Chart pueden bajarse deAQUÍ.
Ejercicio Nº 13: Formulario de Datos.

Visual Basic cuenta con una cantidad importante de Asistentes. Entre ellos el asistente para la creación de u
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 ha


doble click, o marcamos en la casilla de sele
para qu se cargue. Luego hacemos Aceptar
Complementos veremos la opcion de del as
incluida. La seleccionamos y se abrirá una
ventanacon la introducción al Asistente.

Pasamos a Siguiente, ya que aquí no podemos cargar la configuración de ningún perfil, porque no tenemos
ninguna configuración o plantilla grabada.

En esta pantalla seleccionamos qué tipo de


de datos vamos a usar, si una de Access o d
servidor remoto. En este caso elegimos Acc
pasamos a la pantalla siguiente.
En esta pantalla si hacemos Click en el botó
Examinar podemos elegir la base de datos q
vamos a usar.

Aquí aparece una lista de opciones, que nos


permite elegir qué tipo de formulario vamos
y como vamaos a mostrar los datos. Registr
individual: nos mostrará registro por registr
Cuadrícula: lo hará en una grilla. Maestro/De
relaciona dos tablas.

FlexGrid mostrará: las tablas con sus resúmenes y totales de los datos existentes en la tabla y Chart lo hará
manera gráfica. Nosotros vamos a elegir a manera de grilla o Cuadrícula.
En esta pantalla seleccionamos la tabla de l
de datos. Y de ella los campos que queremo
mostrar. Los seleccionamos y con los boton
flecha los vamos pasando a la lista de la der
Si queremos ordenar los datos por un camp
determinado lo elegimos del combo despleg

Aqui hacemos Click en seleccionar todos lo


botones o elegimos solo algunso. estos nos
permiten navegar la grilla. La pantalla Siguie
nos pregunta si queremos guardar esta
configuración como una plantilla para futuro
formularios. Luego hacemos Finalizar.

Al cerrase la ventana del Asistente veremos


nuestro proyecto estándar un nuevo formula
no usamos el primero o Form1 lo podemos
eliminar.

Posicionados en la ventana proyecto con el botón derecho tenemos la opción de eleminarlo. Y grabamos la
aplicación con el formulario que creó el asistente. Sino lo usamos como formulario de presentación. Como
en la ventana código el asistente, ya codificó los botones de navegación y de cierre de la Aplicación.

El ejercicio completo podemos bajarlo de Aquí.


Ejercicio Nº 14: DHTML: Operaciones
Vamos a dibujar un control image, un botón
caja de texto, modificamos sus propiedades
través de la ventana propiedades, y luego
codificamos en la ventana código, la sintáxi
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