ejercicios vb

24
Ejercicio Nº 1: Validar un texto. El control caja de Texto tiene ahora esta versión 6 un nuevo procedimient que nos permite controlar la informa que se ingresa, y una vez validada recién pasar al campo de texto siguiente. Prueben tratar de pasar a la caja de texto siguiente sin ingresar ningún dato con la t Tab y verán que no lo 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.", vbInformati "Instrucciones" Cancel = True End If End Sub El ejercicio puede bajarse de Aquí. Ejercicio Nº 2: Crear controles.

Upload: elunae

Post on 11-Jun-2015

2.372 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Ejercicios VB

 Ejercicio Nº 1: Validar un texto. 

El control caja de Texto tiene ahora en esta versión 6 un nuevo procedimiento que nos permite controlar la información que se ingresa, y una vez validada recién pasar al campo de texto siguiente.

Prueben tratar de pasar a la caja de texto siguiente sin ingresar ningún dato con la tecla Tab y verán que no lo 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, "Instrucciones"

Cancel = True

End If

End Sub

El ejercicio puede bajarse de Aquí.

 

 Ejercicio Nº 2: Crear controles. 

Page 2: Ejercicios VB

Ahora Visual Basic nos permite, crear controles en tiempo de ejecución sin necesidad de hacerlo dentro de un array, a partir del primero creado en 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 propiedad Caption.El ejercicio completo lo podemos bajar de Aquí.

 

 Ejercicio Nº 3: ImageCombo. 

Page 3: Ejercicios VB

Este nuevo control pertenece al grupo de componentes: Microsoft Windows Common Controls 6.0. Y nos permite desplegar imágenes 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()

Page 4: Ejercicios VB

ImageCombo1.ImageList = ImageList1

End SubEl ejercicio puede bajarse de Aquí.

 

 Ejercicio Nº 4: 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 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 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 código es el siguiente:

Page 5: Ejercicios VB

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 debemos 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 formulario tenemos una caja de texto donde ingresamos el texto a desplegar y luego en el click de un botón lo asignamos al panel de la barra correspondiente.

El código correspondiente es:

Page 6: Ejercicios VB

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º 7: Pestañas. 

Es común usar el control TabStrip para mostrar aplicaciones con pestañas, sin embargo es mucho más potente el control Tabbed Dialog ya que cada panel puede contener otros controles, esto facilita el diseño y su codificación.

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

Page 7: Ejercicios VB

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 queremos mencionar.

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

 

 Ejercicio Nº 8: 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 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()

Page 8: Ejercicios VB

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

 

 Ejercicio Nº 9: TreeView. 

Page 9: Ejercicios VB

Este ejercicio muestra un tipico arbol de archivos de windows con su raíz principal y sus derivados. Acompañado de Iconos tomados también de un control ImageList. El método Add, agrega un Nodo 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", "Nieto 2", 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.

Page 10: Ejercicios VB

 

El control Miscrosoft Chart nos permite desplegar gráficos 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 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 general se cuenta con una columna de datos con múltiples filas (algo parecido a un alista de números). Por ejemplo: si se desean graficar las ventas de una empresa durante los últimos doce meses, contará con una sola columna(un año) y doce filas(una por cada mes). Si desea comparar los dos últimos años, tendrá dos columnas (una por cada año) 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 diseño: capturamos 12 cifras en tiempo de diseño para poder apreciar el gráfico. 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

Page 11: Ejercicios VB

'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

Page 12: Ejercicios VB

.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 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 Gráficos que despliega distintos tipos de graficos , uno de ellos a traves de la base 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

Page 13: Ejercicios VB

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()

Page 14: Ejercicios VB

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

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

Page 15: Ejercicios VB

.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

Page 16: Ejercicios VB

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. 

Page 17: Ejercicios VB

Vamos a usar datos de una planilla de Excel, para generar un gráfico al cargarse el formulario que contiene al control MiSChart. El código es el 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 convierten

' 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Í.

 

Page 18: Ejercicios VB

 Ejercicio Nº 13: Formulario de Datos. Visual Basic cuenta con una cantidad importante de Asistentes. Entre ellos el asistente para la creación 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 selección, 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 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 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.

 

Page 19: Ejercicios VB

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

 

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. Cuadrícula: lo hará en una grilla. Maestro/Detalle: relaciona dos tablas.

FlexGrid mostrará: las tablas con sus resúmenes y totales de los datos existentes en la tabla y Chart lo hará de manera gráfica. Nosotros vamos a elegir a manera de grilla o Cuadrícula.

 

Page 20: Ejercicios VB

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.

 

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 configuración como una plantilla para futuros formularios. Luego hacemos Finalizar.

 

Al cerrase la ventana del Asistente veremos en nuestro proyecto estándar un nuevo formulario, si 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 vemos 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í.

 

Page 21: Ejercicios VB

 Ejercicio Nº 14: DHTML: Operaciones 

 

Vamos a dibujar un control image, un botón y una caja de texto, modificamos sus propiedades a través de la ventana propiedades, y luego codificamos en la ventana código, la sintáxis es la siguiente:

Dim numero1 As IntegerDim numero2 As Integer

Private Sub BaseWindow_onload()TextField1.SelectEnd Sub

Private Function Button1_onclick() As Booleannumero1 = TextField1.Valuenumero2 = TextField2.ValueTextField3.Value = Val(numero1 + numero2)

End Function

Private Function Button2_onclick() As Booleannumero1 = TextField1.Valuenumero2 = TextField2.ValueTextField3.Value = Val(numero1 - numero2)End Function

Private Function Button3_onclick() As Booleannumero1 = TextField1.Valuenumero2 = TextField2.ValueTextField3.Value = Val(numero1 * numero2)End Function

Private Function Button4_onclick() As Booleannumero1 = TextField1.Valuenumero2 = TextField2.Value

Page 22: Ejercicios VB

TextField3.Value = Val(numero1 / numero2)End Function

Private Function Button5_onclick() As BooleanTextField1.Value = ""TextField2.Value = ""TextField3.Value = ""End Function