SlideShare una empresa de Scribd logo
Desarrollo de software
Texto diseñado para enseñar
en profundidad a desarrollar
aplicaciones basadas en
lenguaje Visual Basic. El
texto cubre tanto aspectos
básicos como avanzados, es
decir que no sólo se estudian
los fundamentos del
lenguaje sino que también
se tratan en profundidad el
acceso a datos, la
programación orientada al
objeto, los componentes
ActiveX, el acceso al API,
etc. Se trata de un manual
de muy amplio contenido
con alrededor de 1000
páginas de documentación,
además de numerosos
ejemplos listos para ser
cargados desde Visual Basic.
Entre los requisitos previos,
conocimientos
basta con
de fundamentos de
y conocer al
programación
menos un lenguaje, sea este
el que sea y conocer el S.O.
Windows a nivel de usuario.

PROGRAMACIÓN CON
VISUAL BASIC 6
Programación con Visual Basic
Versión 1.0.0
2000 © Grupo EIDOS
www.LaLibreriaDigital.com
Índice
ÍNDICE................................................................................................................................................... 5
INTRODUCCIÓN ............................................................................................................................... 17
INTRODUCCIÓN A LA PROGRAMACIÓN EN WINDOWS CON VISUAL BASIC ........................................ 17
EL SISTEMA CONTROLA A LA APLICACIÓN......................................................................................... 18
INTERFAZ CONSISTENTE .................................................................................................................... 18
EVENTOS Y MENSAJES ....................................................................................................................... 18
LIBRERÍAS DE ENLACE DINÁMICO (DLL) .......................................................................................... 19
Centralizar el código en un único lugar........................................................................................ 19
Ahorro de recursos del sistema ..................................................................................................... 19
Independencia del lenguaje ........................................................................................................... 19
APLICACIONES SDI Y MDI ................................................................................................................ 20
OLE ................................................................................................................................................... 20
Vinculación.................................................................................................................................... 20
Incrustación ................................................................................................................................... 21
ACTIVEX............................................................................................................................................ 21
CONTROLES ACTIVEX Y MODELO COM / DCOM ............................................................................ 21
AUTOMATIZACIÓN ACTIVEX............................................................................................................. 22
PROGRAMACIÓN ORIENTADA A OBJETO EN WINDOWS...................................................................... 22
WINDOWS COMO SISTEMA OOP ........................................................................................................ 22
VISUAL BASIC................................................................................................................................... 23
DESDE SUS COMIENZOS...................................................................................................................... 23
LA SITUACIÓN ACTUAL ...................................................................................................................... 23
TIPOS DE PROYECTOS ......................................................................................................................... 24
APERTURA DE UN PROYECTO ............................................................................................................. 25
Programación con Visual Basic 6

© Grupo EIDOS

COMPONENTES BÁSICOS DE UN PROGRAMA VISUAL BASIC .............................................................. 26
Proyecto......................................................................................................................................... 26
Formularios ................................................................................................................................... 26
Controles ....................................................................................................................................... 26
Propiedades ................................................................................................................................... 27
Eventos y métodos.......................................................................................................................... 28
Funciones y procedimientos .......................................................................................................... 28
LA PRIMERA APLICACIÓN................................................................................................................... 28
DISEÑAR EL FORMULARIO ................................................................................................................. 29
GRABAR EL FORMULARIO .................................................................................................................. 32
GRABAR EL PROYECTO ...................................................................................................................... 33
EL PROCEDIMIENTO INICIAL SUB MAIN() .......................................................................................... 34
ESTABLECER EL OBJETO INICIAL DE LA APLICACIÓN......................................................................... 35
EJECUTAR EL PROYECTO.................................................................................................................... 36
CONTROLES ESTÁNDAR ..................................................................................................................... 37
Insertar un control en el formulario .............................................................................................. 37
TextBox .......................................................................................................................................... 38
Label .............................................................................................................................................. 39
CheckBox ....................................................................................................................................... 40
Frame............................................................................................................................................. 41
OptionButton.................................................................................................................................. 42
ListBox ........................................................................................................................................... 43
ComboBox...................................................................................................................................... 44
CommandButton ............................................................................................................................ 45
Manipulación de los controles mediante código ........................................................................... 45
CREACIÓN DEL EJECUTABLE DEL PROGRAMA ................................................................................... 47
DISTRIBUCIÓN DE LA APLICACIÓN ..................................................................................................... 48
AMPLIAR LA PRIMERA APLICACIÓN ................................................................................................... 53
INCLUIR UN FORMULARIO MDI ......................................................................................................... 54
CREAR UN MENÚ PARA EL FORMULARIO MDI................................................................................... 57
OPERACIONES ESTÁNDAR MEDIANTE EL CONTROL COMMONDIALOG .............................................. 60
Color.............................................................................................................................................. 61
Impresión ....................................................................................................................................... 62
Tipo de letra................................................................................................................................... 64
Apertura de ficheros ...................................................................................................................... 66
Grabación de ficheros ................................................................................................................... 69
Ayuda ............................................................................................................................................. 69
AGREGAR FUNCIONALIDAD AL FORMULARIO PRINCIPAL .................................................................. 71
ImageList ....................................................................................................................................... 71
Toolbar .......................................................................................................................................... 73
StatusBar ....................................................................................................................................... 77
CREAR UNA VENTANA SPLASH O DE PRESENTACIÓN ........................................................................ 80
Timer.............................................................................................................................................. 82
EL LENGUAJE ................................................................................................................................... 85
INTRODUCCIÓN .................................................................................................................................. 85
VISUAL BASIC PARA APLICACIONES (VBA) ...................................................................................... 85
VBA Y VISUAL BASIC 6 .................................................................................................................... 86
EMPLAZAMIENTO DEL CÓDIGO DE LA APLICACIÓN ........................................................................... 86
COMENTARIOS ................................................................................................................................... 86
MSGBOX() ......................................................................................................................................... 87
INPUTBOX() ....................................................................................................................................... 89
VARIABLES ........................................................................................................................................ 90
Declaración ................................................................................................................................... 90
6
© Grupo EIDOS

1. Introducción

Tipo............................................................................................................................................ 91
Ámbito............................................................................................................................................ 93
Denominación................................................................................................................................ 95
CONSTANTES ..................................................................................................................................... 96
EL TIPO ENUMERADO ......................................................................................................................... 98
CONVERSIÓN DE TIPOS..................................................................................................................... 100
CONTINUACIÓN DE LÍNEA DE CÓDIGO ............................................................................................. 102
INSTRUCCIONES EN UNA LÍNEA........................................................................................................ 103
EXPRESIONES ................................................................................................................................... 103
OPERADORES ................................................................................................................................... 103
Aritméticos................................................................................................................................... 104
Comparación ............................................................................................................................... 106
Concatenación ............................................................................................................................. 110
Lógicos......................................................................................................................................... 111
PRIORIDAD DE OPERADORES ............................................................................................................ 117
ARRAYS ........................................................................................................................................... 118
Declaración y asignación de valores........................................................................................... 118
Devolución de arrays desde funciones ........................................................................................ 120
Establecer los límites de los índices ............................................................................................ 120
Arrays dinámicos ......................................................................................................................... 122
Manipulación de arrays multidimensionales............................................................................... 124
Seleccionar información en un array .......................................................................................... 125
TIPOS DEFINIDOS POR EL USUARIO .................................................................................................. 126
PROCEDIMIENTOS ............................................................................................................................ 128
Sub ............................................................................................................................................... 128
Function....................................................................................................................................... 130
Sub Main(). Un procedimiento especial ...................................................................................... 131
ESTRUCTURAS DE CONTROL ............................................................................................................ 132
If...Then...Else...End If ................................................................................................................. 132
Select Case...End Select............................................................................................................... 134
For...Next ..................................................................................................................................... 136
Do...Loop ..................................................................................................................................... 137
While...Wend................................................................................................................................ 139
For Each...Next............................................................................................................................ 140
With...End With............................................................................................................................ 141
Goto ............................................................................................................................................. 142
DIRECTIVAS ..................................................................................................................................... 143
#If...Then...#Else...#End If ........................................................................................................... 143
MANEJO DE ERRORES ....................................................................................................................... 144
Err................................................................................................................................................ 145
On Error ...................................................................................................................................... 146
FUNCIONES MÁS HABITUALES ......................................................................................................... 148
Numéricas.................................................................................................................................... 148
Cadenas de caracteres................................................................................................................. 150
Fecha y hora................................................................................................................................ 163
EL ENTORNO DE DESARROLLO (IDE)..................................................................................... 169
EL NUEVO ASPECTO DE NUESTRA MESA DE TRABAJO ...................................................................... 169
MENÚ ARCHIVO ............................................................................................................................... 170
MENÚ EDICIÓN ................................................................................................................................ 172
MENÚ VER ....................................................................................................................................... 175
MENÚ PROYECTO ............................................................................................................................ 183
MENÚ FORMATO .............................................................................................................................. 185
MENÚ DEPURACIÓN......................................................................................................................... 188
7
Programación con Visual Basic 6

© Grupo EIDOS

MENÚ EJECUTAR ............................................................................................................................. 189
MENÚ CONSULTA ............................................................................................................................ 190
MENÚ DIAGRAMA ............................................................................................................................ 193
MENÚ HERRAMIENTAS .................................................................................................................... 194
MENÚ COMPLEMENTOS ................................................................................................................... 195
MENÚ VENTANA .............................................................................................................................. 196
MENÚ AYUDA .................................................................................................................................. 197
VENTANA DE PROYECTO ................................................................................................................. 197
EDITOR DE FORMULARIOS ............................................................................................................... 198
Insertar controles......................................................................................................................... 199
Modificar controles ..................................................................................................................... 200
Mover controles ........................................................................................................................... 200
Seleccionar controles................................................................................................................... 200
Cortar, Copiar y Pegar controles................................................................................................ 201
Arrays de controles...................................................................................................................... 201
Manipulación global de controles ............................................................................................... 201
Formularios MDI......................................................................................................................... 203
EDITOR DE CÓDIGO .......................................................................................................................... 203
Lista de objetos............................................................................................................................ 204
Lista de procedimientos............................................................................................................... 204
Barra de división ......................................................................................................................... 206
Visualizar el código ..................................................................................................................... 206
Marcadores y barra de margen................................................................................................... 206
Configuración del Editor de Código ........................................................................................... 207
Configuración de formato del Editor de Código ......................................................................... 210
VENTANAS COMPLEMENTARIAS ...................................................................................................... 210
Ventana de Propiedades .............................................................................................................. 211
Cuadro de herramientas .............................................................................................................. 211
Examinador de objetos ................................................................................................................ 215
Ventana de Posición del formulario ............................................................................................ 217
Paleta de colores ......................................................................................................................... 217
Anclaje de ventanas ..................................................................................................................... 218
Personalizar las barras de herramientas .................................................................................... 219
DISEÑO DE MENÚS ........................................................................................................................ 223
DESCRIPCIÓN DE UN MENÚ .............................................................................................................. 223
CARACTERÍSTICAS DE UN MENÚ ...................................................................................................... 223
PROPIEDADES DE UN CONTROL MENÚ ............................................................................................. 224
EL EDITOR DE MENÚS ...................................................................................................................... 224
AÑADIR CÓDIGO A UNA OPCIÓN DE MENÚ ....................................................................................... 226
CREACIÓN DE UN MENÚ ................................................................................................................... 226
MENÚS EN FORMULARIOS MDI ....................................................................................................... 231
EL REGISTRO WINDOWS ............................................................................................................ 235
DE LOS FICHEROS INI AL REGISTRO ................................................................................................ 235
EL REGISTRO POR DENTRO ............................................................................................................... 235
MANIPULACIÓN DE LAS ENTRADAS DEL REGISTRO ......................................................................... 236
TRATAMIENTO DE DATOS CON ACTIVEX DATA OBJECTS (ADO) ................................ 241
INTRODUCCIÓN A LA PROGRAMACIÓN CON BASES DE DATOS ......................................................... 241
DISEÑO DE LA BASE DE DATOS ........................................................................................................ 242
Establecer el modelo de la aplicación......................................................................................... 242
Analizar que información necesita la aplicación ........................................................................ 242
Establecer la información en tablas ............................................................................................ 242
8
© Grupo EIDOS

1. Introducción

Normalización de la base de datos .............................................................................................. 243
Relacionar las tablas ................................................................................................................... 244
Establecer la integridad referencial ............................................................................................ 245
Definir índices para las tablas..................................................................................................... 246
Definir validaciones en la inserción de datos ............................................................................. 246
ACCESO A INFORMACIÓN BAJO CUALQUIER FORMATO ................................................................... 246
ACCESO UNIVERSAL A DATOS (UDA) ............................................................................................ 247
OLE DB........................................................................................................................................... 247
ACTIVEX DATA OBJECTS (ADO) .................................................................................................... 249
Connection................................................................................................................................... 250
Propiedades.............................................................................................................................. 250
Métodos ................................................................................................................................... 253
Command..................................................................................................................................... 258
Propiedades.............................................................................................................................. 258
Métodos ................................................................................................................................... 260
Parameter .................................................................................................................................... 260
Propiedades.............................................................................................................................. 260
Métodos ................................................................................................................................... 264
Recordset ..................................................................................................................................... 264
Propiedades.............................................................................................................................. 264
Métodos ................................................................................................................................... 269
Field............................................................................................................................................. 276
Propiedades.............................................................................................................................. 276
Métodos ................................................................................................................................... 277
Property ....................................................................................................................................... 277
Propiedades.............................................................................................................................. 278
Error ............................................................................................................................................ 278
Propiedades.............................................................................................................................. 278
EL ADO DATA CONTROL ................................................................................................................ 279
VALIDACIONES A NIVEL DE MOTOR ................................................................................................. 288
EL CONTROL DATAGRID .................................................................................................................. 289
REFLEXIONES SOBRE LOS CONTROLES ENLAZADOS A DATOS ......................................................... 292
CONTROLES ENLAZADOS Y CÓDIGO, UN PUNTO INTERMEDIO ......................................................... 293
La aplicación de ejemplo............................................................................................................. 293
El formulario de datos ................................................................................................................. 293
El control DataCombo................................................................................................................. 294
El código a incluir ....................................................................................................................... 295
La aplicación en funcionamiento................................................................................................. 296
CREACIÓN DE OBJETOS ADO........................................................................................................... 296
Utilizar los objetos principales del modelo ................................................................................. 296
Modificar la información a través del objeto Connection........................................................... 297
Consultas de registros usando Connection ................................................................................. 298
Reserva de conexiones................................................................................................................. 299
Procedimientos almacenados desde objetos Command .............................................................. 299
Modificar datos desde objetos Command.................................................................................... 301
Manejo de un Recordset sin usar objetos superiores .................................................................. 301
GUARDAR LA RUTA DE DATOS EN EL REGISTRO DE WINDOWS ....................................................... 302
ÍNDICES ............................................................................................................................................ 305
ÓRDENES.......................................................................................................................................... 306
FILTROS............................................................................................................................................ 308
BÚSQUEDA DE REGISTROS ............................................................................................................... 310
NAVEGACIÓN POR LOS REGISTROS .................................................................................................. 312
VALIDACIÓN DE CONTROLES ........................................................................................................... 314
CREAR CONTROLES EN TIEMPO DE EJECUCIÓN ................................................................................ 316
9
Programación con Visual Basic 6

© Grupo EIDOS

