ProgramacionconVisualbasic6-Grupoeidos

815
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, basta con conocimientos de fundamentos de programación y conocer al menos un lenguaje, sea este el que sea y conocer el S.O. Windows a nivel de usuario. P P R R O O G G R R A A M M A A C C I I Ó Ó N N C C O O N N V V I I S S U U A A L L B B A A S S I I C C 6 6 Desarrollo de software

Transcript of ProgramacionconVisualbasic6-Grupoeidos

  • Texto diseado para ensear en profundidad a desarrollar aplicaciones basadas en lenguaje Visual Basic. El texto cubre tanto aspectos bsicos como avanzados, es decir que no slo se estudian los fundamentos del lenguaje sino que tambin se tratan en profundidad el acceso a datos, la programacin orientada al objeto, los componentes ActiveX, el acceso al API, etc. Se trata de un manual de muy amplio contenido con alrededor de 1000 pginas de documentacin, adems de numerosos ejemplos listos para ser cargados desde Visual Basic. Entre los requisitos previos, basta con conocimientos de fundamentos de programacin y conocer al menos un lenguaje, sea este el que sea y conocer el S.O. Windows a nivel de usuario.

    PPRROOGGRRAAMMAACCIINN CCOONN VVIISSUUAALL BBAASSIICC 66

    Desarrollo de software

  • Programacin con Visual Basic Versin 1.0.0

    2000 Grupo EIDOS www.LaLibreriaDigital.com

    http://www.lalibreriadigital.com/
  • ndice

    NDICE................................................................................................................................................... 5 INTRODUCCIN ............................................................................................................................... 17

    INTRODUCCIN A LA PROGRAMACIN EN WINDOWS CON VISUAL BASIC........................................ 17 EL SISTEMA CONTROLA A LA APLICACIN......................................................................................... 18 INTERFAZ CONSISTENTE .................................................................................................................... 18 EVENTOS Y MENSAJES ....................................................................................................................... 18 LIBRERAS DE ENLACE DINMICO (DLL) .......................................................................................... 19

    Centralizar el cdigo en un nico lugar........................................................................................19 Ahorro de recursos del sistema ..................................................................................................... 19 Independencia del lenguaje ........................................................................................................... 19

    APLICACIONES SDI Y MDI................................................................................................................ 20 OLE ................................................................................................................................................... 20

    Vinculacin.................................................................................................................................... 20 Incrustacin ................................................................................................................................... 21

    ACTIVEX............................................................................................................................................ 21 CONTROLES ACTIVEX Y MODELO COM / DCOM ............................................................................ 21 AUTOMATIZACIN ACTIVEX............................................................................................................. 22 PROGRAMACIN ORIENTADA A OBJETO EN WINDOWS...................................................................... 22 WINDOWS COMO SISTEMA OOP ........................................................................................................ 22

    VISUAL BASIC................................................................................................................................... 23 DESDE SUS COMIENZOS...................................................................................................................... 23 LA SITUACIN ACTUAL...................................................................................................................... 23 TIPOS DE PROYECTOS......................................................................................................................... 24 APERTURA DE UN PROYECTO............................................................................................................. 25

  • Programacin con Visual Basic 6 Grupo EIDOS

    6

    COMPONENTES BSICOS DE UN PROGRAMA VISUAL BASIC.............................................................. 26 Proyecto......................................................................................................................................... 26 Formularios ................................................................................................................................... 26 Controles ....................................................................................................................................... 26 Propiedades ................................................................................................................................... 27 Eventos y mtodos.......................................................................................................................... 28 Funciones y procedimientos .......................................................................................................... 28

    LA PRIMERA APLICACIN................................................................................................................... 28 DISEAR EL FORMULARIO ................................................................................................................. 29 GRABAR EL FORMULARIO.................................................................................................................. 32 GRABAR EL PROYECTO ...................................................................................................................... 33 EL PROCEDIMIENTO INICIAL SUB MAIN() .......................................................................................... 34 ESTABLECER EL OBJETO INICIAL DE LA APLICACIN......................................................................... 35 EJECUTAR EL PROYECTO.................................................................................................................... 36 CONTROLES ESTNDAR ..................................................................................................................... 37

    Insertar un control en el formulario .............................................................................................. 37 TextBox .......................................................................................................................................... 38 Label .............................................................................................................................................. 39 CheckBox ....................................................................................................................................... 40 Frame............................................................................................................................................. 41 OptionButton.................................................................................................................................. 42 ListBox ........................................................................................................................................... 43 ComboBox...................................................................................................................................... 44 CommandButton ............................................................................................................................ 45 Manipulacin de los controles mediante cdigo ........................................................................... 45

    CREACIN DEL EJECUTABLE DEL PROGRAMA ................................................................................... 47 DISTRIBUCIN DE LA APLICACIN..................................................................................................... 48 AMPLIAR LA PRIMERA APLICACIN................................................................................................... 53 INCLUIR UN FORMULARIO MDI ......................................................................................................... 54 CREAR UN MEN PARA EL FORMULARIO MDI................................................................................... 57 OPERACIONES ESTNDAR MEDIANTE EL CONTROL COMMONDIALOG.............................................. 60

    Color.............................................................................................................................................. 61 Impresin ....................................................................................................................................... 62 Tipo de letra................................................................................................................................... 64 Apertura de ficheros ...................................................................................................................... 66 Grabacin de ficheros ................................................................................................................... 69 Ayuda ............................................................................................................................................. 69

    AGREGAR FUNCIONALIDAD AL FORMULARIO PRINCIPAL.................................................................. 71 ImageList ....................................................................................................................................... 71 Toolbar .......................................................................................................................................... 73 StatusBar ....................................................................................................................................... 77

    CREAR UNA VENTANA SPLASH O DE PRESENTACIN ........................................................................ 80 Timer.............................................................................................................................................. 82

    EL LENGUAJE ................................................................................................................................... 85 INTRODUCCIN .................................................................................................................................. 85 VISUAL BASIC PARA APLICACIONES (VBA) ...................................................................................... 85 VBA Y VISUAL BASIC 6 .................................................................................................................... 86 EMPLAZAMIENTO DEL CDIGO DE LA APLICACIN ........................................................................... 86 COMENTARIOS ................................................................................................................................... 86 MSGBOX() ......................................................................................................................................... 87 INPUTBOX() ....................................................................................................................................... 89 VARIABLES ........................................................................................................................................ 90

    Declaracin ................................................................................................................................... 90

  • Grupo EIDOS 1. Introduccin

    7

    Tipo............................................................................................................................................ 91 mbito............................................................................................................................................ 93 Denominacin................................................................................................................................ 95

    CONSTANTES ..................................................................................................................................... 96 EL TIPO ENUMERADO......................................................................................................................... 98 CONVERSIN DE TIPOS..................................................................................................................... 100 CONTINUACIN DE LNEA DE CDIGO ............................................................................................. 102 INSTRUCCIONES EN UNA LNEA........................................................................................................ 103 EXPRESIONES ................................................................................................................................... 103 OPERADORES ................................................................................................................................... 103

    Aritmticos................................................................................................................................... 104 Comparacin ............................................................................................................................... 106 Concatenacin ............................................................................................................................. 110 Lgicos......................................................................................................................................... 111

    PRIORIDAD DE OPERADORES............................................................................................................ 117 ARRAYS ........................................................................................................................................... 118

    Declaracin y asignacin de valores........................................................................................... 118 Devolucin de arrays desde funciones ........................................................................................ 120 Establecer los lmites de los ndices ............................................................................................ 120 Arrays dinmicos ......................................................................................................................... 122 Manipulacin de arrays multidimensionales............................................................................... 124 Seleccionar informacin 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 MS HABITUALES ......................................................................................................... 148 Numricas.................................................................................................................................... 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 EDICIN ................................................................................................................................ 172 MEN VER ....................................................................................................................................... 175 MEN PROYECTO ............................................................................................................................ 183 MEN FORMATO.............................................................................................................................. 185 MEN DEPURACIN......................................................................................................................... 188

  • Programacin con Visual Basic 6 Grupo EIDOS

    8

    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 Manipulacin global de controles ............................................................................................... 201 Formularios MDI......................................................................................................................... 203

    EDITOR DE CDIGO.......................................................................................................................... 203 Lista de objetos ............................................................................................................................ 204 Lista de procedimientos............................................................................................................... 204 Barra de divisin ......................................................................................................................... 206 Visualizar el cdigo ..................................................................................................................... 206 Marcadores y barra de margen................................................................................................... 206 Configuracin del Editor de Cdigo ........................................................................................... 207 Configuracin de formato del Editor de Cdigo ......................................................................... 210

    VENTANAS COMPLEMENTARIAS ...................................................................................................... 210 Ventana de Propiedades .............................................................................................................. 211 Cuadro de herramientas .............................................................................................................. 211 Examinador de objetos ................................................................................................................ 215 Ventana de Posicin del formulario ............................................................................................ 217 Paleta de colores ......................................................................................................................... 217 Anclaje de ventanas ..................................................................................................................... 218 Personalizar las barras de herramientas .................................................................................... 219

    DISEO DE MENS........................................................................................................................ 223 DESCRIPCIN DE UN MEN .............................................................................................................. 223 CARACTERSTICAS DE UN MEN...................................................................................................... 223 PROPIEDADES DE UN CONTROL MEN............................................................................................. 224 EL EDITOR DE MENS ...................................................................................................................... 224 AADIR CDIGO A UNA OPCIN DE MEN....................................................................................... 226 CREACIN DE UN MEN................................................................................................................... 226 MENS EN FORMULARIOS MDI ....................................................................................................... 231

    EL REGISTRO WINDOWS ............................................................................................................ 235 DE LOS FICHEROS INI AL REGISTRO................................................................................................ 235 EL REGISTRO POR DENTRO............................................................................................................... 235 MANIPULACIN DE LAS ENTRADAS DEL REGISTRO ......................................................................... 236

    TRATAMIENTO DE DATOS CON ACTIVEX DATA OBJECTS (ADO) ................................ 241 INTRODUCCIN A LA PROGRAMACIN CON BASES DE DATOS ......................................................... 241 DISEO DE LA BASE DE DATOS ........................................................................................................ 242

    Establecer el modelo de la aplicacin......................................................................................... 242 Analizar que informacin necesita la aplicacin ........................................................................ 242 Establecer la informacin en tablas ............................................................................................ 242

  • Grupo EIDOS 1. Introduccin

    9

    Normalizacin 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 insercin de datos ............................................................................. 246

    ACCESO A INFORMACIN BAJO CUALQUIER FORMATO ................................................................... 246 ACCESO UNIVERSAL A DATOS (UDA) ............................................................................................ 247 OLE DB........................................................................................................................................... 247 ACTIVEX DATA OBJECTS (ADO) .................................................................................................... 249

    Connection................................................................................................................................... 250 Propiedades.............................................................................................................................. 250 Mtodos ................................................................................................................................... 253

    Command..................................................................................................................................... 258 Propiedades.............................................................................................................................. 258 Mtodos ................................................................................................................................... 260

    Parameter .................................................................................................................................... 260 Propiedades.............................................................................................................................. 260 Mtodos ................................................................................................................................... 264

    Recordset ..................................................................................................................................... 264 Propiedades.............................................................................................................................. 264 Mtodos ................................................................................................................................... 269

    Field............................................................................................................................................. 276 Propiedades.............................................................................................................................. 276 Mtodos ................................................................................................................................... 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 CDIGO, UN PUNTO INTERMEDIO......................................................... 293

    La aplicacin de ejemplo............................................................................................................. 293 El formulario de datos ................................................................................................................. 293 El control DataCombo................................................................................................................. 294 El cdigo a incluir ....................................................................................................................... 295 La aplicacin en funcionamiento................................................................................................. 296

    CREACIN DE OBJETOS ADO........................................................................................................... 296 Utilizar los objetos principales del modelo ................................................................................. 296 Modificar la informacin a travs 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 BSQUEDA DE REGISTROS ............................................................................................................... 310 NAVEGACIN POR LOS REGISTROS .................................................................................................. 312 VALIDACIN DE CONTROLES ........................................................................................................... 314 CREAR CONTROLES EN TIEMPO DE EJECUCIN................................................................................ 316

  • Programacin con Visual Basic 6 Grupo EIDOS

    10

    EDICIN 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 informacin de conexin............................................................................ 334 Conectar sin DSN, slo con cdigo ............................................................................................. 337

    EJECUTAR UN PROCEDIMIENTO ALMACENADO ............................................................................... 338 ESQUEMAS ....................................................................................................................................... 339 ENLAZAR CONTROLES A DATOS EN TIEMPO DE EJECUCIN............................................................. 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 conexin ..................................................................................................................... 349 Crear un comando ....................................................................................................................... 351 Agregar cdigo 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 ejecucin................................. 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 vnculo 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 IMPRESIN ...................................................................................................................................... 377

    TCNICAS DE IMPRESIN EN VISUAL BASIC.................................................................................... 377 IMPRESIN MEDIANTE OBJETOS....................................................................................................... 377 LA COLECCIN 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 MTODOS DEL OBJETO PRINTER ................................................................ 382 Propiedades ................................................................................................................................. 382 Mtodos ....................................................................................................................................... 385

    DATA REPORT (DISEADOR DE INFORMES)..................................................................................... 385 ELEMENTOS DEL DISEADOR DE INFORMES .................................................................................... 386 EL OBJETO DATAREPORT ................................................................................................................ 386

    Propiedades ................................................................................................................................. 386 Mtodos ....................................................................................................................................... 387 Eventos......................................................................................................................................... 388

    EL OBJETO SECTION......................................................................................................................... 389 Propiedades ................................................................................................................................. 390

  • Grupo EIDOS 1. Introduccin

    11

    CONTROLES DEL DISEADOR DE INFORMES .................................................................................... 390 CREAR UN INFORME......................................................................................................................... 392

    Crear la fuente de datos .............................................................................................................. 393 Agregar un diseador 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 IMPRESIN ........................................................................................... 397 LA VENTANA DE PREVISUALIZACIN .............................................................................................. 398 MEJORAR EL ASPECTO DEL INFORME............................................................................................... 398

    Ttulo............................................................................................................................................ 398 Formas grficas........................................................................................................................... 400 Imgenes...................................................................................................................................... 400 Nmero de pgina........................................................................................................................ 401 Fecha y hora................................................................................................................................ 401

    PRESENTACIN DE DATOS AGRUPADOS JERRQUICAMENTE .......................................................... 402 EL CONTROL RPTFUNCTION ............................................................................................................ 405 INFORMES CON SELECCIN DE REGISTROS ...................................................................................... 407 EXPORTAR UN INFORME................................................................................................................... 409

    Propiedades ................................................................................................................................. 410 CRYSTAL REPORTS .......................................................................................................................... 411 COMENZANDO CON CRYSTAL REPORTS .......................................................................................... 411

    Creacin de un nuevo informe..................................................................................................... 412 Seleccin de la base de datos ...................................................................................................... 413 Secciones del informe .................................................................................................................. 413 Insertar campos en el informe ..................................................................................................... 414 Previsualizar el informe .............................................................................................................. 416

    COMPLETANDO EL INFORME............................................................................................................ 417 Ttulo............................................................................................................................................ 417 Dibujo .......................................................................................................................................... 418 Imagen ......................................................................................................................................... 419 Ajustar seccin............................................................................................................................. 420 Nmero de pgina y fecha del informe........................................................................................ 420

    CONFIGURACIN DEL INFORME ....................................................................................................... 422 MANIPULACIN DE LA BASE DE DATOS CONECTADA AL INFORME ................................................. 423

    Establecer ubicacin ................................................................................................................... 423 Comprobar la base de datos........................................................................................................ 423

    SELECCIN DE REGISTROS ............................................................................................................... 424 ORDEN DE LOS REGISTROS............................................................................................................... 426 SELECCIN DE CAMPOS ................................................................................................................... 427 FRMULAS ....................................................................................................................................... 427 CREACIN DE UN RESUMEN............................................................................................................. 430 INSERTAR UN SUBTOTAL ................................................................................................................. 431 ASISTENTES PARA LA CREACIN DE INFORMES............................................................................... 432 EL CONTROL CRYSTAL REPORT....................................................................................................... 435 OBTENCIN DE LOS DATOS DESDE UNA TABLA INTERMEDIA .......................................................... 440

    EL DEPURADOR ............................................................................................................................. 445 QU ES UN DEPURADOR?................................................................................................................ 445 ACCIONES BSICAS.......................................................................................................................... 446 MODO DE INTERRUPCIN................................................................................................................. 446 PUNTOS DE INTERRUPCIN.............................................................................................................. 446 EJECUCIN PASO A PASO.................................................................................................................. 448 INSPECCIONES.................................................................................................................................. 449

  • Programacin con Visual Basic 6 Grupo EIDOS

    12

    La ventana de Inspeccin ............................................................................................................ 450 Inspeccin rpida ........................................................................................................................ 451

    LA VENTANA INMEDIATO ................................................................................................................ 451 LA VENTANA LOCALES.................................................................................................................... 452 PILA DE LLAMADAS ......................................................................................................................... 454

    PROGRAMACIN ORIENTADA A OBJETO (OOP) ................................................................ 457 QU VENTAJAS APORTA LA PROGRAMACIN ORIENTADA A OBJETOS? ......................................... 457 OBJETOS........................................................................................................................................... 458 CLASES............................................................................................................................................. 459 CLASES ABSTRACTAS....................................................................................................................... 460 RELACIONES ENTRE OBJETOS .......................................................................................................... 460

    Herencia ...................................................................................................................................... 460 Pertenencia.................................................................................................................................. 461 Utilizacin.................................................................................................................................... 461

    ELEMENTOS BSICOS DE UN SISTEMA OOP..................................................................................... 461 Encapsulacin.............................................................................................................................. 461 Polimorfismo................................................................................................................................ 461 Herencia ...................................................................................................................................... 462

    REUTILIZACIN................................................................................................................................ 462 CREACIN DE CLASES...................................................................................................................... 462

    Crear un mdulo 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 mtodos de la clase...................................................................................................... 471 Cundo crear un procedimiento Property o un mtodo? .......................................................... 472

    CREAR OBJETOS DE UNA CLASE....................................................................................................... 472 Tipificacin de variables ............................................................................................................. 473 Instanciar un objeto..................................................................................................................... 474 Uso de propiedades y mtodos .................................................................................................... 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 mdulo de clase ........................................................................................................ 482 Eventos de creacin/destruccin del objeto Collection............................................................... 482 Procedimientos Property para la coleccin ................................................................................ 482 Mtodos para la coleccin........................................................................................................... 483 Incorporar nuevas funcionalidades a la coleccin...................................................................... 485 Recorrer la coleccin mediante For Each...Next ........................................................................ 485

    EL OBJETO DICTIONARY .................................................................................................................. 488 Agregar elementos al diccionario................................................................................................ 490 Obtener un elementos del diccionario ......................................................................................... 490 Recorrer la informacin 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

  • Grupo EIDOS 1. Introduccin

    13

    Creacin 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 aplicacin......................................................................... 506

    PROCEDIMIENTOS FRIEND ............................................................................................................... 508 MANIPULACIN INDIRECTA DE OBJETOS; LA FUNCIN 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 AUTOMATIZACIN REMOTA............................................................................................................ 526 CREACIN DE COMPONENTES ACTIVEX DLL Y EXE ..................................................................... 526

    Establecer el tipo de componente ................................................................................................ 527 Propiedades del componente ....................................................................................................... 527 Clases del componente ................................................................................................................ 529 Creacin 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 APLICACIN CLIENTE ................................. 538 CREATEOBJECT().............................................................................................................................541 REDUCCIN DE LA COMUNICACIN 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

    PROGRAMACIN MULTIHEBRA ........................................................................................................ 545 DESARROLLO DE UN COMPONENTE ACTIVEX DLL ........................................................................ 546

    Diseo de las clases..................................................................................................................... 547 TRABAJAR CON UN GRUPO DE PROYECTOS...................................................................................... 552 DESARROLLO DE LA APLICACIN CLIENTE PARA UN COMPONENTE ACTIVEX DLL....................... 553 COMPILAR UN COMPONENTE DE CDIGO ACTIVEX ........................................................................ 559 DISTRIBUIR UN COMPONENTE DE CDIGO ACTIVEX....................................................................... 560 AUTOMATIZACIN ACTIVEX........................................................................................................... 560

  • Programacin con Visual Basic 6 Grupo EIDOS

    14

    CONEXIN CON OFFICE. USO DE WORD DESDE VISUAL BASIC ...................................................... 561 OFFICE LLAMA AL CDIGO DE VISUAL BASIC ................................................................................. 564 OBJETOS INSERTABLES .................................................................................................................... 568 EL CONTROL CONTENEDOR OLE..................................................................................................... 572

    frmIncrusta .................................................................................................................................. 573 frmVincula ................................................................................................................................... 575 FrmEjecInc - frmEjecVinc........................................................................................................... 576

    CONTROLES ACTIVEX ..................................................................................................................... 577 Diseo del control........................................................................................................................ 578 Crear el interfaz del control ........................................................................................................ 578 El cdigo del control ................................................................................................................... 579 Redimensionar el control............................................................................................................. 581 Eventos notificados por el control ............................................................................................... 582 Creacin de propiedades............................................................................................................. 584 Eventos del control ...................................................................................................................... 585 Pginas de propiedades............................................................................................................... 588 Configurar una pgina de propiedades estndar........................................................................ 593 Uso del control en un formulario ................................................................................................ 594 Uso del control en una pgina web ............................................................................................. 595

    ASISTENTE PARA LA CREACIN DE CONTROLES .............................................................................. 596 Asistente para pginas de propiedades ....................................................................................... 601 Compilacin y distribucin.......................................................................................................... 604

    DOCUMENTOS ACTIVEX.................................................................................................................. 604 Documento ActiveX ..................................................................................................................... 604 Servidor de Documentos ActiveX ................................................................................................ 605 Creacin de un Servidor de Documentos ActiveX....................................................................... 605 Visualizacin de un documento ActiveX...................................................................................... 609 Compilar el proyecto ................................................................................................................... 610 Distribucin de la aplicacin 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 INFORMACIN EN UN FORMATO DISTINTO .................................... 622 TRABAJAR CON VARIOS MIEMBROS DE DATOS ................................................................................ 629 CREACIN DE UN CONTROL PERSONALIZADO ORIENTADO A DATOS............................................... 633

    Interfaz del control ...................................................................................................................... 634 Variables y procedimientos para propiedades ............................................................................ 634 Cdigo del UserControl .............................................................................................................. 636 Botones de navegacin ................................................................................................................ 637 Botones de edicin....................................................................................................................... 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 instruccin principal ............................................................ 650 Recuperar datos desde varios niveles de profundidad ................................................................ 651 Realizar clculos mediante modelado de datos........................................................................... 652

  • Grupo EIDOS 1. Introduccin

    15

    MANIPULACIN 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 Mtodos ................................................................................................................................... 675

    File............................................................................................................................................... 678 FileSystemObject ......................................................................................................................... 679

    Propiedades.............................................................................................................................. 679 Mtodos ................................................................................................................................... 679

    TextStream ................................................................................................................................... 685 Propiedades.............................................................................................................................. 685 Mtodos ................................................................................................................................... 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 FSICO DEL API................................................................................................... 690 LA INSTRUCCIN DECLARE ............................................................................................................. 691 EL VISOR DE API ............................................................................................................................. 693 DECLARACIN DE FUNCIONES QUE MANEJAN CADENAS................................................................. 696 DECLARACIONES DE TIPO ESTRICTO. EVITAR EL USO DE "AS ANY"............................................... 696 CREAR DECLARACIONES SEGURAS MEDIANTE UNA FUNCIN "ENVOLVENTE" ............................... 700 MANIPULACIN DE MENSAJES......................................................................................................... 701

    Cmo son los mensajes................................................................................................................ 701 Enviar mensajes........................................................................................................................... 702

    SUBCLASIFICACIN. PROCESAR LOS MENSAJES QUE ENVA EL SISTEMA ........................................ 704 Subclasificacin para una ventana..............................................................................................704 Subclasificacin para un control................................................................................................. 708

    ALGUNOS EJEMPLOS ADICIONALES ................................................................................................. 712 GLOSARIO DE TRMINOS .......................................................................................................... 719

    NORMATIVA DE CODIFICACIN ....................................................................................................... 719 TRATAMIENTO DE DATOS CON VISUAL BASIC 5 ............................................................... 725

    INTRODUCCIN A LA PROGRAMACIN CON BASES DE DATOS ......................................................... 725

  • Programacin con Visual Basic 6 Grupo EIDOS

    16

    DISEO DE LA BASE DE DATOS ........................................................................................................ 726 Establecer el modelo de la aplicacin......................................................................................... 726 Analizar que informacin necesita la aplicacin ........................................................................ 726 Establecer la informacin en tablas ............................................................................................ 726 Normalizacin 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 insercin 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 CDIGO, UN PUNTO INTERMEDIO......................................................... 741

    La aplicacin de ejemplo............................................................................................................. 741 El formulario de datos ................................................................................................................. 741 El control DBCombo ................................................................................................................... 742 El cdigo a incluir ....................................................................................................................... 742 La aplicacin 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 NAVEGACIN POR LOS REGISTROS .................................................................................................. 760 BSQUEDA DE REGISTROS ............................................................................................................... 763 OBJETOS PARA LA DEFINICIN DE DATOS........................................................................................ 766

    Bases de datos.............................................................................................................................. 766 Tablas .......................................................................................................................................... 767 ndices.......................................................................................................................................... 770 Consultas almacenadas ............................................................................................................... 771 Consultas con parmetros ........................................................................................................... 774

    RELACIONES .................................................................................................................................... 776 TRANSACCIONES.............................................................................................................................. 779 OPERACIONES CON SQL .................................................................................................................. 782 EDICIN DE REGISTROS.................................................................................................................... 787 APLICANDO LA TEORA.................................................................................................................... 792

    Diseo de la base de datos .......................................................................................................... 792 Interfaz de usuario....................................................................................................................... 793 Creacin de la tabla de apuntes del ejercicio fiscal en tiempo de ejecucin .............................. 794 El formulario de edicin de apuntes de IVA................................................................................ 798 Formato para controles con texto ...............................................................................................801 Agilizar la edicin de apuntes ..................................................................................................... 805 Aprovechar valores repetitivos.................................................................................................... 805 Grabar un registro....................................................................................................................... 806 Estilo de la ventana principal...................................................................................................... 808

    VISDATA, ADMINISTRADOR VISUAL DE DATOS .............................................................................. 809

  • 17

    Introduccin

    Introduccin a la programacin en Windows con Visual Basic La continua evolucin en las necesidades de los programadores, hace que las herramientas de desarrollo sean actualmente uno de los elementos con ms rpida evolucin en el mundo de la informtica.

    Programacin Orientada a Objetos, Cliente / Servidor, multimedia y sobre todo Internet, como la gran revolucin 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 programacin.

    Uno de los sistemas operativos ms populares actualmente, para el que se realizan un gran nmero de aplicaciones es Windows, y una de las principales herramientas para programar en este sistema es Visual Basic (o VB como tambin lo denominaremos). Este curso se basa precisamente en estos elementos, la programacin de aplicaciones Windows utilizando Visual Basic 6 como entorno de desarrollo.

    Visual Basic es una herramienta multipropsito, es decir, podemos crear programas utilizando este lenguaje para resolver diferentes tipos de problemas; sin embargo, debido al gran nmero de programadores dedicados a desarrollar programas de gestin, este curso va a estar orientado fundamentalmente al manejo de datos.

  • Programacin con Visual Basic 6 Grupo EIDOS

    18

    En los siguientes apartados, veremos brevemente, las nociones bsicas de la programacin bajo el entorno Windows.

    El sistema controla a la aplicacin Aquellos programadores que pasen de trabajar en DOS a Windows necesitarn afrontar una nueva filosofa de trabajo. Cuando creamos un programa para DOS, dicho programa al ejecutarse, acapara todos los recursos del ordenador, controlando teclado, vdeo, estados de espera del programa, etc., todo est en manos del programa hasta que finalice su ejecucin. Esto es lgico, ya que al ser un sistema monotarea, la nica aplicacin en ejecucin puede acceder directamente a todos los recursos de la mquina. Existe una excepcin en los llamados programas residentes, que una vez cargados son accesibles desde el programa principal mediante una combinacin de teclado. Aunque esta tcnica 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 ms de un programa en ejecucin 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 enva 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 mayora lo tienen, un aspecto y modo de comunicacin 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 aplicacin.

    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 aplicacin para Windows, ya tienen parte del camino recorrido para las siguientes, debido a que el uso de la ventana que contiene la aplicacin es igual para todas. Slo han de concentrarse en el aprendizaje del contenido de la aplicacin y no el continente. Similar situacin se da respecto a los programadores, no han de preocuparse del interfaz en absoluto, ya que viene proporcionado por Windows, slo 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 ratn, abrir un men, pulsar un control, redimensionar una ventana, etc.

    Windows acta como central de informacin, 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 cdigo programado para ese mensaje.

  • Grupo EIDOS 1. Introduccin

    19

    Si no estamos interesados en realizar ninguna operacin especial para determinados mensajes, no escribiremos cdigo asociado para ellos, con lo que slo se ejecutarn 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, tambin ser posible acce