EDICIÓN DE REGISTROS.................................................................................................................... 320
Agregar con Recordset ................................................................................................................ 322
Agregar con Connection.............................................................................................................. 323
Modificar con Recordset.............................................................................................................. 324
Modificar con Connection ........................................................................................................... 324
Borrar con Recordset .................................................................................................................. 325
Borrar con Connection ................................................................................................................ 326
TRANSACCIONES .............................................................................................................................. 326
CONECTAR MEDIANTE UN ORIGEN DE DATOS ODBC...................................................................... 330
Nombre de fuente de datos o DSN de usuario (Data Source Name) ........................................... 330
Fichero .DSN con la información de conexión............................................................................ 334
Conectar sin DSN, sólo con código ............................................................................................. 337
EJECUTAR UN PROCEDIMIENTO ALMACENADO ............................................................................... 338
ESQUEMAS ....................................................................................................................................... 339
ENLAZAR CONTROLES A DATOS EN TIEMPO DE EJECUCIÓN ............................................................. 340
ENLAZAR CONTROLES DE VARIOS FORMULARIOS A UN MISMO ORIGEN DE DATOS ......................... 345
EL ENTORNO DE DATOS (DATA ENVIRONMENT) ............................................................................ 348
Agregar un Entorno de Datos...................................................................................................... 348
Crear una conexión ..................................................................................................................... 349
Crear un comando ....................................................................................................................... 351
Agregar código a los objetos de datos......................................................................................... 352
Otros tipos de comandos ............................................................................................................. 353
Simplificar el desarrollo de un mantenimiento de datos ............................................................. 355
Manipular los elementos de un Entorno de Datos en tiempo de ejecución................................. 360
Relacionar comandos del Entorno de Datos ............................................................................... 361
Agregados.................................................................................................................................... 363
Agrupar filas sobre la base de un campo .................................................................................... 364
Contar las filas de un campo agrupado....................................................................................... 366
VISTA DATOS (DATA VIEW) ............................................................................................................ 367
Visualizar las conexiones del Entorno de Datos en Vista Datos................................................. 367
Crear un Entorno de Datos desde Vista Datos............................................................................ 368
Crear un vínculo desde Vista Datos ............................................................................................ 368
Acceder a los elementos contenidos en Vista Datos.................................................................... 370
Arrastrar y soltar desde Vista Datos ........................................................................................... 371
ASISTENTE PARA CREAR FORMULARIOS DE DATOS ......................................................................... 372
IMPRESIÓN ...................................................................................................................................... 377
TÉCNICAS DE IMPRESIÓN EN VISUAL BASIC .................................................................................... 377
IMPRESIÓN MEDIANTE OBJETOS ....................................................................................................... 377
LA COLECCIÓN PRINTERS ................................................................................................................ 378
EL OBJETO PRINTER ......................................................................................................................... 378
Cambiar el tipo de fuente ............................................................................................................ 380
Seleccionar la impresora y el tipo de letra mediante el control CommonDialog ....................... 380
OTRAS PROPIEDADES Y MÉTODOS DEL OBJETO PRINTER ................................................................ 382
Propiedades ................................................................................................................................. 382
Métodos ....................................................................................................................................... 385
DATA REPORT (DISEÑADOR DE INFORMES)..................................................................................... 385
ELEMENTOS DEL DISEÑADOR DE INFORMES .................................................................................... 386
EL OBJETO DATAREPORT ................................................................................................................ 386
Propiedades ................................................................................................................................. 386
Métodos ....................................................................................................................................... 387
Eventos......................................................................................................................................... 388
EL OBJETO SECTION ......................................................................................................................... 389
Propiedades ................................................................................................................................. 390
10
© Grupo EIDOS

1. Introducción

CONTROLES DEL DISEÑADOR DE INFORMES .................................................................................... 390
CREAR UN INFORME ......................................................................................................................... 392
Crear la fuente de datos .............................................................................................................. 393
Agregar un diseñador de informes al proyecto ........................................................................... 393
Conectar el informe con una fuente de datos .............................................................................. 394
Insertar campos en el informe ..................................................................................................... 394
Previsualizar el informe .............................................................................................................. 396
CANCELAR EL PROCESO DE IMPRESIÓN ........................................................................................... 397
LA VENTANA DE PREVISUALIZACIÓN .............................................................................................. 398
MEJORAR EL ASPECTO DEL INFORME............................................................................................... 398
Título............................................................................................................................................ 398
Formas gráficas........................................................................................................................... 400
Imágenes...................................................................................................................................... 400
Número de página........................................................................................................................ 401
Fecha y hora................................................................................................................................ 401
PRESENTACIÓN DE DATOS AGRUPADOS JERÁRQUICAMENTE .......................................................... 402
EL CONTROL RPTFUNCTION ............................................................................................................ 405
INFORMES CON SELECCIÓN DE REGISTROS ...................................................................................... 407
EXPORTAR UN INFORME................................................................................................................... 409
Propiedades ................................................................................................................................. 410
CRYSTAL REPORTS .......................................................................................................................... 411
COMENZANDO CON CRYSTAL REPORTS .......................................................................................... 411
Creación de un nuevo informe..................................................................................................... 412
Selección de la base de datos ...................................................................................................... 413
Secciones del informe .................................................................................................................. 413
Insertar campos en el informe ..................................................................................................... 414
Previsualizar el informe .............................................................................................................. 416
COMPLETANDO EL INFORME ............................................................................................................ 417
Título............................................................................................................................................ 417
Dibujo .......................................................................................................................................... 418
Imagen ......................................................................................................................................... 419
Ajustar sección............................................................................................................................. 420
Número de página y fecha del informe........................................................................................ 420
CONFIGURACIÓN DEL INFORME ....................................................................................................... 422
MANIPULACIÓN DE LA BASE DE DATOS CONECTADA AL INFORME ................................................. 423
Establecer ubicación ................................................................................................................... 423
Comprobar la base de datos........................................................................................................ 423
SELECCIÓN DE REGISTROS ............................................................................................................... 424
ORDEN DE LOS REGISTROS ............................................................................................................... 426
SELECCIÓN DE CAMPOS ................................................................................................................... 427
FÓRMULAS ....................................................................................................................................... 427
CREACIÓN DE UN RESUMEN ............................................................................................................. 430
INSERTAR UN SUBTOTAL ................................................................................................................. 431
ASISTENTES PARA LA CREACIÓN DE INFORMES ............................................................................... 432
EL CONTROL CRYSTAL REPORT....................................................................................................... 435
OBTENCIÓN DE LOS DATOS DESDE UNA TABLA INTERMEDIA .......................................................... 440
EL DEPURADOR ............................................................................................................................. 445
¿QUÉ ES UN DEPURADOR?................................................................................................................ 445
ACCIONES BÁSICAS .......................................................................................................................... 446
MODO DE INTERRUPCIÓN ................................................................................................................. 446
PUNTOS DE INTERRUPCIÓN .............................................................................................................. 446
EJECUCIÓN PASO A PASO.................................................................................................................. 448
INSPECCIONES .................................................................................................................................. 449
11
Programación con Visual Basic 6

© Grupo EIDOS

La ventana de Inspección ............................................................................................................ 450
Inspección rápida ........................................................................................................................ 451
LA VENTANA INMEDIATO ................................................................................................................ 451
LA VENTANA LOCALES .................................................................................................................... 452
PILA DE LLAMADAS ......................................................................................................................... 454
PROGRAMACIÓN ORIENTADA A OBJETO (OOP) ................................................................ 457
¿QUÉ VENTAJAS APORTA LA PROGRAMACIÓN ORIENTADA A OBJETOS? ......................................... 457
OBJETOS ........................................................................................................................................... 458
CLASES............................................................................................................................................. 459
CLASES ABSTRACTAS....................................................................................................................... 460
RELACIONES ENTRE OBJETOS .......................................................................................................... 460
Herencia ...................................................................................................................................... 460
Pertenencia.................................................................................................................................. 461
Utilización.................................................................................................................................... 461
ELEMENTOS BÁSICOS DE UN SISTEMA OOP..................................................................................... 461
Encapsulación.............................................................................................................................. 461
Polimorfismo................................................................................................................................ 461
Herencia ...................................................................................................................................... 462
REUTILIZACIÓN ................................................................................................................................ 462
CREACIÓN DE CLASES ...................................................................................................................... 462
Crear un módulo de clase............................................................................................................ 462
Definir las propiedades de la clase ............................................................................................. 463
Acceder a las propiedades de la clase......................................................................................... 463
¿Qué son los procedimientos Property?...................................................................................... 464
Tipos de procedimientos Property............................................................................................... 464
Ventajas de los procedimientos Property .................................................................................... 467
Establecer una propiedad como predeterminada........................................................................ 470
Crear los métodos de la clase...................................................................................................... 471
¿Cuándo crear un procedimiento Property o un método? .......................................................... 472
CREAR OBJETOS DE UNA CLASE ....................................................................................................... 472
Tipificación de variables ............................................................................................................. 473
Instanciar un objeto..................................................................................................................... 474
Uso de propiedades y métodos .................................................................................................... 475
Eliminar el objeto ........................................................................................................................ 476
LA PALABRA CLAVE ME .................................................................................................................. 476
EMPLEAR VALORES CONSTANTES EN UNA CLASE ........................................................................... 479
EVENTOS PREDEFINIDOS PARA UNA CLASE ..................................................................................... 481
COLECCIONES .................................................................................................................................. 481
Insertar un módulo de clase ........................................................................................................ 482
Eventos de creación/destrucción del objeto Collection............................................................... 482
Procedimientos Property para la colección ................................................................................ 482
Métodos para la colección........................................................................................................... 483
Incorporar nuevas funcionalidades a la colección...................................................................... 485
Recorrer la colección mediante For Each...Next ........................................................................ 485
EL OBJETO DICTIONARY .................................................................................................................. 488
Agregar elementos al diccionario................................................................................................ 490
Obtener un elementos del diccionario ......................................................................................... 490
Recorrer la información del diccionario ..................................................................................... 491
Comprobar existencia de elementos ............................................................................................ 491
Borrar un elemento del diccionario............................................................................................. 492
Borrar todos los elementos del diccionario................................................................................. 492
EVENTOS PERSONALIZADOS ............................................................................................................ 492
INTERFACES ..................................................................................................................................... 495
12
© Grupo EIDOS

1. Introducción

Creación de un interfaz ............................................................................................................... 496
Implementar el interfaz................................................................................................................ 497
Utilizar un interfaz implementado en una clase .......................................................................... 499
Polimorfismo mediante Interfaces............................................................................................... 501
Herencia mediante Interfaces...................................................................................................... 503
Herencia sin utilizar interfaces en la aplicación......................................................................... 506
PROCEDIMIENTOS FRIEND ............................................................................................................... 508
MANIPULACIÓN INDIRECTA DE OBJETOS; LA FUNCIÓN CALLBYNAME()........................................ 509
FORMULARIOS CON "CLASE"........................................................................................................... 510
VARIABLES GLOBALES DE FORMULARIO ......................................................................................... 515
UTILIDADES Y HERRAMIENTAS PARA EL MANEJO DE CLASES ......................................................... 516
Generador de clases (Class Wizard) ........................................................................................... 516
Examinador de objetos (Object Browser) ................................................................................... 519
OBJETOS DEL SISTEMA ..................................................................................................................... 520
ACTIVEX........................................................................................................................................... 523
¿QUÉ ES ACTIVEX?.......................................................................................................................... 523
COMPONENTES ACTIVEX ................................................................................................................ 524
ACTIVEX DLL ................................................................................................................................. 524
ACTIVEX EXE ................................................................................................................................. 525
CONTROL ACTIVEX ......................................................................................................................... 526
DOCUMENTO ACTIVEX.................................................................................................................... 526
DCOM ............................................................................................................................................. 526
AUTOMATIZACIÓN REMOTA ............................................................................................................ 526
CREACIÓN DE COMPONENTES ACTIVEX DLL Y EXE ..................................................................... 526
Establecer el tipo de componente ................................................................................................ 527
Propiedades del componente ....................................................................................................... 527
Clases del componente ................................................................................................................ 529
Creación de formularios en el componente................................................................................. 529
Procedimiento Main de entrada .................................................................................................. 530
COMPATIBILIDAD DE VERSIONES ..................................................................................................... 530
DESARROLLO DE UN COMPONENTE ACTIVEX EXE ........................................................................ 531
Clase Cliente................................................................................................................................ 532
Formulario frmClientes ............................................................................................................... 536
Procedimiento Main .................................................................................................................... 537
USO DE UN COMPONENTE ACTIVEX EXE DESDE UNA APLICACIÓN CLIENTE ................................. 538
CREATEOBJECT()............................................................................................................................. 541
REDUCCIÓN DE LA COMUNICACIÓN ENTRE PROCESOS .................................................................... 541
MEJORAR EL GUIADO DE DATOS ENTRE PROCESOS .......................................................................... 542
LA PROPIEDAD INSTANCING ............................................................................................................ 544
Private ......................................................................................................................................... 544
PublicNotCreatable ..................................................................................................................... 544
SINGLEUSE ...................................................................................................................................... 545
GlobalSingleUse .......................................................................................................................... 545
MultiUse ...................................................................................................................................... 545
GlobalMultiUse ........................................................................................................................... 545
PROGRAMACIÓN MULTIHEBRA ........................................................................................................ 545
DESARROLLO DE UN COMPONENTE ACTIVEX DLL ........................................................................ 546
Diseño de las clases..................................................................................................................... 547
TRABAJAR CON UN GRUPO DE PROYECTOS ...................................................................................... 552
DESARROLLO DE LA APLICACIÓN CLIENTE PARA UN COMPONENTE ACTIVEX DLL....................... 553
COMPILAR UN COMPONENTE DE CÓDIGO ACTIVEX ........................................................................ 559
DISTRIBUIR UN COMPONENTE DE CÓDIGO ACTIVEX....................................................................... 560
AUTOMATIZACIÓN ACTIVEX........................................................................................................... 560
13
Programación con Visual Basic 6

© Grupo EIDOS

CONEXIÓN CON OFFICE. USO DE WORD DESDE VISUAL BASIC ...................................................... 561
OFFICE LLAMA AL CÓDIGO DE VISUAL BASIC ................................................................................. 564
OBJETOS INSERTABLES .................................................................................................................... 568
EL CONTROL CONTENEDOR OLE..................................................................................................... 572
frmIncrusta .................................................................................................................................. 573
frmVincula ................................................................................................................................... 575
FrmEjecInc - frmEjecVinc........................................................................................................... 576
CONTROLES ACTIVEX ..................................................................................................................... 577
Diseño del control........................................................................................................................ 578
Crear el interfaz del control ........................................................................................................ 578
El código del control ................................................................................................................... 579
Redimensionar el control............................................................................................................. 581
Eventos notificados por el control ............................................................................................... 582
Creación de propiedades............................................................................................................. 584
Eventos del control ...................................................................................................................... 585
Páginas de propiedades............................................................................................................... 588
Configurar una página de propiedades estándar........................................................................ 593
Uso del control en un formulario ................................................................................................ 594
Uso del control en una página web ............................................................................................. 595
ASISTENTE PARA LA CREACIÓN DE CONTROLES .............................................................................. 596
Asistente para páginas de propiedades ....................................................................................... 601
Compilación y distribución.......................................................................................................... 604
DOCUMENTOS ACTIVEX.................................................................................................................. 604
Documento ActiveX ..................................................................................................................... 604
Servidor de Documentos ActiveX ................................................................................................ 605
Creación de un Servidor de Documentos ActiveX....................................................................... 605
Visualización de un documento ActiveX...................................................................................... 609
Compilar el proyecto ................................................................................................................... 610
Distribución de la aplicación servidora y documentos ............................................................... 611
TRATAMIENTO AVANZADO DE DATOS CON ADO.............................................................. 617
CLASES ORIENTADAS A DATOS ........................................................................................................ 617
Proveedor de datos ...................................................................................................................... 617
Consumidor de datos ................................................................................................................... 618
BindingCollection ........................................................................................................................ 618
CREAR UNA CLASE PROVEEDORA DE DATOS ................................................................................... 618
CREAR UNA CLASE CONSUMIDORA DE DATOS ................................................................................. 620
PROVEEDOR DE DATOS CON LA INFORMACIÓN EN UN FORMATO DISTINTO .................................... 622
TRABAJAR CON VARIOS MIEMBROS DE DATOS ................................................................................ 629
CREACIÓN DE UN CONTROL PERSONALIZADO ORIENTADO A DATOS ............................................... 633
Interfaz del control ...................................................................................................................... 634
Variables y procedimientos para propiedades ............................................................................ 634
Código del UserControl .............................................................................................................. 636
Botones de navegación ................................................................................................................ 637
Botones de edición....................................................................................................................... 638
El proyecto para pruebas ............................................................................................................ 639
El formulario de prueba .............................................................................................................. 639
EL CONTROL DATAREPEATER ......................................................................................................... 641
MODELADO DE DATOS (DATA SHAPING)......................................................................................... 646
Modelado simple.......................................................................................................................... 647
El control Hierarchical FlexGrid................................................................................................ 648
Obtener varios detalles desde una instrucción principal ............................................................ 650
Recuperar datos desde varios niveles de profundidad ................................................................ 651
Realizar cálculos mediante modelado de datos........................................................................... 652
14
© Grupo EIDOS

1. Introducción

MANIPULACIÓN DE FICHEROS................................................................................................. 655
¿POR QUÉ USAR FICHEROS? ............................................................................................................. 655
APERTURA DE UN FICHERO .............................................................................................................. 656
CIERRE DE UN FICHERO.................................................................................................................... 657
MODOS DE ACCESO A FICHEROS ...................................................................................................... 657
ACCESO SECUENCIAL ...................................................................................................................... 658
Apertura....................................................................................................................................... 658
Lectura......................................................................................................................................... 658
Escritura ...................................................................................................................................... 661
ACCESO ALEATORIO ........................................................................................................................ 664
Apertura....................................................................................................................................... 664
Escritura ...................................................................................................................................... 664
Lectura......................................................................................................................................... 665
ACCESO BINARIO ............................................................................................................................. 666
Apertura....................................................................................................................................... 667
Escritura ...................................................................................................................................... 667
Lectura......................................................................................................................................... 667
OTRAS INSTRUCCIONES PARA MANEJO DE FICHEROS ...................................................................... 668
OBJETOS PARA EL MANEJO DE FICHEROS......................................................................................... 672
Drive ............................................................................................................................................ 672
Propiedades.............................................................................................................................. 673
Folder .......................................................................................................................................... 674
Propiedades.............................................................................................................................. 674
Métodos ................................................................................................................................... 675
File............................................................................................................................................... 678
FileSystemObject ......................................................................................................................... 679
Propiedades.............................................................................................................................. 679
Métodos ................................................................................................................................... 679
TextStream ................................................................................................................................... 685
Propiedades.............................................................................................................................. 685
Métodos ................................................................................................................................... 686
ACCESO AL API DE WINDOWS DESDE VISUAL BASIC....................................................... 689
QUÉ HACER CUANDO CON VISUAL BASIC NO SE PUEDE .................................................................. 689
¿QUÉ ES UN API? ............................................................................................................................. 689
DLL, EL SOPORTE FÍSICO DEL API................................................................................................... 690
LA INSTRUCCIÓN DECLARE ............................................................................................................. 691
EL VISOR DE API ............................................................................................................................. 693
DECLARACIÓN DE FUNCIONES QUE MANEJAN CADENAS ................................................................. 696
DECLARACIONES DE TIPO ESTRICTO. EVITAR EL USO DE "AS ANY" ............................................... 696
CREAR DECLARACIONES SEGURAS MEDIANTE UNA FUNCIÓN "ENVOLVENTE" ............................... 700
MANIPULACIÓN DE MENSAJES ......................................................................................................... 701
Cómo son los mensajes................................................................................................................ 701
Enviar mensajes........................................................................................................................... 702
SUBCLASIFICACIÓN. PROCESAR LOS MENSAJES QUE ENVÍA EL SISTEMA ........................................ 704
Subclasificación para una ventana.............................................................................................. 704
Subclasificación para un control................................................................................................. 708
ALGUNOS EJEMPLOS ADICIONALES ................................................................................................. 712
GLOSARIO DE TÉRMINOS .......................................................................................................... 719
NORMATIVA DE CODIFICACIÓN ....................................................................................................... 719
TRATAMIENTO DE DATOS CON VISUAL BASIC 5 ............................................................... 725
INTRODUCCIÓN A LA PROGRAMACIÓN CON BASES DE DATOS ......................................................... 725
15
Programación con Visual Basic 6

© Grupo EIDOS

DISEÑO DE LA BASE DE DATOS ........................................................................................................ 726
Establecer el modelo de la aplicación......................................................................................... 726
Analizar que información necesita la aplicación ........................................................................ 726
Establecer la información en tablas ............................................................................................ 726
Normalización de la base de datos .............................................................................................. 727
Relacionar las tablas ................................................................................................................... 728
Establecer la integridad referencial ............................................................................................ 730
Definir índices para las tablas..................................................................................................... 730
Definir validaciones en la inserción de datos ............................................................................. 730
EL MOTOR JET .................................................................................................................................. 731
EL CONTROL DATA .......................................................................................................................... 732
VALIDACIONES A NIVEL DE MOTOR ................................................................................................. 736
EL CONTROL DBGRID ...................................................................................................................... 737
REFLEXIONES SOBRE LOS CONTROLES ENLAZADOS A DATOS ......................................................... 740
CONTROLES ENLAZADOS Y CÓDIGO, UN PUNTO INTERMEDIO ......................................................... 741
La aplicación de ejemplo............................................................................................................. 741
El formulario de datos ................................................................................................................. 741
El control DBCombo ................................................................................................................... 742
El código a incluir ....................................................................................................................... 742
La aplicación en funcionamiento................................................................................................. 744
OBJETOS DE ACCESO A DATOS (DAO)............................................................................................ 744
GUARDAR LA RUTA DE DATOS EN EL REGISTRO DE WINDOWS ....................................................... 744
APERTURA DE UNA BASE DE DATOS ................................................................................................ 746
EL OBJETO RECORDSET ................................................................................................................... 749
CONECTANDO MEDIANTE ODBCDIRECT ........................................................................................ 752
USO DE CONTROLADORES ISAM..................................................................................................... 753
OTRAS OPERACIONES CON DAO...................................................................................................... 754
ÍNDICES ............................................................................................................................................ 755
ÓRDENES.......................................................................................................................................... 757
FILTROS............................................................................................................................................ 759
NAVEGACIÓN POR LOS REGISTROS .................................................................................................. 760
BÚSQUEDA DE REGISTROS ............................................................................................................... 763
OBJETOS PARA LA DEFINICIÓN DE DATOS ........................................................................................ 766
Bases de datos.............................................................................................................................. 766
Tablas .......................................................................................................................................... 767
Índices.......................................................................................................................................... 770
Consultas almacenadas ............................................................................................................... 771
Consultas con parámetros ........................................................................................................... 774
RELACIONES .................................................................................................................................... 776
TRANSACCIONES .............................................................................................................................. 779
OPERACIONES CON SQL .................................................................................................................. 782
EDICIÓN DE REGISTROS.................................................................................................................... 787
APLICANDO LA TEORÍA .................................................................................................................... 792
Diseño de la base de datos .......................................................................................................... 792
Interfaz de usuario....................................................................................................................... 793
Creación de la tabla de apuntes del ejercicio fiscal en tiempo de ejecución .............................. 794
El formulario de edición de apuntes de IVA................................................................................ 798
Formato para controles con texto ............................................................................................... 801
Agilizar la edición de apuntes ..................................................................................................... 805
Aprovechar valores repetitivos.................................................................................................... 805
Grabar un registro....................................................................................................................... 806
Estilo de la ventana principal...................................................................................................... 808
VISDATA, ADMINISTRADOR VISUAL DE DATOS .............................................................................. 809

16
Introducción
Introducción a la programación en Windows con Visual
Basic
La continua evolución en las necesidades de los programadores, hace que las herramientas de
desarrollo sean actualmente uno de los elementos con más rápida evolución en el mundo de la
informática.
Programación Orientada a Objetos, Cliente / Servidor, multimedia y sobre todo Internet, como la gran
revolución en el mundo de las comunicaciones por ordenador, son requisitos indispensables para
cualquier lenguaje que aspire a ocupar un puesto destacado en el mercado de las herramientas de
programación.
Uno de los sistemas operativos más populares actualmente, para el que se realizan un gran número de
aplicaciones es Windows, y una de las principales herramientas para programar en este sistema es
Visual Basic (o VB como también lo denominaremos). Este curso se basa precisamente en estos
elementos, la programación de aplicaciones Windows utilizando Visual Basic 6 como entorno de
desarrollo.
Visual Basic es una herramienta multipropósito, es decir, podemos crear programas utilizando este
lenguaje para resolver diferentes tipos de problemas; sin embargo, debido al gran número de
programadores dedicados a desarrollar programas de gestión, este curso va a estar orientado
fundamentalmente al manejo de datos.
17
Programación con Visual Basic 6

© Grupo EIDOS

En los siguientes apartados, veremos brevemente, las nociones básicas de la programación bajo el
entorno Windows.

El sistema controla a la aplicación
Aquellos programadores que pasen de trabajar en DOS a Windows necesitarán afrontar una nueva
filosofía de trabajo. Cuando creamos un programa para DOS, dicho programa al ejecutarse, acapara
todos los recursos del ordenador, controlando teclado, vídeo, estados de espera del programa, etc.,
todo está en manos del programa hasta que finalice su ejecución. Esto es lógico, ya que al ser un
sistema monotarea, la única aplicación en ejecución puede acceder directamente a todos los recursos
de la máquina. Existe una excepción en los llamados programas residentes, que una vez cargados son
accesibles desde el programa principal mediante una combinación de teclado. Aunque esta técnica es
muy útil bajo DOS, no se puede considerar multitarea, ya que no es un sistema preparado para ello.
En Windows se da el caso contrario, al ser un sistema multitarea y poder tener más de un programa en
ejecución al mismo tiempo, es el sistema operativo el que tiene el control de todos los programas
lanzados. Asignando a cada programa un espacio de direcciones propio, de modo que no entren en
conflicto mutuamente. Para comunicarse con los programas, utiliza un sistema de mensajes; Windows
recibe y envía peticiones a los programas abiertos, administra las prioridades para los programas, la
memoria, y en definitiva se encarga del buen funcionamiento de todos los aspectos del sistema.

Interfaz consistente
Cada programa realizado en DOS puede tener, de hecho la mayoría lo tienen, un aspecto y modo de
comunicación con el usuario diferente, lo que habitualmente llamamos interfaz. Esto supone un
derroche de tiempo tanto para el usuario como para el programador. Los usuarios cada vez que han de
utilizar un nuevo programa de este tipo, deben emplear tiempo en aprender a comunicarse con él. Y
los programadores han de gastar parte del tiempo de desarrollo en crear la interfaz de la aplicación.
En Windows todos los programas tienen un único interfaz, lo que redunda en beneficios para usuarios
y programadores. Los primeros cuando aprenden a utilizar una aplicación para Windows, ya tienen
parte del camino recorrido para las siguientes, debido a que el uso de la ventana que contiene la
aplicación es igual para todas. Sólo han de concentrarse en el aprendizaje del contenido de la
aplicación y no el continente. Similar situación se da respecto a los programadores, no han de
preocuparse del interfaz en absoluto, ya que viene proporcionado por Windows, sólo han de
desarrollar las rutinas que resuelvan los problemas con que el programa pueda encontrarse.

Eventos y mensajes
Se dice que Windows es un sistema conducido por eventos, ya que es la forma que tiene de saber lo
que está pasando en todo momento. Cualquier cosa que ocurre en Windows es un evento: mover el
ratón, abrir un menú, pulsar un control, redimensionar una ventana, etc.
Windows actúa como central de información, tomando los eventos producidos en el sistema y
enviando mensajes al programa o programas que necesitan ser notificados de lo que ocurre.
Puesto que Windows hace llamadas a los programas en forma de mensajes, estos han de disponer de
un mecanismo para poder saber lo que el sistema les está diciendo. Este mecanismo es el llamado
procedimiento de ventana, que contiene un bucle de mensajes o estructura de tipo Case – End Case,
en la que se ejecuta el código programado para ese mensaje.
18
© Grupo EIDOS

1. Introducción

Si no estamos interesados en realizar ninguna operación especial para determinados mensajes, no
escribiremos código asociado para ellos, con lo que sólo se ejecutarán las acciones por defecto
programadas por el propio Windows.
Lo anteriormente explicado no quiere decir que siempre debamos escribir un procedimiento de
ventana para el programa. En Visual Basic este procedimiento es creado y gestionado internamente
por el producto para cada ventana, sin que tengamos que preocuparnos en condiciones normales de su
mantenimiento; esta es entre otras, una de las muchas facilidades que nos proporciona la herramienta.
Sin embargo, también será posible acceder a estos mensajes, tanto para recogerlos como para
enviarlos, y hacer llamadas a funciones para las que VB no da soporte, a través del API de Windows.

Librerías de enlace dinámico (DLL)
Cuando en DOS escribimos un programa, muchas de las funciones que usamos en el programa están
contenidas en una o varias librerías (ficheros .LIB). Al generar el ejecutable, enlazamos con esas
librerías, y el código de tales funciones se añade a nuestro ejecutable. Si creamos más de una
aplicación que haga llamadas a las mismas funciones, estas se añadirán a cada fichero .EXE, con lo
que tendremos varios programas con código repetido para las rutinas comunes.
Para solventar este problema, en Windows disponemos de DLL’s (Dynamic Link Library), que
forman uno de los componentes básicos en la arquitectura del sistema operativo. Una DLL es una
librería que contiene código compilado y pre-enlazado, accesible desde cualquier programa que se
encuentre en ejecución. Podemos seguir utilizando librerías normales LIB, pero las ventajas derivadas
del uso de DLL’s son mucho mayores. A continuación exponemos algunos de los motivos.

Centralizar el código en un único lugar
Con esto conseguimos un doble objetivo: evitar el código redundante en las aplicaciones, al no incluir
el código de las funciones comunes en cada programa; y más facilidad en el mantenimiento de
versiones. Una vez modificada una rutina y generada de nuevo la DLL, los cambios son accesibles
para todos los programas que la llamen. Con el método tradicional, además de generar de nuevo la
librería, tendríamos que recompilar todos los programas que hacen uso de ella, enlazándolos con la
nueva versión de la librería, de forma que pudieran incluir las rutinas modificadas o nuevas.

Ahorro de recursos del sistema
Cuando un programa hace una llamada a una rutina de una DLL, y la carga en memoria, las sucesivas
llamadas a esa rutina de ese programa o cualquier otro, no la volverán a cargar. Sólo se carga una vez
y permanece en memoria mientras se necesite.

Independencia del lenguaje
Podemos tener una DLL construida en Visual C++ y llamar a sus funciones desde nuestro programa en
Visual Basic, sólo es necesario conocer el nombre de la función a usar y su protocolo de llamada, esto
es, los parámetros a pasar, tipo y valor de retorno de la función.

19
Programación con Visual Basic 6

© Grupo EIDOS

Aplicaciones SDI y MDI
Una aplicación SDI o de Interfaz de Documento Simple, es aquella en que se utiliza una sola ventana
para interactuar con el usuario, el ejemplo más claro es el Bloc de Notas de Windows.
Una aplicación MDI o de Interfaz de Documento Múltiple, usa una ventana principal, que actúa como
contenedora de una o más ventanas abiertas dentro de la principal. Como ejemplo de este tipo de
programas, tenemos a Word. Cada ventana contenida dentro de la principal corresponde con un
documento o fichero, el cual podemos maximizar para que ocupe todo el área disponible de la ventana,
iconizar, u organizar en mosaico o cascada.

OLE
OLE es una tecnología que nos permite compartir información entre las diferentes aplicaciones
Windows. Desde los tiempos de las aplicaciones DOS, los usuarios han necesitado compartir
información entre los distintos programas que usaban, pero las utilidades disponibles para este sistema
eran insuficientes. La naturaleza monotarea del DOS complicaba además este problema, al tener que
incorporar las aplicaciones sus propios conversores o disponer de programas que realizaran ese
trabajo.
Con la llegada de Windows, comenzamos a beneficiarnos de las ventajas del portapapeles, como
puente para compartir datos de forma sencilla entre dos aplicaciones. Después llegó DDE (Dynamic
Data Exchange o Intercambio Dinámico de Datos) como solución más avanzada para compartir
información entre programas, aunque sólo permitía utilizar texto y gráficos.
Vinculación e incrustación de objetos (OLE), nace en un principio como un avance en cuanto a
comunicación de datos entre aplicaciones. Si estamos desarrollando un programa que necesita de las
características que proporciona una hoja de cálculo, no necesitamos crearla nosotros, ya existen varias
en el mercado sobradamente probadas y fiables, ¿para que volver a realizar el trabajo que ya han
hecho otros?. Si esa hoja de cálculo, por ejemplo Excel, soporta OLE, incluimos un objeto OLE de
Excel en nuestra aplicación, y toda la funcionalidad de Excel pasará a la nuestra.
El programa que contiene un objeto OLE se llama Aplicación Contenedora, y el programa que crea y
maneja los objetos OLE se llama Aplicación Servidora.

Vinculación
Siguiendo con el ejemplo de la hoja de cálculo, un programa que tenga un objeto (fichero XLS)
vinculado, al editar el objeto, lanza la aplicación asociada a ese tipo de objeto, en este caso Excel. A
partir de ahora utilizamos Excel para modificar el fichero, una vez terminado, grabamos y salimos, con
lo que volvemos a nuestro programa original.

Figura 1. Esquema de vinculación OLE.

20
© Grupo EIDOS

1. Introducción

Este modo de trabajo es útil cuando un objeto necesita ser compartido por varias aplicaciones, ya que
la aplicación guarda una referencia al objeto.

Incrustación
Una aplicación con un objeto incrustado, contiene el propio objeto y no una referencia a un fichero
externo. Cuando editemos el objeto no se iniciará la aplicación que genera ese objeto (también llamada
aplicación servidora OLE), sino que las barras de menú y herramientas de esa aplicación sustituirán a
las de la nuestra durante la edición del objeto; esto es conocido como Negociación de menú.
Los cambios realizados en un objeto incrustado sólo serán visibles por la aplicación contenedora de
ese objeto.

Figura 2. Esquema de incrustación OLE.

ActiveX
En los últimos tiempos, la denominación OLE ha dejado paso a ActiveX. El motivo de ello, es una
campaña de marketing realizada por Microsoft y destinada a relacionar la tecnología OLE con todo lo
que tenga que ver con Internet. La base de esta tecnología sigue siendo la misma, pero la tendencia
progresiva es la de crear objetos y componentes cada vez más pequeños y reutilizables, que faciliten
su transmisión a través de la red.

Controles ActiveX y modelo COM / DCOM
Hemos visto que OLE en su versión 1.0, nace como una tecnología de comunicación entre
aplicaciones. En la versión 2.0, la idea de comunicar aplicaciones se extiende a la de tratar todos los
objetos como componentes que pueden ser montados en las aplicaciones, igual que si fueran piezas de
una máquina. Este es el origen del llamado modelo COM (Component Object Model), y las piezas son
los controles OCX o ActiveX que tomamos de la caja de herramientas e insertamos en los formularios
de las aplicaciones.
La evolución de los controles OCX ha permitido que estos pasen de estar disponibles desde la
máquina local a cualquier máquina conectada a la red, con lo cual, la especificación COM ha pasado a
ser DCOM (Distributed Component Object Model), o COM distribuido. De la misma forma, el
termino activo ha sido incorporado a todos los elementos que tengan que ver con Internet, así hemos
pasado de controles OCX a ActiveX, y de Automatización OLE a Automatización ActiveX

21
Programación con Visual Basic 6

© Grupo EIDOS

Automatización ActiveX
La automatización ActiveX consiste en la posibilidad de integrar en nuestra aplicación, capacidades
existentes en otras aplicaciones, en forma de componentes ActiveX, de manera que no necesitemos
volver a codificar el trabajo hecho anteriormente por otros.
La aplicación que incorpora los componentes se denomina cliente, y la que suministra los
componentes, servidora.
De esta forma, podríamos por ejemplo, crear una aplicación que incorporara las capacidades de
corrector ortográfico de Word en sus controles de texto.

Programación orientada a objeto en Windows
La aplicación de técnicas de programación orientada a objeto en Windows, ha supuesto una gran
ayuda en el desarrollo de las últimas versiones del sistema. De igual forma, el empleo de la orientación
a objetos en los programas destinados a funcionar bajo Windows, se traduce en una mayor sencillez a
la hora de enfocar los problemas a resolver y en un código más fácil de mantener.

Windows como sistema OOP
Al programar en Windows, estamos programando en un sistema orientado a objetos. Todos los
elementos son tratados como objetos: ventanas, botones, cuadros de texto, listas desplegables, etc. Por
este motivo es muy importante adaptar nuestra forma de enfocar la programación a estas técnicas de
desarrollo

22
Visual Basic
Desde sus comienzos
La aparición de Visual Basic, supuso una auténtica revolución en los lenguajes de programación.
Hasta entonces, realizar un programa en Windows, suponía poco menos que ser un experto en C++, y
conocer todo el entramado del famoso y extenso API, mensajes, funciones, etc.
Visual Basic ponía al alcance de la mayoría de los programadores, sin necesidad de ser unos expertos
en programación Windows, la posibilidad de construir aplicaciones en este sistema. Los aspectos más
complejos del programa eran resueltos de forma transparente por la herramienta, permitiendo al
desarrollador centrarse en lo que la aplicación debía resolver.
También es cierto que las posibilidades iniciales eran limitadas, pero en las sucesivas versiones de esta
herramienta se han ido incorporando o reforzando aspectos tan importantes como la implementación
OOP, aunque todavía no disponga de herencia; manejo de bases de datos locales y remotas,
permitiendo usar ficheros tipo Access como formato nativo de datos; dBASE, Paradox mediante
controladores ISAM; SQL Server, Oracle a través de ODBC, etc. Todo esto y diversos aspectos más,
han hecho que una herramienta pensada originalmente para crear sencillas aplicaciones Windows,
llegue a ser uno de los productos más robustos para la creación de grandes aplicaciones corporativas.

La situación actual
En Visual Basic 6 se ha realizado un gran trabajo de mejora del producto, si bien desde las versiones 4
y 5 dicha labor de actualización se ha notado sobremanera, incorporando y adaptando las más
Programación con Visual Basic 6

© Grupo EIDOS

novedosas tecnologías de desarrollo, de forma que se puede considerar que estamos ante una de las
mejores herramientas visuales existentes.
Algunas de las características más destacables, entre las muchas que incorpora son: la posibilidad de
crear ejecutables en Código Nativo para incrementar la velocidad de ejecución; múltiples asistentes
para ayudarnos en las más variadas situaciones; creación de controles ActiveX; editor de código fuente
mejorado; creación de nuestros propios eventos; acceso a datos mediante OLE DB/ADO; nuevos
controles de datos optimizados para ADO; generador de informes propio (ya no es necesario
diseñarlos mediante Crystal Reports); jerarquía de objetos para la manipulación de ficheros, etc.

Tipos de proyectos
Al iniciar el entorno de Visual Basic, ya nos encontramos con la primera novedad. En esta versión
podemos elegir al comenzar el tipo de proyecto sobre el que vamos a trabajar entre los disponibles en
la ventana de diálogo inicial del producto (figura 3).

Figura 3. Ventana de diálogo inicial de Visual Basic 6.

•
•

EXE ActiveX. Ejecutable servidor OLE.

•

DLL ActiveX. DLL servidora OLE.

•

Control ActiveX. Permite crear un control de usuario con la Edición de Creación de
controles.

•

Asistente para aplicaciones de VB. Nos guía mediante una serie de pasos, en la
construcción de una aplicación, creando la funcionalidad básica, ahorrándonos el
trabajo más frecuente, de forma que sólo tengamos que incluir código en los puntos
que deseemos personalizar.

•

24

EXE estándar. Ejecutable habitual de VB.

Administrador de asistentes de VB. Permite configurar cada uno de los asistentes del
entorno.
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6

Más contenido relacionado

La actualidad más candente

Word 2013, uso básico
Word 2013, uso básicoWord 2013, uso básico
Word 2013, uso básico
rousmerytaipe
 
Guia de aprendizaje_semana2_word
Guia de aprendizaje_semana2_wordGuia de aprendizaje_semana2_word
Guia de aprendizaje_semana2_word
Helver Gilberto Parra Gonzalez
 
Formato ieee830
Formato ieee830Formato ieee830
Formato ieee830
DANIEL GUAQUETA
 
Especificación de requerimientos de software srs CURSO V AND V 7MO CICLO
Especificación de requerimientos de software srs CURSO V AND V 7MO CICLOEspecificación de requerimientos de software srs CURSO V AND V 7MO CICLO
Especificación de requerimientos de software srs CURSO V AND V 7MO CICLO
david grados
 
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
sheikl
 
Desarrollo del proyecto
Desarrollo del proyectoDesarrollo del proyecto
Desarrollo del proyecto
sabrosisimo69
 
SECCIONES DE WORD
SECCIONES DE WORDSECCIONES DE WORD
SECCIONES DE WORD
Mercy Adry
 
manual visual basic 01
manual visual basic 01manual visual basic 01
manual visual basic 01
Jhhoonnha Jimeru
 

La actualidad más candente (9)

Word 2013, uso básico
Word 2013, uso básicoWord 2013, uso básico
Word 2013, uso básico
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Guia de aprendizaje_semana2_word
Guia de aprendizaje_semana2_wordGuia de aprendizaje_semana2_word
Guia de aprendizaje_semana2_word
 
Formato ieee830
Formato ieee830Formato ieee830
Formato ieee830
 
Especificación de requerimientos de software srs CURSO V AND V 7MO CICLO
Especificación de requerimientos de software srs CURSO V AND V 7MO CICLOEspecificación de requerimientos de software srs CURSO V AND V 7MO CICLO
Especificación de requerimientos de software srs CURSO V AND V 7MO CICLO
 
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
490192 diseno-orientado-a-objetos-con-uml-by-raul-alarcon
 
Desarrollo del proyecto
Desarrollo del proyectoDesarrollo del proyecto
Desarrollo del proyecto
 
SECCIONES DE WORD
SECCIONES DE WORDSECCIONES DE WORD
SECCIONES DE WORD
 
manual visual basic 01
manual visual basic 01manual visual basic 01
manual visual basic 01
 

Destacado

Libro visual basic ii version oro
Libro visual basic ii version oroLibro visual basic ii version oro
Libro visual basic ii version oro
Alvaro Caal
 
ELABORACIÒN DE CRONOGRAMAS
ELABORACIÒN DE CRONOGRAMASELABORACIÒN DE CRONOGRAMAS
ELABORACIÒN DE CRONOGRAMAS
Berthamazon
 
Catalogo cables bt 2011
Catalogo cables bt 2011Catalogo cables bt 2011
Catalogo cables bt 2011
Prysmian Cables y Sistemas
 
Computo visula basic
Computo visula basicComputo visula basic
Computo visula basicdianaestefany
 
Mini Agenda Estudiantil
Mini Agenda Estudiantil Mini Agenda Estudiantil
Mini Agenda Estudiantil
bjpaz
 
Visual basic 6.0 Menu de Programas Cristian Pallares
Visual basic 6.0 Menu de Programas Cristian PallaresVisual basic 6.0 Menu de Programas Cristian Pallares
Visual basic 6.0 Menu de Programas Cristian Pallares
Cristian Pallares
 
Tutorial de instalación visual basic 6
Tutorial de instalación visual basic 6Tutorial de instalación visual basic 6
Tutorial de instalación visual basic 6
luisselis
 
Macros Visual Basic Para Excel
Macros Visual Basic Para ExcelMacros Visual Basic Para Excel
Macros Visual Basic Para Excel
Berthamazon
 
CreacióN De Aplicaciones Con Visual Basic 6
CreacióN De Aplicaciones Con Visual Basic 6CreacióN De Aplicaciones Con Visual Basic 6
CreacióN De Aplicaciones Con Visual Basic 6
Marcos Sánchez V
 
Electrónica fácil 1
Electrónica fácil 1Electrónica fácil 1
Electrónica fácil 1ABEL170
 
Electronica 100-circuitos
Electronica 100-circuitosElectronica 100-circuitos
Electronica 100-circuitosfedericoblanco
 
Como crear una base de datos con visual basic
Como crear una base de datos con visual basicComo crear una base de datos con visual basic
Como crear una base de datos con visual basicAlberto Vargas
 
Proyectos electrónica digital
Proyectos electrónica digitalProyectos electrónica digital
Proyectos electrónica digital
Oscar Ardila Chaparro
 
Fuentes conmutadas BASICO
Fuentes conmutadas BASICOFuentes conmutadas BASICO
Fuentes conmutadas BASICO
el___richard
 
Cuaderno del-tecnico-reparador-de-equipos-electronicos
Cuaderno del-tecnico-reparador-de-equipos-electronicosCuaderno del-tecnico-reparador-de-equipos-electronicos
Cuaderno del-tecnico-reparador-de-equipos-electronicos
Jimmy Checa
 
Aprende electronica desde_cero
Aprende electronica desde_ceroAprende electronica desde_cero
Aprende electronica desde_ceroCgiovanny Gomez
 
Manual de-computacion-basica
Manual de-computacion-basicaManual de-computacion-basica
Manual de-computacion-basica
CONSEJO DE LA MAGISTRATURA
 

Destacado (20)

Libro visual basic ii version oro
Libro visual basic ii version oroLibro visual basic ii version oro
Libro visual basic ii version oro
 
ELABORACIÒN DE CRONOGRAMAS
ELABORACIÒN DE CRONOGRAMASELABORACIÒN DE CRONOGRAMAS
ELABORACIÒN DE CRONOGRAMAS
 
Curso de visual basic 6
Curso de visual basic 6Curso de visual basic 6
Curso de visual basic 6
 
Catalogo cables bt 2011
Catalogo cables bt 2011Catalogo cables bt 2011
Catalogo cables bt 2011
 
Computo visula basic
Computo visula basicComputo visula basic
Computo visula basic
 
visual.basic
visual.basicvisual.basic
visual.basic
 
Mini Agenda Estudiantil
Mini Agenda Estudiantil Mini Agenda Estudiantil
Mini Agenda Estudiantil
 
Visual basic 6.0 Menu de Programas Cristian Pallares
Visual basic 6.0 Menu de Programas Cristian PallaresVisual basic 6.0 Menu de Programas Cristian Pallares
Visual basic 6.0 Menu de Programas Cristian Pallares
 
Tutorial de instalación visual basic 6
Tutorial de instalación visual basic 6Tutorial de instalación visual basic 6
Tutorial de instalación visual basic 6
 
Visual basic 6
Visual basic 6Visual basic 6
Visual basic 6
 
Macros Visual Basic Para Excel
Macros Visual Basic Para ExcelMacros Visual Basic Para Excel
Macros Visual Basic Para Excel
 
CreacióN De Aplicaciones Con Visual Basic 6
CreacióN De Aplicaciones Con Visual Basic 6CreacióN De Aplicaciones Con Visual Basic 6
CreacióN De Aplicaciones Con Visual Basic 6
 
Electrónica fácil 1
Electrónica fácil 1Electrónica fácil 1
Electrónica fácil 1
 
Electronica 100-circuitos
Electronica 100-circuitosElectronica 100-circuitos
Electronica 100-circuitos
 
Como crear una base de datos con visual basic
Como crear una base de datos con visual basicComo crear una base de datos con visual basic
Como crear una base de datos con visual basic
 
Proyectos electrónica digital
Proyectos electrónica digitalProyectos electrónica digital
Proyectos electrónica digital
 
Fuentes conmutadas BASICO
Fuentes conmutadas BASICOFuentes conmutadas BASICO
Fuentes conmutadas BASICO
 
Cuaderno del-tecnico-reparador-de-equipos-electronicos
Cuaderno del-tecnico-reparador-de-equipos-electronicosCuaderno del-tecnico-reparador-de-equipos-electronicos
Cuaderno del-tecnico-reparador-de-equipos-electronicos
 
Aprende electronica desde_cero
Aprende electronica desde_ceroAprende electronica desde_cero
Aprende electronica desde_cero
 
Manual de-computacion-basica
Manual de-computacion-basicaManual de-computacion-basica
Manual de-computacion-basica
 

Similar a Programacioncon Visual Basic 6

Manual de visual basic.net
Manual de visual basic.netManual de visual basic.net
Manual de visual basic.net
Jorge Gabriel Serpa
 
Visual Basic Net 2005 Eidos
Visual Basic Net 2005 EidosVisual Basic Net 2005 Eidos
Visual Basic Net 2005 Eidos
Karen Espejo Ruitón
 
Visual basic net
Visual basic netVisual basic net
Visual basic net
solucionesinformaticas
 
manual programacion visual_basic_net
 manual programacion visual_basic_net manual programacion visual_basic_net
manual programacion visual_basic_net
smailyn
 
Manual Visual Basic Net
Manual Visual Basic NetManual Visual Basic Net
Manual Visual Basic Net
Notaria Cisneros
 
Sdk Contpa Qi
Sdk Contpa QiSdk Contpa Qi
Sdk Contpa Qi
jo_mane
 
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...Camilo Lopez
 
Vb net
Vb netVb net
Programación Visual Basic Net de Eidos
Programación Visual Basic Net de EidosProgramación Visual Basic Net de Eidos
Programación Visual Basic Net de Eidos
Lekar Lekar
 
Visual Basic.net 2010
Visual Basic.net 2010 Visual Basic.net 2010
Visual Basic.net 2010
Davi_9
 
Programacion en visual basic.net rivera & g
Programacion en visual basic.net rivera & gProgramacion en visual basic.net rivera & g
Programacion en visual basic.net rivera & g
Santos Rivera Luján
 
Wix
WixWix
Curso de Visual Basic 5.0
Curso de Visual Basic 5.0Curso de Visual Basic 5.0
Curso de Visual Basic 5.0degarden
 
Delphi 2005. Kompendium programisty
Delphi 2005. Kompendium programistyDelphi 2005. Kompendium programisty
Delphi 2005. Kompendium programisty
Wydawnictwo Helion
 

Similar a Programacioncon Visual Basic 6 (20)

Manual de visual basic.net
Manual de visual basic.netManual de visual basic.net
Manual de visual basic.net
 
Visual Basic Net 2005 Eidos
Visual Basic Net 2005 EidosVisual Basic Net 2005 Eidos
Visual Basic Net 2005 Eidos
 
Visual basic net
Visual basic netVisual basic net
Visual basic net
 
manual programacion visual_basic_net
 manual programacion visual_basic_net manual programacion visual_basic_net
manual programacion visual_basic_net
 
Manual Visual Basic Net
Manual Visual Basic NetManual Visual Basic Net
Manual Visual Basic Net
 
Sdk Contpa Qi
Sdk Contpa QiSdk Contpa Qi
Sdk Contpa Qi
 
Visual
VisualVisual
Visual
 
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
Libro manual programacion-visual_basic_.net_(ilustrado_con_ejemplos)by_iberid...
 
Vb net
Vb netVb net
Vb net
 
Programación Visual Basic Net de Eidos
Programación Visual Basic Net de EidosProgramación Visual Basic Net de Eidos
Programación Visual Basic Net de Eidos
 
Visual Basic.net 2010
Visual Basic.net 2010 Visual Basic.net 2010
Visual Basic.net 2010
 
Programacion en visual basic.net rivera & g
Programacion en visual basic.net rivera & gProgramacion en visual basic.net rivera & g
Programacion en visual basic.net rivera & g
 
Lenguaje Html
Lenguaje HtmlLenguaje Html
Lenguaje Html
 
Ms project
Ms projectMs project
Ms project
 
69369
6936969369
69369
 
Wix
WixWix
Wix
 
Curso de Visual Basic 5.0
Curso de Visual Basic 5.0Curso de Visual Basic 5.0
Curso de Visual Basic 5.0
 
978 84-9839-226-5
978 84-9839-226-5978 84-9839-226-5
978 84-9839-226-5
 
Visual basicnet
Visual basicnetVisual basicnet
Visual basicnet
 
Delphi 2005. Kompendium programisty
Delphi 2005. Kompendium programistyDelphi 2005. Kompendium programisty
Delphi 2005. Kompendium programisty
 

Más de johnny herrera

Presentación de johnny herrera
Presentación de johnny herreraPresentación de johnny herrera
Presentación de johnny herrera
johnny herrera
 
Tiristores
TiristoresTiristores
Tiristores
johnny herrera
 
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900johnny herrera
 
Desarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-parteDesarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-partejohnny herrera
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetosjohnny herrera
 
13 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-113 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-1johnny herrera
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .netjohnny herrera
 
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
johnny herrera
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetosjohnny herrera
 
Programacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes AguilarProgramacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes Aguilarjohnny herrera
 
Practicas visualbasic60
Practicas visualbasic60Practicas visualbasic60
Practicas visualbasic60johnny herrera
 
Matematica universitaria
Matematica universitariaMatematica universitaria
Matematica universitariajohnny herrera
 
Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++johnny herrera
 

Más de johnny herrera (20)

Presentación de johnny herrera
Presentación de johnny herreraPresentación de johnny herrera
Presentación de johnny herrera
 
Tiristores
TiristoresTiristores
Tiristores
 
Programacion o.o.
Programacion o.o.Programacion o.o.
Programacion o.o.
 
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
 
Desarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-parteDesarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-parte
 
METODOS Y MODELOS POO
METODOS Y MODELOS POOMETODOS Y MODELOS POO
METODOS Y MODELOS POO
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos
 
13 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-113 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-1
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .net
 
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes AguilarProgramacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes Aguilar
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Tutorial de Visual
Tutorial de  VisualTutorial de  Visual
Tutorial de Visual
 
Practicas visualbasic60
Practicas visualbasic60Practicas visualbasic60
Practicas visualbasic60
 
Modulo Derivadas
Modulo DerivadasModulo Derivadas
Modulo Derivadas
 
Matematica 1 usb
Matematica 1 usbMatematica 1 usb
Matematica 1 usb
 
Matematica universitaria
Matematica universitariaMatematica universitaria
Matematica universitaria
 
Matematica1 usb
Matematica1 usbMatematica1 usb
Matematica1 usb
 
Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++
 

Último

Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
YasneidyGonzalez
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
LilianaRivera778668
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
MasielPMP
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docxSESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
QuispeJimenezDyuy
 

Último (20)

Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docxSESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
 

Programacioncon Visual Basic 6

  • 1. Desarrollo de software Texto diseñado para enseñar en profundidad a desarrollar aplicaciones basadas en lenguaje Visual Basic. El texto cubre tanto aspectos básicos como avanzados, es decir que no sólo se estudian los fundamentos del lenguaje sino que también se tratan en profundidad el acceso a datos, la programación orientada al objeto, los componentes ActiveX, el acceso al API, etc. Se trata de un manual de muy amplio contenido con alrededor de 1000 páginas de documentación, además de numerosos ejemplos listos para ser cargados desde Visual Basic. Entre los requisitos previos, conocimientos basta con de fundamentos de y conocer al programación menos un lenguaje, sea este el que sea y conocer el S.O. Windows a nivel de usuario. PROGRAMACIÓN CON VISUAL BASIC 6
  • 2.
  • 3. Programación con Visual Basic Versión 1.0.0 2000 © Grupo EIDOS www.LaLibreriaDigital.com
  • 4.
  • 5. Índice ÍNDICE................................................................................................................................................... 5 INTRODUCCIÓN ............................................................................................................................... 17 INTRODUCCIÓN A LA PROGRAMACIÓN EN WINDOWS CON VISUAL BASIC ........................................ 17 EL SISTEMA CONTROLA A LA APLICACIÓN......................................................................................... 18 INTERFAZ CONSISTENTE .................................................................................................................... 18 EVENTOS Y MENSAJES ....................................................................................................................... 18 LIBRERÍAS DE ENLACE DINÁMICO (DLL) .......................................................................................... 19 Centralizar el código en un único lugar........................................................................................ 19 Ahorro de recursos del sistema ..................................................................................................... 19 Independencia del lenguaje ........................................................................................................... 19 APLICACIONES SDI Y MDI ................................................................................................................ 20 OLE ................................................................................................................................................... 20 Vinculación.................................................................................................................................... 20 Incrustación ................................................................................................................................... 21 ACTIVEX............................................................................................................................................ 21 CONTROLES ACTIVEX Y MODELO COM / DCOM ............................................................................ 21 AUTOMATIZACIÓN ACTIVEX............................................................................................................. 22 PROGRAMACIÓN ORIENTADA A OBJETO EN WINDOWS...................................................................... 22 WINDOWS COMO SISTEMA OOP ........................................................................................................ 22 VISUAL BASIC................................................................................................................................... 23 DESDE SUS COMIENZOS...................................................................................................................... 23 LA SITUACIÓN ACTUAL ...................................................................................................................... 23 TIPOS DE PROYECTOS ......................................................................................................................... 24 APERTURA DE UN PROYECTO ............................................................................................................. 25
  • 6. Programación con Visual Basic 6 © Grupo EIDOS COMPONENTES BÁSICOS DE UN PROGRAMA VISUAL BASIC .............................................................. 26 Proyecto......................................................................................................................................... 26 Formularios ................................................................................................................................... 26 Controles ....................................................................................................................................... 26 Propiedades ................................................................................................................................... 27 Eventos y métodos.......................................................................................................................... 28 Funciones y procedimientos .......................................................................................................... 28 LA PRIMERA APLICACIÓN................................................................................................................... 28 DISEÑAR EL FORMULARIO ................................................................................................................. 29 GRABAR EL FORMULARIO .................................................................................................................. 32 GRABAR EL PROYECTO ...................................................................................................................... 33 EL PROCEDIMIENTO INICIAL SUB MAIN() .......................................................................................... 34 ESTABLECER EL OBJETO INICIAL DE LA APLICACIÓN......................................................................... 35 EJECUTAR EL PROYECTO.................................................................................................................... 36 CONTROLES ESTÁNDAR ..................................................................................................................... 37 Insertar un control en el formulario .............................................................................................. 37 TextBox .......................................................................................................................................... 38 Label .............................................................................................................................................. 39 CheckBox ....................................................................................................................................... 40 Frame............................................................................................................................................. 41 OptionButton.................................................................................................................................. 42 ListBox ........................................................................................................................................... 43 ComboBox...................................................................................................................................... 44 CommandButton ............................................................................................................................ 45 Manipulación de los controles mediante código ........................................................................... 45 CREACIÓN DEL EJECUTABLE DEL PROGRAMA ................................................................................... 47 DISTRIBUCIÓN DE LA APLICACIÓN ..................................................................................................... 48 AMPLIAR LA PRIMERA APLICACIÓN ................................................................................................... 53 INCLUIR UN FORMULARIO MDI ......................................................................................................... 54 CREAR UN MENÚ PARA EL FORMULARIO MDI................................................................................... 57 OPERACIONES ESTÁNDAR MEDIANTE EL CONTROL COMMONDIALOG .............................................. 60 Color.............................................................................................................................................. 61 Impresión ....................................................................................................................................... 62 Tipo de letra................................................................................................................................... 64 Apertura de ficheros ...................................................................................................................... 66 Grabación de ficheros ................................................................................................................... 69 Ayuda ............................................................................................................................................. 69 AGREGAR FUNCIONALIDAD AL FORMULARIO PRINCIPAL .................................................................. 71 ImageList ....................................................................................................................................... 71 Toolbar .......................................................................................................................................... 73 StatusBar ....................................................................................................................................... 77 CREAR UNA VENTANA SPLASH O DE PRESENTACIÓN ........................................................................ 80 Timer.............................................................................................................................................. 82 EL LENGUAJE ................................................................................................................................... 85 INTRODUCCIÓN .................................................................................................................................. 85 VISUAL BASIC PARA APLICACIONES (VBA) ...................................................................................... 85 VBA Y VISUAL BASIC 6 .................................................................................................................... 86 EMPLAZAMIENTO DEL CÓDIGO DE LA APLICACIÓN ........................................................................... 86 COMENTARIOS ................................................................................................................................... 86 MSGBOX() ......................................................................................................................................... 87 INPUTBOX() ....................................................................................................................................... 89 VARIABLES ........................................................................................................................................ 90 Declaración ................................................................................................................................... 90 6
  • 7. © Grupo EIDOS 1. Introducción Tipo............................................................................................................................................ 91 Ámbito............................................................................................................................................ 93 Denominación................................................................................................................................ 95 CONSTANTES ..................................................................................................................................... 96 EL TIPO ENUMERADO ......................................................................................................................... 98 CONVERSIÓN DE TIPOS..................................................................................................................... 100 CONTINUACIÓN DE LÍNEA DE CÓDIGO ............................................................................................. 102 INSTRUCCIONES EN UNA LÍNEA........................................................................................................ 103 EXPRESIONES ................................................................................................................................... 103 OPERADORES ................................................................................................................................... 103 Aritméticos................................................................................................................................... 104 Comparación ............................................................................................................................... 106 Concatenación ............................................................................................................................. 110 Lógicos......................................................................................................................................... 111 PRIORIDAD DE OPERADORES ............................................................................................................ 117 ARRAYS ........................................................................................................................................... 118 Declaración y asignación de valores........................................................................................... 118 Devolución de arrays desde funciones ........................................................................................ 120 Establecer los límites de los índices ............................................................................................ 120 Arrays dinámicos ......................................................................................................................... 122 Manipulación de arrays multidimensionales............................................................................... 124 Seleccionar información en un array .......................................................................................... 125 TIPOS DEFINIDOS POR EL USUARIO .................................................................................................. 126 PROCEDIMIENTOS ............................................................................................................................ 128 Sub ............................................................................................................................................... 128 Function....................................................................................................................................... 130 Sub Main(). Un procedimiento especial ...................................................................................... 131 ESTRUCTURAS DE CONTROL ............................................................................................................ 132 If...Then...Else...End If ................................................................................................................. 132 Select Case...End Select............................................................................................................... 134 For...Next ..................................................................................................................................... 136 Do...Loop ..................................................................................................................................... 137 While...Wend................................................................................................................................ 139 For Each...Next............................................................................................................................ 140 With...End With............................................................................................................................ 141 Goto ............................................................................................................................................. 142 DIRECTIVAS ..................................................................................................................................... 143 #If...Then...#Else...#End If ........................................................................................................... 143 MANEJO DE ERRORES ....................................................................................................................... 144 Err................................................................................................................................................ 145 On Error ...................................................................................................................................... 146 FUNCIONES MÁS HABITUALES ......................................................................................................... 148 Numéricas.................................................................................................................................... 148 Cadenas de caracteres................................................................................................................. 150 Fecha y hora................................................................................................................................ 163 EL ENTORNO DE DESARROLLO (IDE)..................................................................................... 169 EL NUEVO ASPECTO DE NUESTRA MESA DE TRABAJO ...................................................................... 169 MENÚ ARCHIVO ............................................................................................................................... 170 MENÚ EDICIÓN ................................................................................................................................ 172 MENÚ VER ....................................................................................................................................... 175 MENÚ PROYECTO ............................................................................................................................ 183 MENÚ FORMATO .............................................................................................................................. 185 MENÚ DEPURACIÓN......................................................................................................................... 188 7
  • 8. Programación con Visual Basic 6 © Grupo EIDOS MENÚ EJECUTAR ............................................................................................................................. 189 MENÚ CONSULTA ............................................................................................................................ 190 MENÚ DIAGRAMA ............................................................................................................................ 193 MENÚ HERRAMIENTAS .................................................................................................................... 194 MENÚ COMPLEMENTOS ................................................................................................................... 195 MENÚ VENTANA .............................................................................................................................. 196 MENÚ AYUDA .................................................................................................................................. 197 VENTANA DE PROYECTO ................................................................................................................. 197 EDITOR DE FORMULARIOS ............................................................................................................... 198 Insertar controles......................................................................................................................... 199 Modificar controles ..................................................................................................................... 200 Mover controles ........................................................................................................................... 200 Seleccionar controles................................................................................................................... 200 Cortar, Copiar y Pegar controles................................................................................................ 201 Arrays de controles...................................................................................................................... 201 Manipulación global de controles ............................................................................................... 201 Formularios MDI......................................................................................................................... 203 EDITOR DE CÓDIGO .......................................................................................................................... 203 Lista de objetos............................................................................................................................ 204 Lista de procedimientos............................................................................................................... 204 Barra de división ......................................................................................................................... 206 Visualizar el código ..................................................................................................................... 206 Marcadores y barra de margen................................................................................................... 206 Configuración del Editor de Código ........................................................................................... 207 Configuración de formato del Editor de Código ......................................................................... 210 VENTANAS COMPLEMENTARIAS ...................................................................................................... 210 Ventana de Propiedades .............................................................................................................. 211 Cuadro de herramientas .............................................................................................................. 211 Examinador de objetos ................................................................................................................ 215 Ventana de Posición del formulario ............................................................................................ 217 Paleta de colores ......................................................................................................................... 217 Anclaje de ventanas ..................................................................................................................... 218 Personalizar las barras de herramientas .................................................................................... 219 DISEÑO DE MENÚS ........................................................................................................................ 223 DESCRIPCIÓN DE UN MENÚ .............................................................................................................. 223 CARACTERÍSTICAS DE UN MENÚ ...................................................................................................... 223 PROPIEDADES DE UN CONTROL MENÚ ............................................................................................. 224 EL EDITOR DE MENÚS ...................................................................................................................... 224 AÑADIR CÓDIGO A UNA OPCIÓN DE MENÚ ....................................................................................... 226 CREACIÓN DE UN MENÚ ................................................................................................................... 226 MENÚS EN FORMULARIOS MDI ....................................................................................................... 231 EL REGISTRO WINDOWS ............................................................................................................ 235 DE LOS FICHEROS INI AL REGISTRO ................................................................................................ 235 EL REGISTRO POR DENTRO ............................................................................................................... 235 MANIPULACIÓN DE LAS ENTRADAS DEL REGISTRO ......................................................................... 236 TRATAMIENTO DE DATOS CON ACTIVEX DATA OBJECTS (ADO) ................................ 241 INTRODUCCIÓN A LA PROGRAMACIÓN CON BASES DE DATOS ......................................................... 241 DISEÑO DE LA BASE DE DATOS ........................................................................................................ 242 Establecer el modelo de la aplicación......................................................................................... 242 Analizar que información necesita la aplicación ........................................................................ 242 Establecer la información en tablas ............................................................................................ 242 8
  • 9. © Grupo EIDOS 1. Introducción Normalización de la base de datos .............................................................................................. 243 Relacionar las tablas ................................................................................................................... 244 Establecer la integridad referencial ............................................................................................ 245 Definir índices para las tablas..................................................................................................... 246 Definir validaciones en la inserción de datos ............................................................................. 246 ACCESO A INFORMACIÓN BAJO CUALQUIER FORMATO ................................................................... 246 ACCESO UNIVERSAL A DATOS (UDA) ............................................................................................ 247 OLE DB........................................................................................................................................... 247 ACTIVEX DATA OBJECTS (ADO) .................................................................................................... 249 Connection................................................................................................................................... 250 Propiedades.............................................................................................................................. 250 Métodos ................................................................................................................................... 253 Command..................................................................................................................................... 258 Propiedades.............................................................................................................................. 258 Métodos ................................................................................................................................... 260 Parameter .................................................................................................................................... 260 Propiedades.............................................................................................................................. 260 Métodos ................................................................................................................................... 264 Recordset ..................................................................................................................................... 264 Propiedades.............................................................................................................................. 264 Métodos ................................................................................................................................... 269 Field............................................................................................................................................. 276 Propiedades.............................................................................................................................. 276 Métodos ................................................................................................................................... 277 Property ....................................................................................................................................... 277 Propiedades.............................................................................................................................. 278 Error ............................................................................................................................................ 278 Propiedades.............................................................................................................................. 278 EL ADO DATA CONTROL ................................................................................................................ 279 VALIDACIONES A NIVEL DE MOTOR ................................................................................................. 288 EL CONTROL DATAGRID .................................................................................................................. 289 REFLEXIONES SOBRE LOS CONTROLES ENLAZADOS A DATOS ......................................................... 292 CONTROLES ENLAZADOS Y CÓDIGO, UN PUNTO INTERMEDIO ......................................................... 293 La aplicación de ejemplo............................................................................................................. 293 El formulario de datos ................................................................................................................. 293 El control DataCombo................................................................................................................. 294 El código a incluir ....................................................................................................................... 295 La aplicación en funcionamiento................................................................................................. 296 CREACIÓN DE OBJETOS ADO........................................................................................................... 296 Utilizar los objetos principales del modelo ................................................................................. 296 Modificar la información a través del objeto Connection........................................................... 297 Consultas de registros usando Connection ................................................................................. 298 Reserva de conexiones................................................................................................................. 299 Procedimientos almacenados desde objetos Command .............................................................. 299 Modificar datos desde objetos Command.................................................................................... 301 Manejo de un Recordset sin usar objetos superiores .................................................................. 301 GUARDAR LA RUTA DE DATOS EN EL REGISTRO DE WINDOWS ....................................................... 302 ÍNDICES ............................................................................................................................................ 305 ÓRDENES.......................................................................................................................................... 306 FILTROS............................................................................................................................................ 308 BÚSQUEDA DE REGISTROS ............................................................................................................... 310 NAVEGACIÓN POR LOS REGISTROS .................................................................................................. 312 VALIDACIÓN DE CONTROLES ........................................................................................................... 314 CREAR CONTROLES EN TIEMPO DE EJECUCIÓN ................................................................................ 316 9
  • 10. Programación con Visual Basic 6 © Grupo EIDOS EDICIÓN DE REGISTROS.................................................................................................................... 320 Agregar con Recordset ................................................................................................................ 322 Agregar con Connection.............................................................................................................. 323 Modificar con Recordset.............................................................................................................. 324 Modificar con Connection ........................................................................................................... 324 Borrar con Recordset .................................................................................................................. 325 Borrar con Connection ................................................................................................................ 326 TRANSACCIONES .............................................................................................................................. 326 CONECTAR MEDIANTE UN ORIGEN DE DATOS ODBC...................................................................... 330 Nombre de fuente de datos o DSN de usuario (Data Source Name) ........................................... 330 Fichero .DSN con la información de conexión............................................................................ 334 Conectar sin DSN, sólo con código ............................................................................................. 337 EJECUTAR UN PROCEDIMIENTO ALMACENADO ............................................................................... 338 ESQUEMAS ....................................................................................................................................... 339 ENLAZAR CONTROLES A DATOS EN TIEMPO DE EJECUCIÓN ............................................................. 340 ENLAZAR CONTROLES DE VARIOS FORMULARIOS A UN MISMO ORIGEN DE DATOS ......................... 345 EL ENTORNO DE DATOS (DATA ENVIRONMENT) ............................................................................ 348 Agregar un Entorno de Datos...................................................................................................... 348 Crear una conexión ..................................................................................................................... 349 Crear un comando ....................................................................................................................... 351 Agregar código a los objetos de datos......................................................................................... 352 Otros tipos de comandos ............................................................................................................. 353 Simplificar el desarrollo de un mantenimiento de datos ............................................................. 355 Manipular los elementos de un Entorno de Datos en tiempo de ejecución................................. 360 Relacionar comandos del Entorno de Datos ............................................................................... 361 Agregados.................................................................................................................................... 363 Agrupar filas sobre la base de un campo .................................................................................... 364 Contar las filas de un campo agrupado....................................................................................... 366 VISTA DATOS (DATA VIEW) ............................................................................................................ 367 Visualizar las conexiones del Entorno de Datos en Vista Datos................................................. 367 Crear un Entorno de Datos desde Vista Datos............................................................................ 368 Crear un vínculo desde Vista Datos ............................................................................................ 368 Acceder a los elementos contenidos en Vista Datos.................................................................... 370 Arrastrar y soltar desde Vista Datos ........................................................................................... 371 ASISTENTE PARA CREAR FORMULARIOS DE DATOS ......................................................................... 372 IMPRESIÓN ...................................................................................................................................... 377 TÉCNICAS DE IMPRESIÓN EN VISUAL BASIC .................................................................................... 377 IMPRESIÓN MEDIANTE OBJETOS ....................................................................................................... 377 LA COLECCIÓN PRINTERS ................................................................................................................ 378 EL OBJETO PRINTER ......................................................................................................................... 378 Cambiar el tipo de fuente ............................................................................................................ 380 Seleccionar la impresora y el tipo de letra mediante el control CommonDialog ....................... 380 OTRAS PROPIEDADES Y MÉTODOS DEL OBJETO PRINTER ................................................................ 382 Propiedades ................................................................................................................................. 382 Métodos ....................................................................................................................................... 385 DATA REPORT (DISEÑADOR DE INFORMES)..................................................................................... 385 ELEMENTOS DEL DISEÑADOR DE INFORMES .................................................................................... 386 EL OBJETO DATAREPORT ................................................................................................................ 386 Propiedades ................................................................................................................................. 386 Métodos ....................................................................................................................................... 387 Eventos......................................................................................................................................... 388 EL OBJETO SECTION ......................................................................................................................... 389 Propiedades ................................................................................................................................. 390 10
  • 11. © Grupo EIDOS 1. Introducción CONTROLES DEL DISEÑADOR DE INFORMES .................................................................................... 390 CREAR UN INFORME ......................................................................................................................... 392 Crear la fuente de datos .............................................................................................................. 393 Agregar un diseñador de informes al proyecto ........................................................................... 393 Conectar el informe con una fuente de datos .............................................................................. 394 Insertar campos en el informe ..................................................................................................... 394 Previsualizar el informe .............................................................................................................. 396 CANCELAR EL PROCESO DE IMPRESIÓN ........................................................................................... 397 LA VENTANA DE PREVISUALIZACIÓN .............................................................................................. 398 MEJORAR EL ASPECTO DEL INFORME............................................................................................... 398 Título............................................................................................................................................ 398 Formas gráficas........................................................................................................................... 400 Imágenes...................................................................................................................................... 400 Número de página........................................................................................................................ 401 Fecha y hora................................................................................................................................ 401 PRESENTACIÓN DE DATOS AGRUPADOS JERÁRQUICAMENTE .......................................................... 402 EL CONTROL RPTFUNCTION ............................................................................................................ 405 INFORMES CON SELECCIÓN DE REGISTROS ...................................................................................... 407 EXPORTAR UN INFORME................................................................................................................... 409 Propiedades ................................................................................................................................. 410 CRYSTAL REPORTS .......................................................................................................................... 411 COMENZANDO CON CRYSTAL REPORTS .......................................................................................... 411 Creación de un nuevo informe..................................................................................................... 412 Selección de la base de datos ...................................................................................................... 413 Secciones del informe .................................................................................................................. 413 Insertar campos en el informe ..................................................................................................... 414 Previsualizar el informe .............................................................................................................. 416 COMPLETANDO EL INFORME ............................................................................................................ 417 Título............................................................................................................................................ 417 Dibujo .......................................................................................................................................... 418 Imagen ......................................................................................................................................... 419 Ajustar sección............................................................................................................................. 420 Número de página y fecha del informe........................................................................................ 420 CONFIGURACIÓN DEL INFORME ....................................................................................................... 422 MANIPULACIÓN DE LA BASE DE DATOS CONECTADA AL INFORME ................................................. 423 Establecer ubicación ................................................................................................................... 423 Comprobar la base de datos........................................................................................................ 423 SELECCIÓN DE REGISTROS ............................................................................................................... 424 ORDEN DE LOS REGISTROS ............................................................................................................... 426 SELECCIÓN DE CAMPOS ................................................................................................................... 427 FÓRMULAS ....................................................................................................................................... 427 CREACIÓN DE UN RESUMEN ............................................................................................................. 430 INSERTAR UN SUBTOTAL ................................................................................................................. 431 ASISTENTES PARA LA CREACIÓN DE INFORMES ............................................................................... 432 EL CONTROL CRYSTAL REPORT....................................................................................................... 435 OBTENCIÓN DE LOS DATOS DESDE UNA TABLA INTERMEDIA .......................................................... 440 EL DEPURADOR ............................................................................................................................. 445 ¿QUÉ ES UN DEPURADOR?................................................................................................................ 445 ACCIONES BÁSICAS .......................................................................................................................... 446 MODO DE INTERRUPCIÓN ................................................................................................................. 446 PUNTOS DE INTERRUPCIÓN .............................................................................................................. 446 EJECUCIÓN PASO A PASO.................................................................................................................. 448 INSPECCIONES .................................................................................................................................. 449 11
  • 12. Programación con Visual Basic 6 © Grupo EIDOS La ventana de Inspección ............................................................................................................ 450 Inspección rápida ........................................................................................................................ 451 LA VENTANA INMEDIATO ................................................................................................................ 451 LA VENTANA LOCALES .................................................................................................................... 452 PILA DE LLAMADAS ......................................................................................................................... 454 PROGRAMACIÓN ORIENTADA A OBJETO (OOP) ................................................................ 457 ¿QUÉ VENTAJAS APORTA LA PROGRAMACIÓN ORIENTADA A OBJETOS? ......................................... 457 OBJETOS ........................................................................................................................................... 458 CLASES............................................................................................................................................. 459 CLASES ABSTRACTAS....................................................................................................................... 460 RELACIONES ENTRE OBJETOS .......................................................................................................... 460 Herencia ...................................................................................................................................... 460 Pertenencia.................................................................................................................................. 461 Utilización.................................................................................................................................... 461 ELEMENTOS BÁSICOS DE UN SISTEMA OOP..................................................................................... 461 Encapsulación.............................................................................................................................. 461 Polimorfismo................................................................................................................................ 461 Herencia ...................................................................................................................................... 462 REUTILIZACIÓN ................................................................................................................................ 462 CREACIÓN DE CLASES ...................................................................................................................... 462 Crear un módulo de clase............................................................................................................ 462 Definir las propiedades de la clase ............................................................................................. 463 Acceder a las propiedades de la clase......................................................................................... 463 ¿Qué son los procedimientos Property?...................................................................................... 464 Tipos de procedimientos Property............................................................................................... 464 Ventajas de los procedimientos Property .................................................................................... 467 Establecer una propiedad como predeterminada........................................................................ 470 Crear los métodos de la clase...................................................................................................... 471 ¿Cuándo crear un procedimiento Property o un método? .......................................................... 472 CREAR OBJETOS DE UNA CLASE ....................................................................................................... 472 Tipificación de variables ............................................................................................................. 473 Instanciar un objeto..................................................................................................................... 474 Uso de propiedades y métodos .................................................................................................... 475 Eliminar el objeto ........................................................................................................................ 476 LA PALABRA CLAVE ME .................................................................................................................. 476 EMPLEAR VALORES CONSTANTES EN UNA CLASE ........................................................................... 479 EVENTOS PREDEFINIDOS PARA UNA CLASE ..................................................................................... 481 COLECCIONES .................................................................................................................................. 481 Insertar un módulo de clase ........................................................................................................ 482 Eventos de creación/destrucción del objeto Collection............................................................... 482 Procedimientos Property para la colección ................................................................................ 482 Métodos para la colección........................................................................................................... 483 Incorporar nuevas funcionalidades a la colección...................................................................... 485 Recorrer la colección mediante For Each...Next ........................................................................ 485 EL OBJETO DICTIONARY .................................................................................................................. 488 Agregar elementos al diccionario................................................................................................ 490 Obtener un elementos del diccionario ......................................................................................... 490 Recorrer la información del diccionario ..................................................................................... 491 Comprobar existencia de elementos ............................................................................................ 491 Borrar un elemento del diccionario............................................................................................. 492 Borrar todos los elementos del diccionario................................................................................. 492 EVENTOS PERSONALIZADOS ............................................................................................................ 492 INTERFACES ..................................................................................................................................... 495 12
  • 13. © Grupo EIDOS 1. Introducción Creación de un interfaz ............................................................................................................... 496 Implementar el interfaz................................................................................................................ 497 Utilizar un interfaz implementado en una clase .......................................................................... 499 Polimorfismo mediante Interfaces............................................................................................... 501 Herencia mediante Interfaces...................................................................................................... 503 Herencia sin utilizar interfaces en la aplicación......................................................................... 506 PROCEDIMIENTOS FRIEND ............................................................................................................... 508 MANIPULACIÓN INDIRECTA DE OBJETOS; LA FUNCIÓN CALLBYNAME()........................................ 509 FORMULARIOS CON "CLASE"........................................................................................................... 510 VARIABLES GLOBALES DE FORMULARIO ......................................................................................... 515 UTILIDADES Y HERRAMIENTAS PARA EL MANEJO DE CLASES ......................................................... 516 Generador de clases (Class Wizard) ........................................................................................... 516 Examinador de objetos (Object Browser) ................................................................................... 519 OBJETOS DEL SISTEMA ..................................................................................................................... 520 ACTIVEX........................................................................................................................................... 523 ¿QUÉ ES ACTIVEX?.......................................................................................................................... 523 COMPONENTES ACTIVEX ................................................................................................................ 524 ACTIVEX DLL ................................................................................................................................. 524 ACTIVEX EXE ................................................................................................................................. 525 CONTROL ACTIVEX ......................................................................................................................... 526 DOCUMENTO ACTIVEX.................................................................................................................... 526 DCOM ............................................................................................................................................. 526 AUTOMATIZACIÓN REMOTA ............................................................................................................ 526 CREACIÓN DE COMPONENTES ACTIVEX DLL Y EXE ..................................................................... 526 Establecer el tipo de componente ................................................................................................ 527 Propiedades del componente ....................................................................................................... 527 Clases del componente ................................................................................................................ 529 Creación de formularios en el componente................................................................................. 529 Procedimiento Main de entrada .................................................................................................. 530 COMPATIBILIDAD DE VERSIONES ..................................................................................................... 530 DESARROLLO DE UN COMPONENTE ACTIVEX EXE ........................................................................ 531 Clase Cliente................................................................................................................................ 532 Formulario frmClientes ............................................................................................................... 536 Procedimiento Main .................................................................................................................... 537 USO DE UN COMPONENTE ACTIVEX EXE DESDE UNA APLICACIÓN CLIENTE ................................. 538 CREATEOBJECT()............................................................................................................................. 541 REDUCCIÓN DE LA COMUNICACIÓN ENTRE PROCESOS .................................................................... 541 MEJORAR EL GUIADO DE DATOS ENTRE PROCESOS .......................................................................... 542 LA PROPIEDAD INSTANCING ............................................................................................................ 544 Private ......................................................................................................................................... 544 PublicNotCreatable ..................................................................................................................... 544 SINGLEUSE ...................................................................................................................................... 545 GlobalSingleUse .......................................................................................................................... 545 MultiUse ...................................................................................................................................... 545 GlobalMultiUse ........................................................................................................................... 545 PROGRAMACIÓN MULTIHEBRA ........................................................................................................ 545 DESARROLLO DE UN COMPONENTE ACTIVEX DLL ........................................................................ 546 Diseño de las clases..................................................................................................................... 547 TRABAJAR CON UN GRUPO DE PROYECTOS ...................................................................................... 552 DESARROLLO DE LA APLICACIÓN CLIENTE PARA UN COMPONENTE ACTIVEX DLL....................... 553 COMPILAR UN COMPONENTE DE CÓDIGO ACTIVEX ........................................................................ 559 DISTRIBUIR UN COMPONENTE DE CÓDIGO ACTIVEX....................................................................... 560 AUTOMATIZACIÓN ACTIVEX........................................................................................................... 560 13
  • 14. Programación con Visual Basic 6 © Grupo EIDOS CONEXIÓN CON OFFICE. USO DE WORD DESDE VISUAL BASIC ...................................................... 561 OFFICE LLAMA AL CÓDIGO DE VISUAL BASIC ................................................................................. 564 OBJETOS INSERTABLES .................................................................................................................... 568 EL CONTROL CONTENEDOR OLE..................................................................................................... 572 frmIncrusta .................................................................................................................................. 573 frmVincula ................................................................................................................................... 575 FrmEjecInc - frmEjecVinc........................................................................................................... 576 CONTROLES ACTIVEX ..................................................................................................................... 577 Diseño del control........................................................................................................................ 578 Crear el interfaz del control ........................................................................................................ 578 El código del control ................................................................................................................... 579 Redimensionar el control............................................................................................................. 581 Eventos notificados por el control ............................................................................................... 582 Creación de propiedades............................................................................................................. 584 Eventos del control ...................................................................................................................... 585 Páginas de propiedades............................................................................................................... 588 Configurar una página de propiedades estándar........................................................................ 593 Uso del control en un formulario ................................................................................................ 594 Uso del control en una página web ............................................................................................. 595 ASISTENTE PARA LA CREACIÓN DE CONTROLES .............................................................................. 596 Asistente para páginas de propiedades ....................................................................................... 601 Compilación y distribución.......................................................................................................... 604 DOCUMENTOS ACTIVEX.................................................................................................................. 604 Documento ActiveX ..................................................................................................................... 604 Servidor de Documentos ActiveX ................................................................................................ 605 Creación de un Servidor de Documentos ActiveX....................................................................... 605 Visualización de un documento ActiveX...................................................................................... 609 Compilar el proyecto ................................................................................................................... 610 Distribución de la aplicación servidora y documentos ............................................................... 611 TRATAMIENTO AVANZADO DE DATOS CON ADO.............................................................. 617 CLASES ORIENTADAS A DATOS ........................................................................................................ 617 Proveedor de datos ...................................................................................................................... 617 Consumidor de datos ................................................................................................................... 618 BindingCollection ........................................................................................................................ 618 CREAR UNA CLASE PROVEEDORA DE DATOS ................................................................................... 618 CREAR UNA CLASE CONSUMIDORA DE DATOS ................................................................................. 620 PROVEEDOR DE DATOS CON LA INFORMACIÓN EN UN FORMATO DISTINTO .................................... 622 TRABAJAR CON VARIOS MIEMBROS DE DATOS ................................................................................ 629 CREACIÓN DE UN CONTROL PERSONALIZADO ORIENTADO A DATOS ............................................... 633 Interfaz del control ...................................................................................................................... 634 Variables y procedimientos para propiedades ............................................................................ 634 Código del UserControl .............................................................................................................. 636 Botones de navegación ................................................................................................................ 637 Botones de edición....................................................................................................................... 638 El proyecto para pruebas ............................................................................................................ 639 El formulario de prueba .............................................................................................................. 639 EL CONTROL DATAREPEATER ......................................................................................................... 641 MODELADO DE DATOS (DATA SHAPING)......................................................................................... 646 Modelado simple.......................................................................................................................... 647 El control Hierarchical FlexGrid................................................................................................ 648 Obtener varios detalles desde una instrucción principal ............................................................ 650 Recuperar datos desde varios niveles de profundidad ................................................................ 651 Realizar cálculos mediante modelado de datos........................................................................... 652 14
  • 15. © Grupo EIDOS 1. Introducción MANIPULACIÓN DE FICHEROS................................................................................................. 655 ¿POR QUÉ USAR FICHEROS? ............................................................................................................. 655 APERTURA DE UN FICHERO .............................................................................................................. 656 CIERRE DE UN FICHERO.................................................................................................................... 657 MODOS DE ACCESO A FICHEROS ...................................................................................................... 657 ACCESO SECUENCIAL ...................................................................................................................... 658 Apertura....................................................................................................................................... 658 Lectura......................................................................................................................................... 658 Escritura ...................................................................................................................................... 661 ACCESO ALEATORIO ........................................................................................................................ 664 Apertura....................................................................................................................................... 664 Escritura ...................................................................................................................................... 664 Lectura......................................................................................................................................... 665 ACCESO BINARIO ............................................................................................................................. 666 Apertura....................................................................................................................................... 667 Escritura ...................................................................................................................................... 667 Lectura......................................................................................................................................... 667 OTRAS INSTRUCCIONES PARA MANEJO DE FICHEROS ...................................................................... 668 OBJETOS PARA EL MANEJO DE FICHEROS......................................................................................... 672 Drive ............................................................................................................................................ 672 Propiedades.............................................................................................................................. 673 Folder .......................................................................................................................................... 674 Propiedades.............................................................................................................................. 674 Métodos ................................................................................................................................... 675 File............................................................................................................................................... 678 FileSystemObject ......................................................................................................................... 679 Propiedades.............................................................................................................................. 679 Métodos ................................................................................................................................... 679 TextStream ................................................................................................................................... 685 Propiedades.............................................................................................................................. 685 Métodos ................................................................................................................................... 686 ACCESO AL API DE WINDOWS DESDE VISUAL BASIC....................................................... 689 QUÉ HACER CUANDO CON VISUAL BASIC NO SE PUEDE .................................................................. 689 ¿QUÉ ES UN API? ............................................................................................................................. 689 DLL, EL SOPORTE FÍSICO DEL API................................................................................................... 690 LA INSTRUCCIÓN DECLARE ............................................................................................................. 691 EL VISOR DE API ............................................................................................................................. 693 DECLARACIÓN DE FUNCIONES QUE MANEJAN CADENAS ................................................................. 696 DECLARACIONES DE TIPO ESTRICTO. EVITAR EL USO DE "AS ANY" ............................................... 696 CREAR DECLARACIONES SEGURAS MEDIANTE UNA FUNCIÓN "ENVOLVENTE" ............................... 700 MANIPULACIÓN DE MENSAJES ......................................................................................................... 701 Cómo son los mensajes................................................................................................................ 701 Enviar mensajes........................................................................................................................... 702 SUBCLASIFICACIÓN. PROCESAR LOS MENSAJES QUE ENVÍA EL SISTEMA ........................................ 704 Subclasificación para una ventana.............................................................................................. 704 Subclasificación para un control................................................................................................. 708 ALGUNOS EJEMPLOS ADICIONALES ................................................................................................. 712 GLOSARIO DE TÉRMINOS .......................................................................................................... 719 NORMATIVA DE CODIFICACIÓN ....................................................................................................... 719 TRATAMIENTO DE DATOS CON VISUAL BASIC 5 ............................................................... 725 INTRODUCCIÓN A LA PROGRAMACIÓN CON BASES DE DATOS ......................................................... 725 15
  • 16. Programación con Visual Basic 6 © Grupo EIDOS DISEÑO DE LA BASE DE DATOS ........................................................................................................ 726 Establecer el modelo de la aplicación......................................................................................... 726 Analizar que información necesita la aplicación ........................................................................ 726 Establecer la información en tablas ............................................................................................ 726 Normalización de la base de datos .............................................................................................. 727 Relacionar las tablas ................................................................................................................... 728 Establecer la integridad referencial ............................................................................................ 730 Definir índices para las tablas..................................................................................................... 730 Definir validaciones en la inserción de datos ............................................................................. 730 EL MOTOR JET .................................................................................................................................. 731 EL CONTROL DATA .......................................................................................................................... 732 VALIDACIONES A NIVEL DE MOTOR ................................................................................................. 736 EL CONTROL DBGRID ...................................................................................................................... 737 REFLEXIONES SOBRE LOS CONTROLES ENLAZADOS A DATOS ......................................................... 740 CONTROLES ENLAZADOS Y CÓDIGO, UN PUNTO INTERMEDIO ......................................................... 741 La aplicación de ejemplo............................................................................................................. 741 El formulario de datos ................................................................................................................. 741 El control DBCombo ................................................................................................................... 742 El código a incluir ....................................................................................................................... 742 La aplicación en funcionamiento................................................................................................. 744 OBJETOS DE ACCESO A DATOS (DAO)............................................................................................ 744 GUARDAR LA RUTA DE DATOS EN EL REGISTRO DE WINDOWS ....................................................... 744 APERTURA DE UNA BASE DE DATOS ................................................................................................ 746 EL OBJETO RECORDSET ................................................................................................................... 749 CONECTANDO MEDIANTE ODBCDIRECT ........................................................................................ 752 USO DE CONTROLADORES ISAM..................................................................................................... 753 OTRAS OPERACIONES CON DAO...................................................................................................... 754 ÍNDICES ............................................................................................................................................ 755 ÓRDENES.......................................................................................................................................... 757 FILTROS............................................................................................................................................ 759 NAVEGACIÓN POR LOS REGISTROS .................................................................................................. 760 BÚSQUEDA DE REGISTROS ............................................................................................................... 763 OBJETOS PARA LA DEFINICIÓN DE DATOS ........................................................................................ 766 Bases de datos.............................................................................................................................. 766 Tablas .......................................................................................................................................... 767 Índices.......................................................................................................................................... 770 Consultas almacenadas ............................................................................................................... 771 Consultas con parámetros ........................................................................................................... 774 RELACIONES .................................................................................................................................... 776 TRANSACCIONES .............................................................................................................................. 779 OPERACIONES CON SQL .................................................................................................................. 782 EDICIÓN DE REGISTROS.................................................................................................................... 787 APLICANDO LA TEORÍA .................................................................................................................... 792 Diseño de la base de datos .......................................................................................................... 792 Interfaz de usuario....................................................................................................................... 793 Creación de la tabla de apuntes del ejercicio fiscal en tiempo de ejecución .............................. 794 El formulario de edición de apuntes de IVA................................................................................ 798 Formato para controles con texto ............................................................................................... 801 Agilizar la edición de apuntes ..................................................................................................... 805 Aprovechar valores repetitivos.................................................................................................... 805 Grabar un registro....................................................................................................................... 806 Estilo de la ventana principal...................................................................................................... 808 VISDATA, ADMINISTRADOR VISUAL DE DATOS .............................................................................. 809 16
  • 17. Introducción Introducción a la programación en Windows con Visual Basic La continua evolución en las necesidades de los programadores, hace que las herramientas de desarrollo sean actualmente uno de los elementos con más rápida evolución en el mundo de la informática. Programación Orientada a Objetos, Cliente / Servidor, multimedia y sobre todo Internet, como la gran revolución en el mundo de las comunicaciones por ordenador, son requisitos indispensables para cualquier lenguaje que aspire a ocupar un puesto destacado en el mercado de las herramientas de programación. Uno de los sistemas operativos más populares actualmente, para el que se realizan un gran número de aplicaciones es Windows, y una de las principales herramientas para programar en este sistema es Visual Basic (o VB como también lo denominaremos). Este curso se basa precisamente en estos elementos, la programación de aplicaciones Windows utilizando Visual Basic 6 como entorno de desarrollo. Visual Basic es una herramienta multipropósito, es decir, podemos crear programas utilizando este lenguaje para resolver diferentes tipos de problemas; sin embargo, debido al gran número de programadores dedicados a desarrollar programas de gestión, este curso va a estar orientado fundamentalmente al manejo de datos. 17
  • 18. Programación con Visual Basic 6 © Grupo EIDOS En los siguientes apartados, veremos brevemente, las nociones básicas de la programación bajo el entorno Windows. El sistema controla a la aplicación Aquellos programadores que pasen de trabajar en DOS a Windows necesitarán afrontar una nueva filosofía de trabajo. Cuando creamos un programa para DOS, dicho programa al ejecutarse, acapara todos los recursos del ordenador, controlando teclado, vídeo, estados de espera del programa, etc., todo está en manos del programa hasta que finalice su ejecución. Esto es lógico, ya que al ser un sistema monotarea, la única aplicación en ejecución puede acceder directamente a todos los recursos de la máquina. Existe una excepción en los llamados programas residentes, que una vez cargados son accesibles desde el programa principal mediante una combinación de teclado. Aunque esta técnica es muy útil bajo DOS, no se puede considerar multitarea, ya que no es un sistema preparado para ello. En Windows se da el caso contrario, al ser un sistema multitarea y poder tener más de un programa en ejecución al mismo tiempo, es el sistema operativo el que tiene el control de todos los programas lanzados. Asignando a cada programa un espacio de direcciones propio, de modo que no entren en conflicto mutuamente. Para comunicarse con los programas, utiliza un sistema de mensajes; Windows recibe y envía peticiones a los programas abiertos, administra las prioridades para los programas, la memoria, y en definitiva se encarga del buen funcionamiento de todos los aspectos del sistema. Interfaz consistente Cada programa realizado en DOS puede tener, de hecho la mayoría lo tienen, un aspecto y modo de comunicación con el usuario diferente, lo que habitualmente llamamos interfaz. Esto supone un derroche de tiempo tanto para el usuario como para el programador. Los usuarios cada vez que han de utilizar un nuevo programa de este tipo, deben emplear tiempo en aprender a comunicarse con él. Y los programadores han de gastar parte del tiempo de desarrollo en crear la interfaz de la aplicación. En Windows todos los programas tienen un único interfaz, lo que redunda en beneficios para usuarios y programadores. Los primeros cuando aprenden a utilizar una aplicación para Windows, ya tienen parte del camino recorrido para las siguientes, debido a que el uso de la ventana que contiene la aplicación es igual para todas. Sólo han de concentrarse en el aprendizaje del contenido de la aplicación y no el continente. Similar situación se da respecto a los programadores, no han de preocuparse del interfaz en absoluto, ya que viene proporcionado por Windows, sólo han de desarrollar las rutinas que resuelvan los problemas con que el programa pueda encontrarse. Eventos y mensajes Se dice que Windows es un sistema conducido por eventos, ya que es la forma que tiene de saber lo que está pasando en todo momento. Cualquier cosa que ocurre en Windows es un evento: mover el ratón, abrir un menú, pulsar un control, redimensionar una ventana, etc. Windows actúa como central de información, tomando los eventos producidos en el sistema y enviando mensajes al programa o programas que necesitan ser notificados de lo que ocurre. Puesto que Windows hace llamadas a los programas en forma de mensajes, estos han de disponer de un mecanismo para poder saber lo que el sistema les está diciendo. Este mecanismo es el llamado procedimiento de ventana, que contiene un bucle de mensajes o estructura de tipo Case – End Case, en la que se ejecuta el código programado para ese mensaje. 18
  • 19. © Grupo EIDOS 1. Introducción Si no estamos interesados en realizar ninguna operación especial para determinados mensajes, no escribiremos código asociado para ellos, con lo que sólo se ejecutarán las acciones por defecto programadas por el propio Windows. Lo anteriormente explicado no quiere decir que siempre debamos escribir un procedimiento de ventana para el programa. En Visual Basic este procedimiento es creado y gestionado internamente por el producto para cada ventana, sin que tengamos que preocuparnos en condiciones normales de su mantenimiento; esta es entre otras, una de las muchas facilidades que nos proporciona la herramienta. Sin embargo, también será posible acceder a estos mensajes, tanto para recogerlos como para enviarlos, y hacer llamadas a funciones para las que VB no da soporte, a través del API de Windows. Librerías de enlace dinámico (DLL) Cuando en DOS escribimos un programa, muchas de las funciones que usamos en el programa están contenidas en una o varias librerías (ficheros .LIB). Al generar el ejecutable, enlazamos con esas librerías, y el código de tales funciones se añade a nuestro ejecutable. Si creamos más de una aplicación que haga llamadas a las mismas funciones, estas se añadirán a cada fichero .EXE, con lo que tendremos varios programas con código repetido para las rutinas comunes. Para solventar este problema, en Windows disponemos de DLL’s (Dynamic Link Library), que forman uno de los componentes básicos en la arquitectura del sistema operativo. Una DLL es una librería que contiene código compilado y pre-enlazado, accesible desde cualquier programa que se encuentre en ejecución. Podemos seguir utilizando librerías normales LIB, pero las ventajas derivadas del uso de DLL’s son mucho mayores. A continuación exponemos algunos de los motivos. Centralizar el código en un único lugar Con esto conseguimos un doble objetivo: evitar el código redundante en las aplicaciones, al no incluir el código de las funciones comunes en cada programa; y más facilidad en el mantenimiento de versiones. Una vez modificada una rutina y generada de nuevo la DLL, los cambios son accesibles para todos los programas que la llamen. Con el método tradicional, además de generar de nuevo la librería, tendríamos que recompilar todos los programas que hacen uso de ella, enlazándolos con la nueva versión de la librería, de forma que pudieran incluir las rutinas modificadas o nuevas. Ahorro de recursos del sistema Cuando un programa hace una llamada a una rutina de una DLL, y la carga en memoria, las sucesivas llamadas a esa rutina de ese programa o cualquier otro, no la volverán a cargar. Sólo se carga una vez y permanece en memoria mientras se necesite. Independencia del lenguaje Podemos tener una DLL construida en Visual C++ y llamar a sus funciones desde nuestro programa en Visual Basic, sólo es necesario conocer el nombre de la función a usar y su protocolo de llamada, esto es, los parámetros a pasar, tipo y valor de retorno de la función. 19
  • 20. Programación con Visual Basic 6 © Grupo EIDOS Aplicaciones SDI y MDI Una aplicación SDI o de Interfaz de Documento Simple, es aquella en que se utiliza una sola ventana para interactuar con el usuario, el ejemplo más claro es el Bloc de Notas de Windows. Una aplicación MDI o de Interfaz de Documento Múltiple, usa una ventana principal, que actúa como contenedora de una o más ventanas abiertas dentro de la principal. Como ejemplo de este tipo de programas, tenemos a Word. Cada ventana contenida dentro de la principal corresponde con un documento o fichero, el cual podemos maximizar para que ocupe todo el área disponible de la ventana, iconizar, u organizar en mosaico o cascada. OLE OLE es una tecnología que nos permite compartir información entre las diferentes aplicaciones Windows. Desde los tiempos de las aplicaciones DOS, los usuarios han necesitado compartir información entre los distintos programas que usaban, pero las utilidades disponibles para este sistema eran insuficientes. La naturaleza monotarea del DOS complicaba además este problema, al tener que incorporar las aplicaciones sus propios conversores o disponer de programas que realizaran ese trabajo. Con la llegada de Windows, comenzamos a beneficiarnos de las ventajas del portapapeles, como puente para compartir datos de forma sencilla entre dos aplicaciones. Después llegó DDE (Dynamic Data Exchange o Intercambio Dinámico de Datos) como solución más avanzada para compartir información entre programas, aunque sólo permitía utilizar texto y gráficos. Vinculación e incrustación de objetos (OLE), nace en un principio como un avance en cuanto a comunicación de datos entre aplicaciones. Si estamos desarrollando un programa que necesita de las características que proporciona una hoja de cálculo, no necesitamos crearla nosotros, ya existen varias en el mercado sobradamente probadas y fiables, ¿para que volver a realizar el trabajo que ya han hecho otros?. Si esa hoja de cálculo, por ejemplo Excel, soporta OLE, incluimos un objeto OLE de Excel en nuestra aplicación, y toda la funcionalidad de Excel pasará a la nuestra. El programa que contiene un objeto OLE se llama Aplicación Contenedora, y el programa que crea y maneja los objetos OLE se llama Aplicación Servidora. Vinculación Siguiendo con el ejemplo de la hoja de cálculo, un programa que tenga un objeto (fichero XLS) vinculado, al editar el objeto, lanza la aplicación asociada a ese tipo de objeto, en este caso Excel. A partir de ahora utilizamos Excel para modificar el fichero, una vez terminado, grabamos y salimos, con lo que volvemos a nuestro programa original. Figura 1. Esquema de vinculación OLE. 20
  • 21. © Grupo EIDOS 1. Introducción Este modo de trabajo es útil cuando un objeto necesita ser compartido por varias aplicaciones, ya que la aplicación guarda una referencia al objeto. Incrustación Una aplicación con un objeto incrustado, contiene el propio objeto y no una referencia a un fichero externo. Cuando editemos el objeto no se iniciará la aplicación que genera ese objeto (también llamada aplicación servidora OLE), sino que las barras de menú y herramientas de esa aplicación sustituirán a las de la nuestra durante la edición del objeto; esto es conocido como Negociación de menú. Los cambios realizados en un objeto incrustado sólo serán visibles por la aplicación contenedora de ese objeto. Figura 2. Esquema de incrustación OLE. ActiveX En los últimos tiempos, la denominación OLE ha dejado paso a ActiveX. El motivo de ello, es una campaña de marketing realizada por Microsoft y destinada a relacionar la tecnología OLE con todo lo que tenga que ver con Internet. La base de esta tecnología sigue siendo la misma, pero la tendencia progresiva es la de crear objetos y componentes cada vez más pequeños y reutilizables, que faciliten su transmisión a través de la red. Controles ActiveX y modelo COM / DCOM Hemos visto que OLE en su versión 1.0, nace como una tecnología de comunicación entre aplicaciones. En la versión 2.0, la idea de comunicar aplicaciones se extiende a la de tratar todos los objetos como componentes que pueden ser montados en las aplicaciones, igual que si fueran piezas de una máquina. Este es el origen del llamado modelo COM (Component Object Model), y las piezas son los controles OCX o ActiveX que tomamos de la caja de herramientas e insertamos en los formularios de las aplicaciones. La evolución de los controles OCX ha permitido que estos pasen de estar disponibles desde la máquina local a cualquier máquina conectada a la red, con lo cual, la especificación COM ha pasado a ser DCOM (Distributed Component Object Model), o COM distribuido. De la misma forma, el termino activo ha sido incorporado a todos los elementos que tengan que ver con Internet, así hemos pasado de controles OCX a ActiveX, y de Automatización OLE a Automatización ActiveX 21
  • 22. Programación con Visual Basic 6 © Grupo EIDOS Automatización ActiveX La automatización ActiveX consiste en la posibilidad de integrar en nuestra aplicación, capacidades existentes en otras aplicaciones, en forma de componentes ActiveX, de manera que no necesitemos volver a codificar el trabajo hecho anteriormente por otros. La aplicación que incorpora los componentes se denomina cliente, y la que suministra los componentes, servidora. De esta forma, podríamos por ejemplo, crear una aplicación que incorporara las capacidades de corrector ortográfico de Word en sus controles de texto. Programación orientada a objeto en Windows La aplicación de técnicas de programación orientada a objeto en Windows, ha supuesto una gran ayuda en el desarrollo de las últimas versiones del sistema. De igual forma, el empleo de la orientación a objetos en los programas destinados a funcionar bajo Windows, se traduce en una mayor sencillez a la hora de enfocar los problemas a resolver y en un código más fácil de mantener. Windows como sistema OOP Al programar en Windows, estamos programando en un sistema orientado a objetos. Todos los elementos son tratados como objetos: ventanas, botones, cuadros de texto, listas desplegables, etc. Por este motivo es muy importante adaptar nuestra forma de enfocar la programación a estas técnicas de desarrollo 22
  • 23. Visual Basic Desde sus comienzos La aparición de Visual Basic, supuso una auténtica revolución en los lenguajes de programación. Hasta entonces, realizar un programa en Windows, suponía poco menos que ser un experto en C++, y conocer todo el entramado del famoso y extenso API, mensajes, funciones, etc. Visual Basic ponía al alcance de la mayoría de los programadores, sin necesidad de ser unos expertos en programación Windows, la posibilidad de construir aplicaciones en este sistema. Los aspectos más complejos del programa eran resueltos de forma transparente por la herramienta, permitiendo al desarrollador centrarse en lo que la aplicación debía resolver. También es cierto que las posibilidades iniciales eran limitadas, pero en las sucesivas versiones de esta herramienta se han ido incorporando o reforzando aspectos tan importantes como la implementación OOP, aunque todavía no disponga de herencia; manejo de bases de datos locales y remotas, permitiendo usar ficheros tipo Access como formato nativo de datos; dBASE, Paradox mediante controladores ISAM; SQL Server, Oracle a través de ODBC, etc. Todo esto y diversos aspectos más, han hecho que una herramienta pensada originalmente para crear sencillas aplicaciones Windows, llegue a ser uno de los productos más robustos para la creación de grandes aplicaciones corporativas. La situación actual En Visual Basic 6 se ha realizado un gran trabajo de mejora del producto, si bien desde las versiones 4 y 5 dicha labor de actualización se ha notado sobremanera, incorporando y adaptando las más
  • 24. Programación con Visual Basic 6 © Grupo EIDOS novedosas tecnologías de desarrollo, de forma que se puede considerar que estamos ante una de las mejores herramientas visuales existentes. Algunas de las características más destacables, entre las muchas que incorpora son: la posibilidad de crear ejecutables en Código Nativo para incrementar la velocidad de ejecución; múltiples asistentes para ayudarnos en las más variadas situaciones; creación de controles ActiveX; editor de código fuente mejorado; creación de nuestros propios eventos; acceso a datos mediante OLE DB/ADO; nuevos controles de datos optimizados para ADO; generador de informes propio (ya no es necesario diseñarlos mediante Crystal Reports); jerarquía de objetos para la manipulación de ficheros, etc. Tipos de proyectos Al iniciar el entorno de Visual Basic, ya nos encontramos con la primera novedad. En esta versión podemos elegir al comenzar el tipo de proyecto sobre el que vamos a trabajar entre los disponibles en la ventana de diálogo inicial del producto (figura 3). Figura 3. Ventana de diálogo inicial de Visual Basic 6. • • EXE ActiveX. Ejecutable servidor OLE. • DLL ActiveX. DLL servidora OLE. • Control ActiveX. Permite crear un control de usuario con la Edición de Creación de controles. • Asistente para aplicaciones de VB. Nos guía mediante una serie de pasos, en la construcción de una aplicación, creando la funcionalidad básica, ahorrándonos el trabajo más frecuente, de forma que sólo tengamos que incluir código en los puntos que deseemos personalizar. • 24 EXE estándar. Ejecutable habitual de VB. Administrador de asistentes de VB. Permite configurar cada uno de los asistentes del entorno.