Informática


Desarrollo y realización de servicios de prestación en el entorno gráfico


DESARROLLO Y REALIZACIÓN DE SERVICIOS DE PRESTACIÓN EN ENTORNO GRÁFICO

Bloque I: Diseño de interfaces de usuario

Bloque II: Elaboración y evaluación de interfaces de usuario

Bloque III: Documentación de los servicios de presentación.

BLOQUE I

Introducción

El tema del diseño de la interfaz de usuario se ha hecho cada vez + importante a medida q ha aumentado el uso de nodos. Encontramos interfaces inteligentes cuando usamos la fotocopiadora, un microondas, o un sistema de diseño asistida x ordenador. Desde el punto de vista del usuario lo q permite a un piloto manejar un avión o a un radiólogo interpretar la salida de un escáner es la interfaz. Esta (la interfaz) es en muchos sentidos el envoltorio del Sw de ordenador. Si es fácil de aprender, simple de usar y no muy estricto el usuario podrá hacer buen uso de lo q hay dentro.

El diseño de la interfaz del usuario tiene tanto q ver con el estudio de la gente como con aspectos de la tecnología. Para diseñar una interfaz de usuario debemos responder a las siguientes preguntas:

  • ¿Quién es el usuario?

  • ¿Cómo aprende este usuario a interaccionar con un sistema nuevo?

  • ¿Qué es lo q espera el usuario de este sistema?

Factores q condicionan el diseño.

Antes de dar normas de diseño hay q tener presente q factores lo condicionan:

Tipos de usuario

Los agrupamos a continuación en 3 categorías principales, atendiendo el nivel de conocimiento de la computadora y de la tarea. Grupos de usuarios: nuevos o novicios, intermitentes y frecuentes.

  • Nuevos: no tienen conocimientos sintácticos ni semánticos * sobre la tarea a desempeñar.

  • Conocimiento sintáctico: consiste en saber q para llamar a la ayuda hay q pulsar la tecla F1 o q para detener una aplicación hay q pulsar CTRL. + c. Estos conocimientos son arbitrarios ya q no hay una relación directa entre la acción y su resultado.

  • Conocimiento semántico: consiste en saber q para escribir 1 carta lo primero q hay q escribir es la fecha, luego el encabezado, el cuerpo de la carta, etc. Este conocimiento no es arbitrario. Se hace atendiendo una cierta lógica y es + fácil de aprender.

Para diseñar nuestro sistema:

  • Restringir el vocabulario (no escribir demasiado.

  • Pequeño número de opciones, posibilidades.

  • Conducir las tareas

  • Retroalimentación constante (poner mensajes de tiempo restante).

  • Mensajes de error constructivos.

  • Amplia documentación en papel.

  • Intermitentes: pueden mantener conocimientos semánticos de la tarea pero olvidan los sintácticos. Para diseñar las interfaces de nuestro sistema:

  • Facilitar el reconocimiento.

  • Protección contra daños causados x una exploración no metódica.

  • Ayuda en línea para recordar la sintaxis.

  • Manuales de referencia organizados x contenidos, nunca organizados sintácticamente.

  • Frecuentes: son usuarios q dominan la semántica y la sintaxis y q quieren aprender rápidamente la tarea. Respecto al diseño de las interfaces:

  • Procurar q los tipos de respuesta sean breves.

  • Poca retroalimentación.

  • Posibilidad de realizar las acciones con pocos pasos.

  • Incluir un lenguaje de macros (botones) para la realización de tareas frecuentes.

CONCLUSIONES

  • Ningún diseño satisface a todos lo usuarios y situaciones.

  • Antes de comenzar un diseño hay q caracterizar a los usuarios y situaciones.

Áreas de trabajo del sistema.

Aunque ocurre lo mismo q con los usuarios hemos agrupado las áreas de trabajo en 4 bloques:

  • Sistemas críticos para la vida humana: en estos sistemas se esperan altos costes pero deben ser fiables y efectivos. X ejemplo: CTRL. de tráfico aéreo, bomberos, unidades de vigilancia intensiva, etc.

  • Son sistemas en los q es aceptable emplear largos periodos para elaborar una ejecución rápida y libre de errores.

  • Industria y comercio: los costes se tienen muy en cuenta para las decisiones de diseño. A menudo se prefiere costes bajos aunque esto suponga una menor fiabilidad y prestaciones. Nuestro sistema ha de ser fácil de aprender. X ejemplo: inventarios, reservas, banca, etc.

  • Oficina, hogar y entretenimiento: aquí lo más importante es la facilidad de aprendizaje. La pequeña posibilidad de errores del usuario y la satisfacción subjetiva. La competencia en éste área es muy grande x lo tanto es importante q el coste sea bajo.

  • Sistemas de exploración y colaboración (creativos): en estos sistemas el usuario es experto en su área de trabajo pero es Novel en conceptos informáticos. Tienen motivaciones altas y expectativas elevadas. El tipo de usuario puede ser ocasional o frecuente, x tanto, es difícil diseñar estos sistemas. X ejemplo: enciclopedias electrónicas, composiciones de música, escritura de trabajos en colaboración, etc.

Factores humanos medibles.

Cuando consideramos un sistema interactivo basado en Sw, “factor humano” toma una gran variedad de significados. En un nivel fundamental debemos comprender la perfección visual, la memoria humana y el racionamiento deductivo e inductivo * y en otro nivel debemos comprender al usuario y su comportamiento. Como punto final debemos comprender las tareas q el sistema realiza para el usuario y las tareas q pide el usuario.

La interfaz del usuario es el mecanismo a través del cual se establece un diálogo entre el programa y el humano. Si se han tenido en Cta. los factores humanos, él dialogo será fluido y se establecerá un ritmo entre el usuario y el programa.

  • Razonamiento deductivo: consiste en partir de un caso general y llegar al caso particular en base a unas reglas se llega a una conclusión.

  • Razonamiento inductivo: consiste en q a partir de casos particulares se generaliza un principio.

Creación de interfaces gráficas

Cuando cualquier usuario ejecuta Windows lo primero q llama su atención es su aspecto (interfaz gráfica). X lo general la primera impresión es fundamental según sea positiva o negativa es posible q siga adelante o q ni siquiera lo intente. Antes cuando se trabajaba en modo texto lo importante era q la aplicación resolviera de forma efectiva el problema, ahora se da x supuesto q las aplicaciones van a resolver el problema y la atención se centra en el aspecto gráfico de la pantalla (apariencia, y facilidad de manejo).

A continuación vamos a numerar una serie de recomendaciones para procesar al diseño y creación de la interfaz gráfica.

  • Estilo: al proceder al diseño de 1 interfaz gráfica los objetivos q se deben perseguir son: disminuir al máximo el tiempo de aprendizaje, q sea de aspecto agradable y a la vez potente (con pocas acciones grandes resultados).

  • Expresión: se debe huir del abuso de expresiones técnicas. Hay q pensar q la aplicación va a ser usada x un usuario no informativo x tanto los mensajes y demás formas de comunicación deben usar expresiones sencillas siempre q sean posibles se deben emplear objetos gráficos q representan objetos del mundo real.

Hay q poner especial cuidado en la ortografía sb todo en el uso de los acentos.

La interacción.

El ratón es un elemento fundamental en la programación Windows, teniendo en cuenta los problemas q algunas personas tienen al usar el ratón. Es aconsejable usar un clic antes q doble clic, tb hay q evitar arrastrar un objeto y soltar ya q son acciones + complicadas. Nos debemos plantear como actuar en caso de q el ratón no funcione, para ello hay q configurar los botones, los cuadros de texto, opciones del menú y el movimiento x controles de la aplicación, bien mediante teclas de acceso directo o x el tabulador.

Otro aspecto a cuidar es el comportamiento de la aplicación cuando la respuesta a una acción se hace esperar. No hay q dejar al usuario sin saber q está pasando, ya q lo + fácil es q piense q la aplicación funciona mal y active todas las opciones disponibles o q provoque un reseteo del sistema.

Para ello, hay q seguir las siguientes orientaciones:

  • Si la espera es de hasta 5 segundos es recomendable visualizar el cursor del reloj de arena.

  • Si la espera puede llegar hasta los 5 min. se recomienda indicar gráficamente el progreso de la acción q se está realizando

  • Si sobrepasa los 5 min. Lo mejor es q visualice el tiempo q va a tardar para q el usuario sepa a q atenerse antes de empezar.

Siempre hay q ofrecer la posibilidad de terminar una acción x medio del botón cancelar.

  • Las ventanas: si la aplicación va a hacer uso de varias ventanas es recomendable elegir 1 como principal (con ella se arranca la aplicación). En el caso de usar una barra de menús deberá encontrarse en la ventana principal. A partir de esta ventana se dará paso al resto de las ventanas q conviene q sean modales (ventanas q no permiten al usuario cambiar a otra sin antes cerrar esta).

Si la aplicación presenta cierta dificultad o para anticiparnos a posibles problemas se pueden diseñar ventanas de ayuda. Si se van a incluir en un menú (la ayuda) se debería usar un símbolo de interrogación (?) o ayuda, en caso contrario usar la tecla F1.

Hay q tener cuidado con los comentarios q se presentan como ayuda ya q deben aclarar la situación al usuario y no despistarla. Hay q ser conciso y claro.

En algunas ocasiones se nos pide confirmación x medio de ventanas para realizar la próxima acción. No hay q abusar de ellas. Hay q usarlas solo en el caso de q la sig. acción sea irreversible. Además, hay q dejar una puerta para q el usuario pueda escapar de alguna acción no deseada y así volver a la pantalla anterior. (Se recomienda el uso del botón cancelar) Tb. se recomienda no enviar mensajes de error q el usuario no entienda.

Es importante no dejar q la pantalla se llene de objetos o ventanas ya q este caso la visualización será difícil.

En cuanto a la disposición de controles, lo normal es q dentro de una ventana se coloquen un cjto de controles q respondan a los dif eventos. Para ello hay q tener en cuenta lo sig.:

  • No recargar la pantalla de controles, si se necesitan todos, es mejor usar varias ventanas e ir pasando de uno a otro.

  • Es aconsejable alinear los controles, horizontal y verticalmente, siempre hay alguna opción de diseño q nos facilite esta tarea.

  • Hay q agrupar aquellos controles q x su funcionalidad deban ir juntos. Podemos usar para ello, controles q contengan otros controles (marcas o similares).

  • Es conveniente elegir el orden de tabulación con objeto de poder desplazarse x los controles usando la tecla del tabulador.

Botones:

Se usan para desencadenar acciones importantes, suponen una alternativa al uso de los menús ya q sus acciones se ejecutan + rápidamente (no es aconsejable llenar la pantalla de botones).

La colocación de botones se debe hacer preferiblemente en la parte inferior dcha. de la ventana (uno al lado del otro, pegados o separados) tb se puede situar en columna a la dcha. de la ventana o juntos en una barra de botones bajo la barra de menús.

El contenido de los botones (texto o gráfico) debe ser claro y legible. Hay q evitar ambigüedades q puedan producir una interpretación errónea sb su función.

Algunos nombres de botones q aparecen de forma estándar en todas las aplicaciones (ayuda, cancelar, cerrar, imprimir, salir, copiar, OK,...) Es conveniente permitir el acceso directo mediante la tecla ALT+LETRA a todos los botones para q puedan ser usados en caso de no disponer de ratón. Cuando un botón no esta activado, su texto debe aparecer en tono gris.

Menús:

Hay q tener en Cta. las sig. recomendaciones:

  • La barra de menús, debe aparecer en la parte superior de la ventana, bajo la barra del titulo.

  • Solo la ventana q inicia la aplicación debe contener menús.

  • El num. de subniveles o submenús disponibles debe limitarse (1 ó 2 como mucho).

  • Los nombres de los menús es aconsejable q sean los mismos o lo + parecido posible a los q aparecen en las aplicaciones + usadas (ofimática) Su nombres se limitará a una sola palabra.

  • Las dif opciones del menú deberían ser accesibles directamente mediante teclas. Se pueden emplear algunos de estos accesos q son estándar.

CTRL. + X = cortar

CTRL. + C = copiar

CTRL. + V = pegar

  • Las dif opciones del mismo menú desplegadle se deben agrupar según su tipo de funcionalidad.

  • Siempre se debe usar las disposiciones estándar de los menús de Windows.

Aquellas opciones del menú q no sedan habituales se deben ordenar según varios aspectos: frecuencia de uso, importancia, secuencia de tareas y el orden numérico o alfabético y además los nombres deben ser cortos y descriptivos.

Tipos de letras:

“System” o algún tipo de “Sans Sheriff” según manuales. La mayoría de las veces es preferible usar las opciones x defecto, evitar el empleo de mayúsculas en los textos y no mezclar tipos, tamaños y estilos.

Manejo de errores:

Sus recomendaciones:

  • Es aconsejable usar texto fácilmente comprensible.

  • Si el error es grave hay q procurar enfatizar el aviso

  • Se debe mostrar al usuario lo q debe hacer ante un error.

Color:

Su uso requiere un cuidado muy especial.

  • Hay q tener en Cta. q todavía quedan monitores sin color (algunos portátiles).

  • No mezclar los colores de cualquier manera

  • Se debe usar el color para llamar la atención.

  • Hay q tener en Cta. q los colores chillones cansan rápido.

  • Si la aplicación ha de usarse durante mucho tiempo seguido deben usarse colores suaves.

  • El texto debe ser legible claramente hay q usar él + apropiado según el fondo. (Negro, azul oscuro, blanco,...) no hay q usar nunca el gris ya q es el color de los elem desactivados.

  • Se recomienda usar el mismo color para el mismo tipo de objetos en 1 aplicación.

  • No se debe emplear el color para dar significado a los datos. Ejemplo: no se deben poner las cantidades negativas en rojo.

  • No hay q abusar del num. de colores empleados en la misma ventana.

  • No usar el color para intentar hacer atractiva una aplicación de escasa funcionalidad.

4. - VISUAL Basic 6.0.

Introducción:

VB 6.0. es uno de los lenguajes q despierta interés tanto en programadores expertos como el novatos.

  • Los EXPERTOS: x la facilidad con la q desarrollan aplicaciones complejas en poco tiempo.

  • Los NOVATOS: x el hecho de los resultados obtenidos a los pocos minutos de empezar su aprendizaje.

VB es un lenguaje de programación de 4º generación, esto es, q un gran número de tareas se realiza sin escribir en código, simplemente con operaciones gráficas realizadas directamente sb la pantalla.

VB es un programa basado en objetos (no orientado a objetos) la dif está en q el VB usa objetos con propiedades y métodos, pero carece de los mecanismos de herencia y polimorfismo (no hereda métodos)

Programas secuenciales, interactivos y orientados a eventos:

Al principio cuando aparecieron los nodos los programas eran de tipo secuencial (bats). Un programa secuencial es un programa q se arranca, lee los datos q necesita, realiza los cálculos q imprime o guarda los resultados en disco. Cuando un programa secuencial sé esta ejecutando no necesita la intervención del usuario. A este tipo de programas tb se les llama basados u orientados a procedimientos.

Los programas interactivos (on-line) exigen la intervención del usuario en tiempo de exe bien para suministrar datos o para indicar al programa lo q debe hacer x medio de menús. Los programas interactivos limitan y orientan la acción del usuario.

Los programas orientados a eventos son los programas típicos de Windows (Word, Excel,...). Cuando uno de estos programas ha arrancado lo único q hace es quedarse a la espera de las acciones del usuario (eventos). El usuario indica si quiere abrir y modificar un fichero existente o comenzar a crear una nueva. Estos programas pasan la mayor parte del tiempo, esperando las acciones del usuario (eventos) y respondiendo a ellas. Las acciones q el usuario puede realizar en un momento determinado exigen un tipo especial de programación, la programación orientada a eventos. Este tipo de programación, es + complicada q la secuencial y la interactiva, sin embargo, VB la hace sencilla.

Programas para el entorno Windows:

VB está orientado a la realización de programas para Windows, pudiendo incorporar todos los elementos de este entorno y formato: ventanas, botones, menús, casillas de verificación, gráficos,...

Prácticamente todos los elem de interacción con el usuario de los q dispone Windows 95/98/NT pueden ser programados en VB de modo sencillo.

Modo de diseño y de ejecución

La aplicación de VB puede trabajar de 2 modos diferentes:

  • El modo diseño, el usuario construye interactivamente la aplicación colocando controles en los formularios, definiendo propiedades y desarrollando funciones para gestionar eventos

  • El modo ejecución, el usuario actúa sb el programa (eventos) y prueba como responde ese programa.

Nota: hay propiedades q solo pueden establecerse en modo diseño y otra s únicamente en modo de ejecución ya q no son visibles en modo diseño.

Formularios y controles:

Los botones, cajas de dialogo y de texto, cajas de selección, botones de opción y verificación, barras de desplazamiento vertical y horizontal y otros muchos tipos de elem son controles para VB. Cada control debe de tener un nombre a través del cual se puede hacer ref. A él en el programa. VB nos proporciona nombre x defecto q el usuario puede modificar.

En VB se llama formulario (form) a una ventana. Un formulario puede ser considerado como una especie de contenedor para los controles. Una aplicación puede constar de varios formularios. Los formularios tb tienen q tener nombre.

Objetos y propiedades:

Los formularios y los dif tipos de controles son entidades genéricas de las q puede haber varios ejemplos en cada programa.

En programación basada en objetos se llama clase a estas entidades genéricas mientras q se llama objeto a cada ejemplar de una clase determinada.

Cada formulario y cada tipo de control tiene un cjto de propiedades q definen su aspecto gráfico (tamaño, color, posición en la ventana,...) y tb la

forma de responder a las acciones del usuario (x ejemplo: si esta activo o no. Cada propiedad tiene un nombres q viene ya definido x el lenguaje.

Las propiedades de un objeto son datos q tienen los valores lógicos (verdadero o falso) o numéricos concretos.

Son propios de ese objeto y dif de otros de los de su clase. A cada clase, tipo de objeto o ctrl. se le asigna un cjto de propiedades y cada objeto o ctrl. tiene unos valores determinados para las propiedades de su clase. Casi todas las propiedades de los objetos pueden establecerse en tiempo de diseño y en tiempo de ejecución. en este segundo caso se accede a los valores por medio de las sentencias del programa (igual q cualquier variable en un lenguaje de programación. Para algunas propiedades esta es la única forma de acceder a ellas. Se puede acceder a una propiedad de un objeto x medio del nombre del objeto a q pertenece seguido de un punto y el nombre de la propiedad:

Nombre del objeto. Nombre de la propiedad

Nombres de objetos

Cada objeto debe tener un nombre x medio del cual se hace referencia a dicho objeto. El nombre puede ser escogido x el usuario aunque VB también proporciona nombres x defecto. Estos nombres x defecto hacen referencia al tipo de ctrl. y van seguidos de un número, este número se incrementa a medida q se van introduciendo más controles de ese tipo de formulario (x ejemplo. Uscrall, Hscroll). Los nombres x defecto no son adecuados ya q hacen ref. al tipo de control pero no indican el uso q el programador indica de dicho control. (x ejemplo: si se usa 1 barra de desplazamiento para introducir la temperatura conviene q se haga referencia a la palabra temperatura (x ejemplo hbstempe)),

Existe una convención para crear nombres, se usan siempre 3 letras minúsculas q indican el tipo de ctrl. , seguidas de otras letras (la primera en mayúsculas a modo de separación) escogidas x el usuario y q hacen ref. al uso q se va a dar de ese ctrl. (hbsTemperatura).

ABREVIATURA

CONTROL

,chk

Chech box

.cmd

Command button

,drv

Drive list box

,frm

Formulario

,hsb

Horizontal scroll bar

,lbl

Label (etiqueta)

,lst

Lista

,opt

Opcion button

,tmr

Timer

,cbo

Combo y drop list box

,dir

Dir list box

,fil

File list

,fra

Frame

,img

Images

,lin

Linea

,mnu

Menú

,pct

Picture box

,txt

Text edit box

,vsb

Vertical scroll bar

Eventos:

A las acciones del usuario sobre el programa, se llaman eventos. X ejemplo: son eventos; el clic sobre un botón, el doble clic sobre un fichero, arrastrar un icono, pulsar una tecla, etc.

Cada vez q se produce un evento sobre un determinado tipo de ctrl. VB arranca un procedimiento q hace la acción programada x el usuario para ese evento. Estos procedimientos se llaman con un nombre q se forma a partir del nombre del objeto y el nombre del evento separados x un guión. X ejemplo: cmd.Final_click()

Métodos:

Son funciones q también son llamadas desde el programa, sin embargo, a diferencia de los procedimientos no son programados x el usuario (vienen PRE-programados con el lenguaje). Los métodos realizan tareas típicas y comunes para todas las aplicaciones. X ello viene con el lenguaje. X ejemplo: los controles gráficos tienen un método llamado LINE q se encarga de dibujar líneas rectas.

Proyectos y ficheros:

Cada aplicación q se empieza a desarrollar en VB es un nuevo proyecto. Un proyecto comprende otros componentes + sencillos como x ejemplo: los formularios (q son las ventanas de las interfaces de usuario de la nueva aplicación) y los módulos (q son conjuntos de funciones y procedimientos sin interfaces gráfica de usuario).

Un proyecto se compone siempre de varios ficheros, (x lo menos 2) y hay q guardar cada uno de ellos en el directorio adecuado y con el nombre adecuado.

  • Fichero de proyecto (Fichero / guardar proyecto como...) *.vbp

  • Fichero de formulario(fichero / guardar fichero)*.frm

  • Ficheros de código o módulos (fichero / guardar fichero). Modulo estándar (*.bas) o módulo de clase (*.cls).

El entorno de programación de VB 6.0

VB es una herramienta q nos permite crear aplicaciones propias (Windows 95/98/NT) con ella se puede crear desde una calculadora hasta una hoja de cálculo, procesador de texto o cualquier otra aplicación.

Sus aplicaciones en ingeniería son ilimitadas, funciones matemáticas, simulación de circuitos, representaciones de movimientos, etc.

Aspectos del entorno de trabajo de VB

La barra de menús y la barra de herramientas.

La barra de menús es similar a la de cualquier otra aplicación de Windows. Bajo esta barra aparecen 4 barras de herramientas: depurar, edición, editor del formulario y estándar. X defecto únicamente aparece en la barra estándar.

En la barra de herramientas estándar se puede ver a la dcha. 2 recuadros con números, éstos representan 4 propiedades del formulario referentes a su posición y tamaño.

TOP y LEFT nos indica la posición de la esquina superior izq. del formulario y las otras 2 HEIGHT y WIDTH nos indican el tamaño de dicho formulario (trabajamos con unas unidades q se llaman TWIPS q es la vigésima parte de un punto. (1 pulgada=72 puntos).

El menú archivo tiene una serie de novedades, lo + importante es la distinción entre proyectos y todos los demás ficheros (un proyecto reúne y organiza todos los ficheros q componen el programa. Estos ficheros pueden ser: formularios, módulos, clases, recursos, etc. El programa tb nos permite tener + de 1 proyecto abierto en un momento determinado, lo cual nos puede resultar útil en ocasiones, para ello pulsamos “Agregar proyecto”, sin embargo, con los comandos “Nuevo proyecto” o “Abrir proyecto” se llama a un nuevo proyecto, pero cerrando previamente los que estaban abiertos.

Tampoco el menú de Edición presenta cambios importantes sobre la q es habitual. X el contrario el menú ver es bastante propio de VB. Este menú, permite hacer aparecer las diferentes ventanas del entorno del desarrollo así como acceder a un formulario o al código asociado a un control, también aparece si pulsamos 2 veces dicho control.

El menú proyecto nos permite añadir diferentes tipos de elementos a un proyecto (formularios, módulos, etc.) con “propiedades de proyecto” se puede indicar cual va a ser el formulario con la q se arranca la aplicación (objeto inicial). Con el comando “Componente” se pueden añadir nuevos controles a la caja de herramientas q aparece a la izq. de la pantalla..

El menú format contiene opciones para controlar el aspecto de la aplicación (alinear controles, espaciarlos uniformemente, etc.).

Los menús Depuración y Ejecutar permiten controlar la ejecución de las aplicaciones. Se puede ver en detalle como funcionan una vez codificadas, ejecutadas paso a paso o yendo hasta una línea de código determinada.

Son especialmente útiles cuando hay q encontrar a unos errores o ejecuciones paso a paso viendo resultados intermedios.

En el menú herramientas se encuentran los comandos para arrancar el menú editor (sirve para crear menús) y además establecer las opciones del programa. La etiqueta entorno determina las propiedades del entorno del proyecto, siendo 1 de las + importantes de la opción para actualizar o no los ficheros de ejecución. En la etiqueta general se establece la opciones referentes a la rejilla. En la etiqueta editor podemos establecer la necesidad de declarar todas las variables, junto con el resto de opciones de edición. El formato del editor nos permite establecer el tipo de letra y los códigos de color.

El menú ayuda q se encuentra en VB se basa en una clasificación temática y ordenada de la información (contenido) disponible, en una clasificación alfabética (índice) y en la búsqueda de información sobre algún tema con el nombre (buscar). La tecla F1 permite ayuda directa, sensible al contexto.

Caja de herramientas:

Incluye los controles con los q se puede diseñar la pantalla de la aplicación. Estos controles son x ejemplo: botones de comando, etiquetas, cuadros de texto, etc.

Para introducir un ctrl. En el formulario hay q hacer clic en el icono adecuado de la caja de herramientas y colocarlo en el formulario con la posición y tamaño deseado. Pulsando 2 veces sobre el icono de un control este aparece en el centro del formulario a continuación se cambia su tamaño y / o se traslada con el ratón al punto deseado.

Formularios y módulos:

Los formularios son las zonas de la pantalla sobre las q se diseña el programa y sobre las q se sitúan los controles de la caja de herramientas. Al ejecutar el programa el formulario se convierte en la ventana de la aplicación donde aparecen los botones de texto, gráficos, etc.

Para lograr una mejor presentación existe una maya o retícula q nos permite alinear los controles manualmente de una forma precisa (no es necesario meter las coordenadas). Esta maya solo es visible en tiempo de diseño al ejecutar el programa desaparece.

Para crear un programa hay q dar dos pasos:

  • Diseñar la parte gráfica (formularios, botones, menús,...).

  • Realizar la programación q gestione la respuesta del programa ante los diferentes eventos.

La ventana de propiedades

Todos los objetos tienen unas propiedades q los definen: Su nombre (name), etiqueta o título (caption), texto q contiene (text) o si está o no activado (enabled).

Todas estas propiedades se almacenan dentro de cada control o formulario, en forma de estructura (similar a las de lenguaje C) x tanto, si en algún momento, se quiere modificar el nombre de un botón, basta con hacerlo en la ventana de propiedades (tiempo de diseño) o en el código Basic (tiempo de ejecución).

En el caso de q no aparezca la pantalla de propiedades se puede activar (con el menú, con botón barra de herramientas o pulsando F4). Esta ventana tiene 2 etiquetas q permiten ordenar las propiedades alfabéticamente o x categorías.

Creación de programas ejecutables

Una vez finalizada la programación de la nueva aplicación la siguiente tarea consiste en crear un programa ejecutable para su distribución e instalación.

Para crear un programa ejecutable se usa el comando: archivo / hacer nombre de proyecto.exe. De esta manera se genera un fichero *.exe Para q este programa funcione en un nodo solo se necesita el fichero MSVBVM60.DLL instalado en C:\Windows\system ó C:\WinNt\system32.

En el caso de proyectos + complejos o con muchos controles, pueden ser necesarios + ficheros, la mayoría de ellos con extensiones .*ocx, *vbx, *dll. En cualquier caso para saber cuales son los ficheros necesarios se puede consultar el fichero de proyecto (*vbp) q contiene la descripción del proyecto.

Propiedades comunes a varios controles

Hay algunas propiedades q son comunes a muchos controles:

  • Appearance: establece un objeto. Tiene aspecto plano (0) o tridimensional (1).

  • Backcolor: color de fondo

  • Caption: establece el texto q aparece dentro del objeto o al lado suyo (titulo).

  • Enabled: indica si un objeto si se puede modificar o no

  • Font: establece el tipo de fuente

  • Fore color: establece el color de texto y/o gráficas.

  • Heigth y Width: establece la altura y anchura de un texto.

  • Left y Top: establece la distancia horizontal y vertical entre el control y el objeto q lo contiene.

  • MousePointer: establece la forma del puntero del ratón al posicionarse sobre un objeto.

  • Visible: si es visible o invisible el objeto.

Ejercicio 1: vamos a crear una aplicación en la q cuando pulsemos el botón de comando de texto debe aparecer una frase en el cuadro de texto y cuando pulsemos el botón salir, termine.

Ejercicio2: crear un formulario con 3 botones de comando y un cuadro de texto q tenga las siguientes propiedades:

    • Los botones se van a llamar: Normal, por defecto, cancelar (Caption).

    • Cuando pulsemos uno de los botones tiene q aparecer el contenido de su propiedad Caption, en dicho cuadro de texto.

Descripción de los controles más usados

Botón de comando:

Sus propiedades + importantes son:

  • CAPTION y las q hacen referencia a su posición TOP y LEFT.

  • Su apariencia externa se modifica mediante HEIGHT y WIDTH

  • La propiedad ENABLED nos permite determinar si puede ser pulsado o no .

  • No hay q confundir CAPTION y NAME: Caption define el texto q aparece escrito en el control NAME y el nombre interno con el q se hace referencia a dicho control. Si la propiedad Caption se pone el carácter & antes q cualquier letra aparece subrayado en el botón. Esto quiere decir, q dicho botón puede activarse con el teclado Alt+letra subrayada.

El evento q siempre suelen tener programados los botones es el evento CLIC.

Cajas de texto

Su propiedad + importante es TEXT q almacena el texto contenido en ella. En algún momento se puede pedir q el acceso a la caja de texto, para ello, ENABLED, tiene q estar con valor falso.

La propiedad LOCKED con valor verdadero hace q la caja de texto sea solo de lectura.

La propiedad MULTILINE determina si una caja de texto se puede incluir + de 1 línea o si se ignoran los saltos de línea (intro).

La justificación o centrado de texto lo controla la propiedad ALIGNMENT.

La propiedad SCROLLBARS, permite controlar q aparezca una, ninguna o las 2 barras de desplazamiento.

En una caja de texto no se pueden meter intros, con el teclado en modo diseño. En modo de ejecución se deben introducir como caracteres ASCII (código 13 seguido del 10).

Otras propiedades importantes, hacen referencia a la selección del texto y solo están disponibles en tiempo de ejecución.

SELSTART posiciona el cursor comienza del texto q se quiere seleccionar (el primer carácter es 0).

SELLENGTH indica él numero de caracteres o longitud de la selección.

SELTEXT es una cadena de caracteres q representa el texto seleccionado.

MAXLENGTH sirve para determinar el número máximo de caracteres q pueden introducirse en la caja de texto.

Se usa la caja de texto como entrada de datos se puede usar SETFOCUS para enviar el foco a la caja cuando se considere oportuno.

FONTNAME hace referencia al tipo de letra.

FONTSIDE al tamaño

FONTUNDERLINE subrayar.

FONTBOLD negrita

FONTITALIC cursiva.

Etiquetas o label

Su propiedad + importante es CAPTION q contiene el texto q aparece sobre el control, esta propiedad puede ser modificada desde el programa pero no interactivamente pinchando sobre ella (a diferencia de las cajas de texto) puede hacer la del tamaño, color, ...

AUTOSIZE ajusta la etiqueta al tamaño del texto y WORDWRAP hace q el texto se distribuya en varias líneas cuando no cabe en una.

Botones de opción (option Button)

VALUE q en un determinado momento solo puede ser verdadero en uno de los botones ya q se trata de opciones excluyentes para agrupar botones se coloca primero un marco (frame) en el formulario y estando seleccionado se colocan en él, él numero de botones de opción q se desee.

En un mismo formulario se pueden colocar tantos grupos de botones de opción como se quiera (cada uno de ellos dentro de su propio marco)

Es muy importante crear primero el FRAME y luego colocar los BOTONES, con esto se consigue q solo uno de ellos pueda estar activado.

Si no se coloca ningún frame todos los botones del formulario forman parte del mismo grupo.

Barra de desplazamiento (ScrollBar):

Este tipo de control tiene como propiedades: MAX y MIN q determinan el rango donde esta incluido su valor.

LARGE CHANGE y SMALL CHANGE determinan lo q se modifica su valor al hacer clic en la barra o en el botón con la flecha.

VALUE determina el valor actual de la barra de desplazamiento. Las barras de desplazamiento no tienen propiedad CAPTION.

Eventos asociados a estos controles:

  • Botón de comando: tienen asociado el evento clic.

  • Cajas de texto: los eventos q se programan son: CHANGE (cuando se quiere realizar alguna modificación en el contenido de la caja también se usan clic y doble clic y en algunos casos especiales KEYPRESS para controlar los caracteres q se introducen).

  • Botones de opción: suelen tener asociado el evento KEYPRESS al igual q los botones de selección.

  • Evento CHANGE: se activa cuando la barra de desplazamiento modifica su valor.

  • Evento KEYPRESS: sucede cuando el usuario pulsa y suelta una determinada tecla. En el procedimiento asociado con este evento solo es necesario conocer el código ASCIII de la tecla pulsada.

La condición VAL convierte una serie de caracteres numéricos (con los q no se puede operar) en números (con los q sí se puede operar).

Además el operador SUMA aplicado a cadenas de caracteres da como resultado su concatenación.

EVENTO CLIC y 2 CLICKS: este evento se activa cuando el usuario pulsa uno de los botones del ratón (soltando rápidamente). También se puede activar desde código (sin tocar el ratón), para ello usamos la propiedad VALUE de algunos de los controles.

En el caso de un formulario este cuento se activa cuando el usuario hace clic sobre 1 zona del formulario (en la q no haya ningún control) o sobre un control q en ese momento este inhabilitado (enabled = false).

En el caso de 1 control, el evento se activa cuando el usuario realiza una de las siguientes operaciones:

  • Hacer clic sobre 1 control con el botón derecho o izquierdo del ratón, en el caso de un botón de comando, de selección o de opción solo se puede con el botón izquierda.

  • Seleccionar un registro de alguno de los varios tipos de listas despegables q dispone VB

  • Pulsar la BARRA ESPACIADORA cuando el foco está en un botón de comando, de selección o de opción.

  • Pulsar INTRO cuando el formulario hay 1 botón q tiene su propiedad (Default = true)

  • Pulsar ESC cuando en 1 formulario hay 1 botón q tiene su propiedad (Cancel=true).

  • Pulsar una combinación de teclas aceleradoras ALT.+ Letra. También se puede activar el elemento clic desde código haciendo q la propiedad VALUE de un botón de comando, de opción o botón de selección valga TRUE.

EVENTO FOCUS: en Windows siempre hay un control, formulario o ventana q puede recibir la entrada desde el teclado. En cada momento, ese control, ventana o formulario es el q dispone del FOCO (FOCUS). El objeto q posee el foco está resaltado con letra negrita, con un contorno + vivo, o con el cursor parpadeando dentro de él. Este foco puede ser trasladado de un objeto a otro, usando código.

Cada vez q 1 objeto pierde el foco se produce su evento LOSTFOCUS y cada vez q un objeto recibe el focus GOTFOCUS.

El método SETFOCUS me permite dar el foco al objeto q se aplica.

2 propiedades de muchos controles relacionados con el foco son: TABINDEX y TABSTOP

Tabstop determinará si el foco se va a posar o no pulsar la tecla TAB, si Tabstop está en FALSO no se puede obtener el foco mediante el tabulador.

Tabindex determina el orden en el q esto va a suceder, así, x ejemplo al cargar un formulario el foco está en aquel objeto cuyo TABINDEX sea cero). Al pulsar la tecla TAB el foco va al objeto q tenga TABINDEX=1.

  • Para retroceder en la lista, se pulsan las teclas MAY y TAB.

  • Para q un formulario reciba el foco es necesario q no haya en el ningún control q sea capaz de recibirlo.

Eventos asociados al formulario

Cuando se arranca una aplicación se producen varios eventos consecutivos al cargar x primera vez el formulario: INITIALIZE, LOAD, ACTIVATE, PAINT. Cada uno de estos eventos se puede aprovechar para realizar ciertas operaciones x medio de la función correspondiente.

Al ocultar, cerrar o eliminar un formulario se producen otra serie de eventos: DEACTIVATE, QUERYUNLOAD, UNLOAD y TERMINATE.

Para inicializar las variables definidas a nivel de modulo se suele usar el evento INITIALIZE, este evento tiene lugar antes q él LOAD (cargar formulario).

Con el formulario principal esto sucede al arrancar la ejecución de un programa y con el resto de los formularios al mandarlos cargar desde cualquier procedimiento o hacer referencia a alguna propiedad de control de un formulario q no esté cargado. Al descargar un formulario se produce el evento UNLOAD. Si se detiene el programa con el botón STOP o con un END no se produce el evento UNLOAD.

Para pasar x el evento UNLOAD es necesario cerrar la ventana con el botón de cerrar o llamarlo de manera explícito al evento. El evento QUERYUNLOAD se produce antes q el evento un load y permite x ejemplo enviar un mensaje de confirmación.

El evento LOAD de un formulario normalmente se usa para ejecutar una función q de valor a sus propiedades y a las de controles. No se puede usar para dibujar o imprimir sobre el formulario debido a q en el momento en q se produce ente evento el formulario no esta todavía disponible para dichas operaciones x ejemplo: si en el formulario debe aparecer la salida del método PRINT o los métodos gráficos PSET, LINE, CIRCLE (puntos para dibujar). En estos casos puede usarse el evento PAINT u otro posterior pero no él LOAD.

Se puede ocultar un formulario sin descargarlo, usando el método HIDE (esconder) o mediante las propiedades Visible = False. Esto hace q el formulario desaparezca de la ventana pero sus propiedades y variables siguen siendo accesibles y conservando sus valores. Para hacer visible un formulario se usa el método SHOW o Visible = True. Si el formulario no había sido cargado anteriormente el método SHOW genera los 4 eventos.

Cuando un formulario pasa a ser la ventana activa se produce el evento ACTIVATE y al dejar de ser la ventana activa DESACTIVATE. En el caso de q el formulario q va a ser activo no estuviera cargado ya sucederían primero los eventos INITIALIZE y LOAD y luego ACTIVATE y DESACTIVATE.

Ejercicio2:

`código del form principal

  • Private Sub cmdcargar_click()

FrmSecundario.Show

End Sub

`código del form secundario

  • Private Sub cmdHide_click()

Hide

End Sub

  • Private Sub cmdunload_click()

Unload me

End Sub

  • Private Sub formr_Activate()

MsgBox (“Evento Activate”)

End Sub

  • Private Sub formr_Deactivate()

MsgBox (“Evento Deactivate”)

End Sub

  • Private Sub formr_Initialize()

MsgBox (“Evento Initialize”)

End Sub

  • Private Sub formr_Load()

MsgBox (“Evento Load”)

End Sub

  • Private Sub formr_Paint()

MsgBox (“Evento Paint”)

End Sub

  • Private Sub formr_Terminate()

MsgBox (“Evento Terminate”)

End Sub

  • Private Sub formr_Unload()

MsgBox (“Evento Unload”)

End Sub

Botón de comando:

  • Form principal : NB:cmdCargar //// CAPTION:CargarFormulario.

  • Form secundario:

  • HIDE: NB:cmdhide ///CAPTION: hide

  • UNLOAD: NB:cmdunload ////CAPTION: Unload

Formularios:

  • Principal: NB:frmppal ////CAPTION:FormularioPrincipal

  • Secundario: NB:frmsecundario/////CAPTION:Formulario secundario

Eventos asociados a la CARGA de un formulario.

INITIALIZE: inicializa las variables al cargar un formulario.

LOAD: al arrancar el formulario principal y el secundario.

ACTIVATE: cuando un formulario pasa a ser la ventana activa

PAINT: cuando queremos q aparezca la salida de un método (Paint, Circle)

Eventos asociados a la DESCARGA de un formulario.

DESACTIVATE: cuando el formulario deja de ser la ventana activa.

QUERY UNLOAD: permite enviar un mensaje de confirmación antes de desactivarlo.

UNLOAD: descargar el formulario.

  • Con HIDE no hace el evento LOAD (porque? Porque la ventana está activa)

Ejercicio3:

Crear un programa q permita ver la equivalencia entre las escalas de temperaturas en ºC y ºF. Los ficheros de este proyecto se van a llamar Ejercicio4tempera.vpp y Ejercicio4tempera.frm. en el centro del formulario va a aparecer una barra de desplazamiento vertical. Los valores máximos y mínimos de la barra son 100º y -100º. A ambos lados de la barra aparecen 2 cuadros de texto, con los grados en ambas escalas, encima de los cuadros de texto 2 etiquetas q indiquen los ºC y ºF y un botón de comando con la opción SALIR.

'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

NAME: frmTemp

Formulario:

CAPTION: Conversor de temperaturas

Botón NAME: cmdSalir

Comando : CAPTION: Salir

FONT: MsSansSerif, Bold, 14

1) NAME: txtCent. TEXT: 0

Cuadro de

Texto: 2) NAME: txtSalir TEXT: 32

NAME: vbsTemp

Barra de MIN: -100 MAX: 100

Desplazamiento: SMALL CHANGE: 1

LARGE CHANGE:10

VALUE: 0

  • NAME: lblCent . CAPTION: Grados centígrados

  • Etiquetas: FONT: Ms Sans Serif, 10

  • NAME: lblFahr. CAPTION: Grados Fahrenheit

  • FONT: Ms Sans Serif ,10

    Ejercicio del IVA

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    ETIQUETAS:

    1) NOMBRE: lblimporte

    CAPTION: Importe

    2) NOMBRE: lbl16iva

    CAPTION: 16 % IVA

    4) NOMBRE: lbliva

    CAPTION: 0

    5) NOMBRE: lblResul

    CAPTION: 0

    NOMBRE: cmdContinuar

    CONTINUAR

    CAPTION: Continuar

    NOMBRE: cmdTotal

    TOTAL

    CAPTION: Total

    BOTON DE COMANDO:

    NOMBRE: cmdSalir

    SALIR

    CAPTION: Salir

    NOMBRE: txtImporte

    CUADRO DE TEXTO

    TEXT: Importe

    NOMBRE: frmIva

    FORMULARIO:

    CAPTION: calculo del IVA

    MODO DE HACERLO

    Private Sub cmdContinuar_click ()

    TxtImporte.Text= “ “

    Txtimporte. Setfocus

    LblIva.Caption= “ “

    Lblresul.caption= “ “

    End sub

    Private Sub cmdSalir_click()

    End

    End sub

    Private Sub cmdTotal_clic()

    LblIva.Caption=txtImporte.text * 0.16

    Lblresul.caption= val(lblIva.caption) + val(txtimporte.text)

    End sub

    LENGUAJE BASIC

    COMENTARIOS Y OTRAS UTILIDADES EN LA PROGRAMACIÓN CON VB

    VB interpreta q todo lo q está a la derecha del carácter (`) interpreta un comentario y no lo tiene en cuenta como instrucción.

    Otro aspecto práctico en la programación es la posibilidad de escribir 1 sentencia en más de una línea para ello es necesario dejar un espacio en blanco al final de la línea y escribir a continuación el carácter (_).

    Una limitación a los comentarios es q no se puede introducir en 1 línea en la q se ha metido el carácter de continuación (_).

    VB nos permite incluir varias sentencias en una misma línea para ello las sentencias deben ir separadas por dos puntos (:). Ejemplo: m=a : n=b : p=c `3 sentencias en una línea.

    PROYECTOS Y MODULOS

    Un proyecto es el conjunto de todos los ficheros o módulos necesarios para q el programa funcione. La información referente a esos ficheros se almacena en un fichero .vbp Si se edita este fichero con cualquier editor de texto se comprueba q la información q almacena es la localización en los discos de los módulos q forman parte de ese proyecto, los controles usados (*.ocx) etc. En el caso más simple un proyecto está formado por un único form y consta de dos ficheros, el q define el proyecto (*.vbp) y el q define el formulario (*.frm).

    Los módulos q forman parte de un proyecto, pueden ser de varios tipos:

    • Aquellas q están asociadas a un formulario (*.frm)

    • Los q contienen únicamente líneas de código (Basic, *.basic). estas se llaman módulos estándar.

    • Las q definen código y datos denominados clases (*.cls) se les llaman módulos de clase.

    Un módulo *.frm está constituido x un formulario y toda la información referente a los controles en el retenidos. Además de todo el código programado en las cuentas de esos controles, en el caso de q existan las funciones y procedimientos propias de ese formulario.

    Una función es una porción de código independiente q realiza una determinada actividad. En VB hay dos tipos de funciones:

    • Function: q se caracterizan por tener valor de retorno.

    • Procedimientos: q no lo tienen.

    Un módulo de código estándar *.vas contendrá 1 ó varias funciones y / o procedimientos, además las variables a los q se podrán acceder de cualquiera de los módulos (módulos q forman el proyecto)

    VARIABLES Y FUNCIONES DE AMBITO LOCAL

    Un módulo puede contener variables y procedimientos o funciones públicos y privados. Los públicos son aquellos a los q se puede acceder libremente desde cualquier parte del proyecto (desde cualquier modulo) Para definir una variable, un procedimiento o una función publico es necesario preceder a la definición de la palabra public. Ejemplo:

    Public variable1 as integer

    Public Sub Procedimiento1 (Parametro1 as integer,...)

    Public Function Funcion1 (Parametro1 as integer,...)

    Para usar una variable Public o llamar a una función Public definidas en 1 formulario desde otro modulo se debe preceder el nombre de la variable o procedimiento con el nombre del formulario al que pertenece.

    Formulario_modulo1

    Modulo1.variable1

    Call modulo1.procedimieto1 (parametro1,...)

    Retorno= modulo1.función (parametro1,...)

    Si el módulo al q pertenece la variable o procedimiento, es un módulo estándar (*.vas) no es necesario poner el nombre del módulo delante, únicamente en el caso de q exista coincidencia con los nombres de otro módulo estándar.

    Una variable PRIVATE no es accesible desde ningún otro módulo dif de aquel en el q se haya declarado.

    Se llama variable LOCAL a una variable definida dentro de un procedimiento o función. Las variables locales no son accesibles más q desde el procedimiento o función en el q han sido definidos. Esta variable, es reinicializada a cero x defecto cada vez q se entra en el procedimiento, es decir, q una variable local no conserva su valor entre una llamada al procedimiento y al siguiente. Para hacer q el valor de la variable se conserve hay q declarar la variable como STATIC. VB inicializa una variable estática solamente la primera vez q se llama al procedimiento. Para declarar una variable estática se usa la palabra STATIC en lugar de DIM. Si un procedimiento se declaran static todas sus variables locales tienen carácter static.

    Static z as Integer

    VARIABLES Y FUNCIONES DE AMBITO GLOBAL

    Se puede acceder a una variable o función global desde cualquier parte de la aplicación.

    Para hacer q una variable sea global hay q declararla en la parte general de un modulo estándar (*.bas).

    Para declarar una variable global se usa la palabra PUBLIC. X ejemplo:

    Public var1_global As Double, var2_global as Integer

    La dif entre las variables y / o procedimientos Public de los formularios y de los módulos estándar está en q las de los procedimientos deben ir precedidas x el nombre del formulario cuando se llaman desde otro modulo dif mientras q las de un modelo estándar (*.bas) solo deben ser cualificadas (poner el nombre delante) si hay coincidencia de nombre.

    Tipo De Variable

    Lugar de declaraciones

    Accesibilidad

    Global o Public

    Declaraciones de *.bas

    Desde todos los ficheros

    Dim o Private

    Declaraciones de *.bas

    Desde todas las funciones de ese modulo

    Public

    Declaraciones de *.frm

    Desde cualquier procedimiento del propio formulario y desde otras, precedida del nombre del módulo en el q se ha declarado.

    Dim o Private

    Declaraciones de *.frm

    Desde cualquier procedimiento del propio formulario-

    Local

    Cualquier procedimiento de un módulo

    Desde el propio procedimiento

    VARIABLES

    Dada la dificultad de hacer ref. a un dato x medio de su dirección de memoria se ha hecho habitual el uso de identificadores.

    Un identificador es un nombre simbólico q se refiere a un dato o programa determinado. Es muy fácil elegir identificadores cuyo nombre guarde relación con el sentido físico, matemático o real del dato q representa. X ejemplo:

    Salario bruto representa el coste anual de un empleado.

    El usuario no tiene q preocuparse de direcciones físicas, lo hace el sistema x medio de 1 tabla en la q se relaciona cada identificador en el tipo de dato q lo representa y la posición de memoria en la q está almacenado.

    VB tiene sus reglas para elegir los identificadores. Existe libertad para escoger el nombre, respetando las reglas del lenguaje y no usando un conjunto de palabras q son reservadas.

    VARIABLES Y CONSTANTES

    Una variable es un nombre q designa a una zona de memoria la cual contiene un valor de un tipo de información. Las variables pueden cambiar su valor a lo largo de la ejecución de un programa.

    Además de las variables existen las constantes q tb son identificadores, sin embargo, el valor q se encuentra en ese lugar de la memoria solo puede ser asignado una vez.

    El tratamiento y los tipos de datos es igual al de las variables. Para declarar una constante se usa la variable CONST. Ejemplo:

    Const variable1=459 `las constantes son privadas x defecto

    Public const MySing=”HELP” `declaración de 1 const publica

    Private Const My Int as integer=5 ` declaración de 1 const entera

    Const MySting2=”HOLA”, PI as double=3,14 `declaración múltiple de const en 1 línea

    NOMBRES DE LAS VARIABLES

    El nombre de 1 variable ( o constante) tiene q empezar x una letra y puede tener una long de hasta 205 caracteres. No se admiten espacios ni puntos si otros caracteres especiales

    Los caracteres pueden ser; letras, dígitos, carácter subrayado,... y los caracteres de declaración del tipo de la variable (%,&,#,!,@,$)

    En el nombre de 1 variable no puede ser una palabra reservada del lenguaje (for,if,next,bal,...) Para saber cuales son las palabras reservadas en VB se puede usar el HELP de dicho programa, buscando la ref. Reserved Words.

    Normalmente las palabras reservadas del lenguaje aparecen en el lector de código de color azul. VB no distingue entre mayúsculas y minúsculas. La declaración de 1 variable o la primera vez q se usa determina como se escribe en el resto del programa.

    También es habitual (NO = OBLIGADO) usar nombre con mayúsculas para las constantes simbólicas.

    TIPOS DE DATOS

    TIPO

    DESCRIPCIÓN

    CARÁCTER DE DECLARACIÓN

    RANGO

    Boolean

    Binario

    Verdadero o falso

    Byte

    Entero corto

    De 0 a 255

    Integer

    Entero (2 bytes)

    %

    -3276 a 32768

    long

    Entero largo (4 bytes)

    &

    -2147483648 a 2147483647

    Single

    Real simple precisión (4 bytes)

    ¡

    -340E + 38 a

    340E +38

    Double

    Real doble precisión (8 bytes)

    #

    -179D + 308 a

    179D + 308

    Currency

    Números con punto decimal fijo (8 bytes)

    @

    -922E+14 a

    922E+14

    String

    Cadena de caracteres

    $

    0 a 65500 caracteres

    Date

    Fecha (8 bytes)

    1 de enero de 1000 a 31 de diciembre de 9999. incluida la hora.

    Variant

    Fecha / hora; num enteros, reales o caracteres

    Ninguno

    Fecha / hora como date números: mismo rango q el tipo de valor almacenado

    User-defined

    Cualquier tipo de dato o estructura de datos. Se crean usando la sentencia Type

    ninguno

    Integer: para numerar filas y columnas de una matriz no muy grande. Para numerar habitantes de una ciudad o un numero de tfno,

    Single: variables físicas con decimales q no exijan precisión.

    Double: al revés pero si exigen precisión.

    Currency: para cantidades grandes de dinero.

    Si no se define una variable x defecto es de tipo VARIANT. Las variables de este tipo se adaptan a la información q se les asignan pero ocupan mucha memoria y su uso debe restringirse pq requieren más tiempo de CPU q los restantes tipos.

    Existen dos formas de agrupar varios valores:

  • arrays: agrupan datos de tipo homogéneo.

  • estructuras: agrupan la información de diferentes tipos, heterogéneos (son verdaderos tipos de datos definibles x el usuario).

  • Dim Nbdevariable As tipodevariable

    Dim radio as double, superficie as single

    Dim nombre as string

    Dim francos as currency

    Dim longitud as long, x as currency

    Dim i, j as integer

    .i = variant

    DECLARACIÓN EXPLICITA DE VARIABLES

    Para evitar q una variable no declarado se suponga como variant existe la opción OPTION EXPLICIT. De esta manera cuando 1 variable no ha sido declarado VB genera un mensaje de error (Menu / herramientas / opciones / editor = requerir declaración de variables)

    SENTENCIAS DE CONTROL

    Sentencias de ctrl. o estructuras nos permiten tomar decisiones y realizar un proceso repetidas veces, son las llamadas bifurcaciones y bucles. VB dispone de las sig estructuras de control:

    If ..... then ..... else

    Select case

    For.....next

    While......wend

    Do...... loop

    For each......next

    • if.....then....else: permite ejecutar condicionalmente dos o más sentencias se pueden escribir de dos formas.

    • If condición then sentencia1 [else sentencia2]

    • If condicion1 then

    Sentencia1

    Else

    If condicion2 then

    Sentencia2

    |

    |

    Else

    Sentencian

    End if

    End if

    Ejercicio:

    Crear un programa q incluya un formulario, un cuadro de texto y 3 botones de opción de manera q el texto q se mete en el cuadro cambie a negrita, cursiva, subrayado dependiendo de la opción q se pulse.

    Ejercicio:

    Maquina expendedora de bebidas y su funcionamiento es:

    • tenemos q crear un frame en el q incluyamos las bebidas (botones de opción)

    • si se ha pulsado alguna bebida excepto el café y el té (q aquí no pregunto) y a continuación pulsamos el botón aceptar tenemos que:

      • colocar en el botón comando PRECIO. El PRECIO de la bebida concatenado con la palabra PRECIO. Ejemplo: PRECIO:100 Ptas. Para ello podemos definir una variable q se llame PRECIO.

      • Desactivar la visualización del segundo frame

      • Desactivar los botones de comando ACEPTAR y SALIR

      • Colocar el foco en un botón llamado PRECIO

        • Si se pulsa el PRECIO vaciamos el caption de ese botón y desactivamos los botones de precio y salir haciendo únicamente visible la etiqueta BEBIDA.

        • Si pulsamos la etiqueta BEBIDA, activamos la visualización del primer frame y coloco todas las opciones a falso, sin pulsar. Activo el botón de PRECIO, ACEPTAR y SALIR

        • Preguntamos si se ha pulsado las opciones de Té y Café. Cuando terminamos activamos el 2º frame y preguntar si el Té o el Café es solo o con leche.

    CAFÉ SOLO: 100 INFUSION:100

    CAFÉ CON LECHE: 150 CALDO: 150

    TÉ SOLO: 150 LECHE:75

    TÉ CON LECHE:175 CHOCOLATE:100

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    Resultado:

    Dim precio As Integer

    Private Sub cmdAceptar_Click()

    If optCafe.Value = True Then

    fraComple.Visible = True

    If optSolo.Value = True Then

    precio = 100

    Else

    If optleche2.Visible = True Then

    precio = 150

    End If

    End If

    cmdPrecio.Caption = "Precio: " & Str(precio)

    Else

    If optTe.Value = True Then

    fraComple.Visible = True

    If optSolo.Value = True Then

    precio = 150

    Else

    If optleche2.Visible = True Then

    precio = 175

    End If

    End If

    cmdPrecio.Caption = "Precio: " & Str(precio)

    Else

    If optCaldo.Value = True Then

    precio = 150

    cmdPrecio.Caption = "Precio: " & Str(precio)

    Else

    If optChoco.Value = True Then

    precio = 100

    cmdPrecio.Caption = "Precio: " & Str(precio)

    Else

    If optInfusion.Value = True Then

    precio = 100

    cmdPrecio.Caption = "Precio: " & Str(precio)

    Else

    If optleche.Value = True Then

    precio = 75

    cmdPrecio.Caption = "Precio: " & Str(precio)

    End If

    End If

    End If

    End If

    End If

    End If

    cmdAceptar.Enabled = False

    cmdPrecio.SetFocus

    End Sub

    Private Sub cmdPrecio_Click()

    cmdPrecio.SetFocus

    End Sub

    Private Sub cmdSalir_Click()

    End

    End Sub

    Private Sub lblBebida_Click()

    cmdAceptar.Enabled = True

    optCafe.Value = False

    optTe.Value = False

    optCaldo.Value = False

    optChoco.Value = False

    optInfusion.Value = False

    optLeche.Value = False

    optleche2.Value = False

    optSolo.Value = False

    fraComple.Visible = False

    cmdPrecio.Caption = "Precio: "

    End Sub

    Private Sub optCafe_Click()

    fraComple.Visible = True

    End Sub

    Private Sub optTe_Click()

    fraComple.Visible = True

    End Sub

    SELECT CASE

    Permite ejecutar una entre varias acciones en función del valor de una expresión. Es una alternativa a IF-THEN-ELSE cuando se compara la misma expresión con diferentes valores.

    Select case expresión

    Case etiq1

    [sentencia1]

    case etiq2

    [sentencia2]

    case etiq3

    [sentencia3]

    case else

    [sentencia n]

    end select

  • Expresión

  • Expresión TO expresión

  • IS operador de relación expresión.

  • Combinación de las anteriores separadas x comas.

  • Ejemplo:

    Dim numero as integer

    Numero =8

    Select case numero

    Case 1 to 5

    Resultado =”se encuentra entre 1 y 5”

    Case 6,7,8

    Resultado = “se encuentra entre 6 y 8”

    Case is = 9 is = 10

    Resultado = “El valor es 9 o 10”

    Case else

    Resultado = “el numero no se encuentra entre 1 y 10”

    End select

    SENTENCIAS FOR....NEXT

    La sentencia FOR da lugar a un lazo o bucle y permite ejecutar un conjunto de sentencias, cierto numero de veces. Su formato es el siguiente:

    For variable = expresión1 TO expresion2 [sep expresion3]

    [sentencias]

    EXIT FOR `nos permite salir de 1 bucle antes q se termine

    [sentencias]

    NEXT [variable]

    “step” y “ exit for” son opcionales

    SENTENCIAS DO....LOOP

    Un loop (bucle) repite la ejecutar de un cjto de sentencias mientras una condición dad sea cierta. La condición puede ser verificada antes o después de ejecutarse el cjto de sentencias. Sus posibles formas son:

    1º forma

    DO [{ while / until } condición]

    [sentencias]

    [exit do]

    [sentencias]

    LOOP

    2º forma

    DO

    [sentencias]

    [exit do]

    [sentencias]

    LOOP [{ while / until } condición]

    Ejercicio:

    Un programa q pida al usuario introducir su edad, y en función de esta mostrar a través de 1 etiqueta los siguientes mensajes:

    Edad Mensaje

    16 Termina ya la ESO, chaval

    18 Ya puedes votar

    21 Ya puedes tomar vino

    65 Ya puedes disfrutar de la jubilación

    otra Bonita edad y disfrútala

    RESULTADO:

    Option Explicit

    Dim edad As Integer

    Private Sub cmdAceptar_Click()

    edad = txtEdad.Text

    Select Case edad

    Case 16

    lblMensaje.Caption = "Terminas ya la ESO, ¡chaval!"

    Case 18

    lblMensaje.Caption = "Ya puedes votar"

    Case 21

    lblMensaje.Caption = "Ya puedes tomar vino"

    Case 65

    lblMensaje.Caption = "Ya puedes disfrutar de la jubilación"

    Case Else

    lblMensaje.Caption = "Bonita edad y disfrútala"

    End Select

    End Sub

    Private Sub cmdLimpiar_Click()

    txtEdad.Text = " "

    lblMensaje.Caption = " "

    End Sub

    Private Sub txtEdad_Change()

    txtEdad.SetFocus

    End Sub

    EJERCICIO:

    Suma de los números impares del 1 al 99

    RESULTADO:

    Option Explicit

    Dim I As Integer

    Dim suma As Integer

    Private Sub Form_Click()

    For I = 1 To 99 Step 2

    suma = suma + 1

    Next 1

    lblsumade.Caption = suma

    End Sub

    CONTROL LISTAS (LIST BOX)

    Una lista es un ctrl. q puede mostrar varios registros o líneas. Si en la lista hay + registros de los q se pueden ver al mismo tiempo se añade automáticamente 1 barra de desplazamientos (SCROLL BAR).

    Para añadir o eliminar registros de la lista ( en modo ejecutar) se usan los métodos: ADD ITEM y REMOVE ITEM

    X otra parte la propiedad LIST nos permite decidir el contenido de la lista (modo diseño). LIST tb permite acceder a los elementos de la lista en modo ejecutar para ello ponemos el lugar q ocupa el elemento de la lista.

    • Para acceder a un elemento

    LstName(2) = “ Tercero “

    • Para añadir un elemento de la lista

    LstName.AddItem RegistroAñadido Posición

    • Para eliminar un elemento de la lista

    LstName.RemoveItem Posición_del_registro_a_borrar

    En el método ADDITEM la posición es un argumento opcional. Se omite, se añade el elemento al final de la lista, sin embargo, esto es valido si la propiedad SORTER tiene valor FALSE.

    Para vaciar una lista completamente se usa el método CLEAR

    LISTCOUNT nos permite contar él numero de registros de la lista.

    LISTINDEX nos permite acceder a un lugar concreto de la lista para añadir un nuevo registro o borrar uno existente, etc. Siempre coincide con el registro seleccionado y en el caso de q no haya ninguno seleccionado vale 1

    Al seleccionar 1 de los registros de la lista se activa el evento CLIC

    Las listas nos permiten seleccionar + de un registro usando la propiedad MULTISELECT q puede tener 2 valores:

    • simple: los elementos se seleccionan con un clic

    • extendida: se usan las teclas de ctrl. q nos permiten hacer selecciones múltiples.

    Ejercicio:

    Crear un form con 1 etiqueta q indique “Texto de prueba” y a continuación 1 frame con 2 botones de opción q van a contener el tamaño de la letra de manera q al pulsar 1 de ellas el texto cambiara de tamaño. Además vamos a crear una lista (List box) a la q vamos a añadir los tipos de letra y para ello usaremos un bucle FOR.

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    RESULTADO:

    Option Explicit

    Private Sub cmdvaciar_Click()

    lstTipos.Clear

    End Sub

    Private Sub form_load()

    Dim I As Integer

    For I = 0 To Screen.FontCount - 1

    lstTipos.AddItem Screen.Fonts(I)

    Next I

    End Sub

    Private Sub lstTipos_Click()

    lblTexto.Font.Name = lstTipos.Text

    End Sub

    Private Sub opt12_Click()

    lblTexto.FontSize = 12

    End Sub

    Private Sub opt8_Click()

    lblTexto.FontSize = 8

    End Sub

    FUNCION TRIM. Esta función quita todos los blancos q hay delante de una cadena. El formato es el siguiente:

    TRIM (variable q contiene la cadena)

    Ejercicio:

    Crear una lista q incorpore los nombres de diferentes ciudades controlando q no se introduzca en la lista un nombre a blancos (1 casilla vacía)

    RESULTADO:

    Option Explicit

    Dim I As Integer, cadena As String, encontrado As Integer

    Private Sub cmdborrar_Click()

    cadena = Trim(txtciudad.Text)

    If cadena = " " Then

    MsgBox "Cadena vacia"

    Exit Sub

    End If

    encontrado = False

    For I = 0 To cbociudad.ListCount - 1

    If cadena = cbociudad.List(I) Then

    cbociudad.RemoveItem I

    encontrado = True

    End If

    Next I

    If encontrado = False Then

    MsgBox "Este nombre no está en la lista"

    txtciudad.SetFocus

    End If

    End Sub

    Private Sub cmdComprobar_Click()

    cadena = Trim(txtciudad.Text)

    If cadena = " " Then

    MsgBox "cadena vacía"

    Exit Sub

    End If

    For I = 0 To cbociudad.ListCount - 1

    If cadena = cbociudad.List(I) Then

    MsgBox "Este nombre ya existe"

    Exit Sub

    End If

    Next I

    cbociudad.AddItem cadena

    cbociudad.Text = txtciudad.Text

    txtciudad.SetFocus

    txtciudad.Text = " "

    End Sub

    Private Sub cmdLimpiar_Click()

    txtciudad.Text = " "

    txtciudad.SetFocus

    End Sub

    CAJAS COMBINADAS (COMBO BOX)

    Este objeto tiene en común con las listas desplegables los métodos: ADDITEM, RENOVEITEM y CLEAR y las propiedades: LIST, LISTCOUNT y LISTINDEX.

    La diferencia principal esta en una propiedad llamada STYLE la cual puede adoptar 3 valores y se corresponden a 3 formas de representar una lista.

    • STYLE = 0 * Solo muestra el registro seleccionado, permaneciendo el resto oculto hasta q el usuario despliega la lista usando la flecha.

    • STYLE = 1 * En este caso el registro seleccionado se puede evitar y muestra una lista no despegable dotada e 1 barra de desplazamiento (SCROLL BAR)

    • STYLE = 2 * El registro seleccionado no es editable y la lista es despegable

    En 1 caja combinada está permitido escribir con el teclado en tiempo de ejecutar. La propiedad TEXT corresponde con lo q aparece en la parte de la caja de texto bien sea x q el usuario lo ha introducido o porque se ha seleccionado

    Ejercicio:

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    Option Explicit

    Private Sub Timer1_Timer()

    lblReloj.Caption = Time

    End Sub

    CONTROL TIMER

    Permite q una acción suceda cada cierto tiempo. Es fundamental para crear animaciones o aplicaciones con movimientos de objetos. La propiedad + importante es: INTERNAL q determina el intervalo en milisegundos en eventos

    La opción q se desea programar debe hacerse en el evento TIME. Para detener una opción basta con hacer ENABLED = FALSE

    FUNCIONES Y PROCEDIMIENTOS EN VB

    FUNCION: puede ser usada en una expresión porque tiene un valor de retorno. El valore de retorno ocupa el lugar de la llamada a función donde esta aparece. X ejemplo: si en 1 expresión aparece sin(x) se calcula el seno de la variable “x” y el resultado es el valor de retorno q sustituye a sin(x).

    PROCEDIMIENTO: no devuelve ningún valor, es un segmento de código independiente del resto q una vez llamado x el programa ejecutar un numero determinado de distribuciones sin necesidad de devolver ningún valor al mismo (puede dar resultados modificando los resultados)

    Para llamar de un form a un procedimiento public definido en otro form es necesario preceder su nombre x el del form en el q está definido

    Para llamar a un procedimiento no es necesario precederlo del nombre del módulo (únicamente sí coincide con el nombre de otro procedimiento de otro modulo estándar)

    ALGORITMOS

    Es una secuencia de pasos q nos llevan a realizar una tarea. Las primeras aparecen para resolver problemas matemáticos. Ejemplo:

    Algoritmo de Euclida para calcular m.c.d. (de 2 números enteros A y B)

  • Asignar a M el valor de A, N el valor de B

  • Dividir M entre N, y llamar al resto R

  • Si R 'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'
    0, asignar a M el valor de N, asignar a N al valor de R, y volver a comenzar la etapa 2

  • Si R 'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'
    0, N es (máximo común divisor ) m.c.d. de los números A y B

  • mod. = devuelve el resto

    Dim a As Integer, b As Integer

    a = 45: b = 63

    If a < b Then

    temp = a: a = b: b = temp

    End If

    m = a: n = b: resto = m Mod n

    While resto = 0

    m = n: n = resto

    resto = m mod. n

    Wend

    WHILE...WEND

    Esta sentencia genera bucles q se recorren mientras se cumple la condición original.

    FUNCIONES

    La sintaxis correspondiente a una función es la siguiente:

    [Private] Function nombre ([parámetros]) [as tipo]

    [sentencias]

    [nombre = expresión]

    [exit función]

    [sentencias]

    [nombre = expresión]

    end function

    NOMBRE: es el nombre de la función. Será de un tipo u otro dependiendo del dato q devuelva. Para especificar el tipo de usa la cláusula as tipo (integer, long,...)

    PARÁMETROS: son los argumentos q son pasados cuando se llama a la función. Si no se indica el tipo de argumentos son VARIANT. Los argumentos pueden pasarse x referencia o x valor.

    NOMBRE = EXPRESIÓN: el sig nombre de función es el valor de retorno y actúa como una variable dentro del cuerpo de la función. El valor de la variable expresión es almacenado en el propio nombre de la función . si no se efectúa esta asignación, el valor devuelto será 0 si la función es numérica, nulo si la función es de caracteres o vació si es variant.

    EXIT FUNCTION: permite salir de la función antesd e q esta termine y devolver así el control del programa a la sentencia inmediatamente a continuación de la q efectuo la llamada a función. No finaliza la función.

    END FUNCTION: marca el final del codigo de la función y al igual q la anterior devuelve el ctrl. del programa a la sig sentencia del programa. Si finaliza la función la llamada a la primera función se puede realizar de diversas formas. Una de las + usuales es la sig:

    Variable = nombre([argumento])

    ARGUMENTO: son una lista de constantes variables o expresiones separadas x comas q son pasadas a la función. El num de argumentos debe ser igual al numero de función y los tipos de los argumentos deben coincidir con los tipos de los parámetros. En cada llamada a una función hay q incluir los paréntesis aunque esta NO tenga argumentos.

    Function raíz (N as integer) as double

    If n<0 then

    Exit function

    Else

    Raíz = sqr (n)

    End function

    Sqr = raíz cuadrada

    PROCEDIMIENTOS

    La sintaxis q lo define es:

    [private] Sub nombre[(parámetros)]

    [sentencias]

    [exit sub]

    [sentencias]

    end sub

    La llamada a un procedimiento Sub puede ser de 2 formas:

  • Call nombre [(argum)]

  • Nombre [argument]

  • A diferencia de una función, no puede ser usado en una expresión ya q el procedimiento no devuelve ningún valor.

    Sub raíz (N as double, F as double)

    If N<0 then

    Exit sub

    Else

    F = sqr (N)

    End if

    End sub

    Raíz N,F

    Call Raíz (N,F)

    ARGUMENTOS POR REFERENCIA Y POR VALOR

    En las funciones y procedimientos, x defecto los argumentos se posan x ref. esto implica q se pasa a la función la variable original, de modo q la función puede modificar su valor.

    Pasar el valor : hay q crear 1 variable y pasarle 1 copia del valor de la variable. Cuando se llama a 1 función o 1 procedimiento, se puede especificar q el valor del argumento no sea cambiado.

    Sub raíz (N,F)

    Sub Call raíz ((N),F)

    Function = cuadrada = raiz ((núm.))

    Otra forma de pasar un argumento x valor es usando la palabra BYVAL delante de la declaración del parámetro.

    Function Raíz (Byval N as double)

    Sub raíz (Byval N as ,F as double)

    PROCEDIMIENTO REPULSIVO

    Se dice q una función o un procedimiento es repulsivo cuando se llaman a sí mismas. X ejemplo: 1 función q calcula el factorial de un numero.

    Function factorial (N as integer) as long

    If n = 0 then

    Factorial = 1

    Else

    Factorial = N * factorial (N -1)

    End if

    End function

    ARRAY

    Permite referirse a una serie de elem del mismo tipo y con el mismo nombre, de manera q hacemos ref. a los dif elementos de la serie usando 1 ó + índices. VB nos permite definir arrays de variables de 1 ó + dimensiones y de cualquier tipo de datos. Además introduce una nueva clase de arrays q son los arrays de controles (arrays de botones de comando, etiquetas,...) Esto nos permite una programación + breve

    Todos los elem de un array, deben ser del mismo tipo y están almacenados de forma contigua en memoria. Si array es VARIANT, cada elem puede contener un tipo dif e incluso puede contener otro array. Hay 2 tipos de arrays:

    • Estáticos: cuya dimensión es siempre la misma

    • Dinámicos: cuya dimensión se puede modificar durante la ejecutar del programa

    ARRAYS ESTÁTICOS

    Depende de su ámbito su declaración:

    • Si es PRIVADO se hace en la sección de declaraciones del modulo o frm usando DIM o PRIVATE

    • Si es LOCAL se usa DIM, PRIVATE o STATIC

    .dim v1(19) as double = 20 elem (0,19)

    .dim matriz (3,1, to 6) as integer

    matriz (0,1) matriz (0,2) matriz (0,3) matriz (0,6)

    matriz (1,1) matriz (1,2) matriz (1,3) matriz (1,6)

    matriz (3,1) matriz (3,2) matriz (3,3) matriz (3,6)

    • Public Cadena (1 to 129 as sting)

    ARRAYS DINAMICOS

    El espacio necesario se asigna al iniciarse el programa y permanece fijo hasta su ejecución. El espacio para 1 array dinámico se asigna durante la ejecutar del programa. 1 array dinámico puede ser redimensionado en cualquier momento de la ejecutar.

    Para crear un array dinámico:

    Hay q declararlo como si fuera array estático. Con la sentencia PUBLIC si queremos q sea global. DIM o PRIVATE (LOCAL) en el ámbito de modulo o con STATIC, DIM o PRIVATE, si se requiere q sea global, dejando además 8la lista vacía)

    Dim matriz ( ) as integer

    Sub calculo

    -

    -

    -

    redim matriz (F,C)

    end sub

    Ejercicio:

    Vamos a crear un form con 3 barras de desplazamiento horizontal con las q pueda controlarse el color de fondo, el color del texto de 1 etiqueta en cuyo CAPTION: informatica rojo, verde y azul = las 3 barras.

    A la dcha. De las 3 barras tenemos 3 cajas de texto q contienen los valores numéricos de los 3 colores y a la izq. 3 label q indiquen los colores de las 3 barras.

    1 frame con dos botones de opción, para el fondo y otro para el texto y 1 botón de comando para salir. Las 3 barras de desplazamiento, las 3 cajas de texto, 3 label, 2 botones opción son arrays de controles. Para crear un array de controles se usa una vez creado el primero copiar y pegar. Cuando el programa pregunte si queremos crear un array decimos q sí.

    La utilidad principal de los arrays se representa en aquellos casos en los q el programa debe responder de forma semejante a un mismo evento y sb varios controles de varios tipos.

    Los arrays de controles comparten código, lo cual quiere decir q solo hay q programar 1 función para responder a un evento y de un determinado tipo.

    Las funciones q gestionan los eventos de un array tienen siempre un argumento adicional del tipo INDEX AS INTEGRAL e indica q control del array ha recibido el evento.

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    RESULTADO:

    Option Explicit

    Public brojo, bverde, bazul As Integer

    Public frojo, fverde, fazul As Integer

    Private Sub cmdSalir_Click()

    End

    End Sub

    Private Sub Form_Load()

    brojo = 0

    bverde = 0

    bazul = 0

    frojo = 255

    fverde = 255

    fazul = 255

    lblcuadro.BackColor = RGB(brojo, bverde, bazul)

    lblcuadro.ForeColor = RGB(brojo, bverde, bazul)

    End Sub

    Private Sub hsbcolor_Change(Index As Integer)

    If optcolor(0).Value = True Then

    lblcuadro.BackColor = RGB(hsbcolor(0).Value, hsbcolor(1).Value, hsbcolor(2).Value)

    Dim i As Integer

    For i = 0 To 2

    txtcolor(i).Text = hsbcolor(i).Value

    Next i

    Else

    lblcuadro.ForeColor = RGB(hsbcolor(0).Value, hsbcolor(1).Value, hsbcolor(2).Value)

    For i = 0 To 2

    txtcolor(i).Text = hsbcolor(i).Value

    Next i

    End If

    End Sub

    Private Sub optcolor_Click(Index As Integer)

    If Index = 0 Then 'se pasa a cambiar el fondo

    frojo = hsbcolor(0).Value

    fverde = hsbcolor(1).Value

    fazul = hsbcolor(2).Value

    hsbcolor(0).Value = brojo

    hsbcolor(1).Value = bverde

    hsbcolor(2).Value = bazul

    Else 'se pasa a cambiar el texto

    brojo = hsbcolor(0).Value

    bverde = hsbcolor(1).Value

    bazul = hsbcolor(2).Value

    hsbcolor(0).Value = brojo

    hsbcolor(1).Value = bverde

    hsbcolor(2).Value = bazul

    End If

    End Sub

    NUMEROS PRIMOS

    Option Explicit

    Dim cont As Integer

    Function primo(numero As Long) As Boolean

    primo = True

    cont = 2

    Do While cont < numero

    If numero mod. cont = 0 Then

    primo = False

    Exit Do

    End If

    cont = cont + 1

    Loop

    End Function

    FACTORIAL

    Function factorial(numero As Double) As Double

    Dim cont As Double

    Dim fact As Double

    If numero = 0 Then

    factorial = 1

    Else

    fact = 1

    For cont = numero To 1 Step -1

    fact = fact * cont

    Next

    factorial = fact

    End If

    End Function

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    Hay q introducir un numero en el cuadro de texto y una vez q pulsemos aceptar se realizarán los cálculos Factorial, Primo y Cuadrado.

    El foco debe estar siempre en el cuadro de texto para poder introducir números.

    Aceptar = debe estar siempre inhabilitado a no ser q haya un número en el cuadro de texto y x tanto se puedan hacer cálculos. Al escribir algo en el cuadro de texto se deben borrar las etiquetas Factorial, Primo y Cuadrado.

    EDITOR DE MENUS

    Herramientas/ editor de menús

    TITULO: a cada elem q aparece en la barra de menús y líneas o ITEM a cada elem q aparece al desplegarse él titulo. Para introducir un titulo en la barra de menús hay q definir en la caja de texto CAPTION el nombre con el q se quiere q aparezca. Si queremos acceder a este titulo mediante teclado la letra q queremos usar debe ir precedida x el carácter (&) ALT + &A. Además tenemos q introducir un nombre para ese titulo en la caja de texto NAME.

    mnuarchivo

    mnuarchivoabrir

    mnuarchivocerrar

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    Se pueden introducir ITEMS subordinados de un titulo x medio de la

    El resultado es q aparecen unos puntos a la izquierda del caption correspondiente.

    Para introducir la raya de separación en CAPTION ponemos un menos (-).

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    Caption= abrir ; Name = mnuabrir

    Caption= - ; Name = mnuseparar1

    Si queremos ejecutar una opción del menú mediante Ctrl. + letra tenemos q especificar SHORTCUT.

    De la misma manera q se puede definir un array de controles también se puede definir un array de ITEMS (líneas). La ventaja de definir un array de items es q basta definir un único procedimiento q se haga cargo el evento clic

    Para definir un ARRAY DE ITEMS tenemos q usar la casilla INDEX. Esta casilla nos indica q elem del array ha sido seleccionado x el usuario.

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    Mnuediciontamaño

    MnuediciontamañoA

    Index

    • 10

    • 12

    • 14

    Ejercicio:

    Crear un menú q se llame colores q va a tener 2 títulos.

    • Fichero: solo colgamos la opción salir

    • Texto: fuentes y tamaño

      • Fuentes: arial, curier new, times new roman

      • Tamaño: 10,11,12,13,14

      • Estilo: negrita, cursiva

    Necesitamos 1 caja de texto, en la q cuando se cargue el formulario, nos aparezca el texto: “VB es el lenguaje de programación q hace + fácil el desarrollo de aplicaciones para W98” (Arial, tamaño10)

    En Herramientas/ Editor de menús

    • Caption: &fichero Name:mnufichero Index=0

    • Caption:salir Name : mnusalir index=0 shortcout:ctrl.+s

    • Caption: &texto Name:mnutexto index=0

    • Caption:fuentes Name:mnufuentes

    • Caption:arial Name:mnuArial index= shortcout:ctrl.+A

    • Caption: Courier New

    • ----

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    Cuando cargamos el formulario (form(load)) quiero q la opción Nuevo quede desactivada. Menú Pegar (desactivado).txtfrase= “misma”.

    • Cerrar

      • Activar nuevo, desactivar cerrar; vaciar caja

    • Nuevo

    • Focus en la txtbox

    • Cargar el texto

    • Desactivar nuevo

    • Fuentes igual

    • Color de letra (forecolor)

    • Const negro: &H000000&

    • Const azul: &H0000ff&

    • Const blanco: &HFFFFFF&

    • Const Verde = &H00FF00&

    • Const Rojo = &HFF0000&

    • Copiar

    • Preguntar si tenemos seleccionado texto, pasamos al portapapeles

    • Activamos pegar

    • Cortar

    • Preguntar si tenemos algo de texto, lo pasamos al portapapeles, vaciamos texto y activamos pegar.

    • Pegar: preguntamos si el portapapeles tiene algo, lo pasamos a la caja de texto y desactivamos pegar, en caso de q el portapapeles este vacio

    RESULTADO:

    Option Explicit

    Private Sub mnucolor_Click(Index As Integer)

    Dim i As Integer

    For i = 0 To 4

    mnucolor(i).Checked = False

    Next i

    Select Case Index

    Case 0

    txtTexto.ForeColor = "azul"

    Case 1

    txtTexto.ForeColor = "negro"

    Case 2

    txtTexto.ForeColor = "blanco"

    Case 3

    txtTexto.ForeColor = "rojo"

    Case 4

    txtTexto.ForeColor = "verde"

    End Select

    mnucolor(Index).Checked = True

    End Sub

    Private Sub mnucopiar_Click()

    If txtTexto.SelText <> " " Then

    Clipboard.SetText txtTexto.SelText

    mnupegar.Enabled = True

    End If

    End Sub

    Private Sub mnuCursiva_Click()

    If txtTexto.FontItalic = True Then

    txtTexto.FontItalic = False

    mnucursiva.Checked = False

    Else

    txtTexto.FontItalic = True

    mnucursiva.Checked = True

    End If

    End Sub

    Private Sub mnuNegrita_Click()

    If txtTexto.FontBold = True Then

    txtTexto.FontBold = False

    mnunegrita.Checked = False

    Else

    txtTexto.FontBold = True

    mnunegrita.Checked = True

    End If

    End Sub

    Private Sub mnuSubrayado_Click()

    If txtTexto.FontUnderline = True Then

    txtTexto.FontUnderline = False

    mnusubrayado.Checked = False

    Else

    txtTexto.FontUnderline = True

    mnusubrayado.Checked = True

    End If

    End Sub

    Private Sub mnutachado_Click()

    If txtTexto.FontStrikethru = True Then

    txtTexto.FontStrikethru = False

    mnutachado.Checked = False

    Else

    txtTexto.FontStrikethru = True

    mnutachado.Checked = True

    End If

    End Sub

    Private Sub mnusalir_Click()

    End

    End Sub

    Private Sub mnutamaño_Click(Index As Integer)

    Dim i As Integer

    For i = 0 To 3

    mnutamaño(i).Checked = False

    Next i

    Select Case Index

    Case 0

    txtTexto.FontSize = 8

    Case 1

    txtTexto.FontSize = 10

    Case 2

    txtTexto.FontSize = 12

    Case 3

    txtTexto.FontSize = 14

    End Select

    mnutamaño(Index).Checked = True

    End Sub

    CAJAS DE DIALOGO - COMMON DIALOG

    El control, caja o cuadro de dialogo nos permite realizar las tareas más comunes de un programa (seleccionar un fichero, imprimir, color,...)

    Lo primero q hay q hacer es ubicar el ctrl. en el formulario. El ctrl. se va a representar como un icono de tamaño invariable además VB no nos permite especificar la ubicación q tendrá la caja de dialogo cuando se abra en la pantalla (es 1 propiedad NO accesible x el usuario)

    Un cuadro de dialogo nos puede bastar para realizar todas las funciones, estas pueden compartir el mismo cuadro de dialogo invocando los diferentes métodos de los q disponemos.

    Métodos:

    • ShowColor

    • ShowFont

    • ShowHelp

    • ShowOpen

    • ShowPrinter

    • ShowSave

    X Ej.: si queremos un cuadro de dialogo para abrir un fichero

    DlgNombre.Showopen = método q sirve para abrir el cuadro de dialogo.

    • Open/save caja de dialogo: las propiedades + importantes son:

    • DefaultExt: extensión x defecto, q se usa para abrir y salvar archivos ( con Save sino ponemos a un fichero nos añade la q está x defecto)

    • DialogTittle: da valor al titulo de la caja de dialogo.

    • FileName: nombre completo del archivo q vamos a abrir o salvar incluyendo el PATH.

    • FileTittle: nombre del archivo q vamos a abrir o salvar pero sin la ruta de acceso (Path).

    • Filter: contiene los filtros de selección q parecen indicados en la parte inferior de la pantalla en la lista de tipos de archivo.

    • FilterIndex: indica el índice con respecto a la lista de tipos del filtro x defecto. Empiezan a numerar desde 1.

    • InitDir: contiene el nombre del directorio x defecto, si no se especifica se usa el directorio anual.

    • Flags: esta propiedad puede tomar muchos valores con objeto de fijar los detalles concretos de este control ( x ejemplo: abrir un fichero en modo solo lectura, avisar antes de escribir en un fichero). Estos valores están definidos x constantes de VB cuyos nombres empiezan x las letras: CDL.

      • Print dialog control:

        • Copies: determina el numero de copias a realizar.

        • FromPage: indica el numero de paginas a partir de la cual comienza a imprimir.

        • ToPage: numero de pagina hasta la cual voy a imprimir.

        • PrinterDefault: las opciones actuales de impresión q se cambien serán asignadas como la opción de impresión x defecto

        • Flags

          • Font Dialog Control:

            • Color: color de impresión. Para usarla hace falta establecer la propiedad FLAGS al valor de la constante cdlCFEffechts.

            • FontBold,FontItalic,FontStrikethru,FontUnderline: devuelve o asigna los valores de estilos de la fuente actual.

            • FontName: devuelve o asigna el nombre de la fuente.

            • FontSize: devuelve o asigna el tamaño de la fuente.

            • Min y Max: asigna o lee los valores del tamaño de la fuente, mínimo y máximo q aparecerán en la lista de selección el tamaño de la fuente.

            • Flags: indica si los tipos de letra q se van a mostrar son los de la pantalla (cdlCFScreenFonts), impresora (cdlCFPrinterFonts), ambos (cdlCFBoth). Con la constante dldCFEffets se puede indicar q se permite cambiar efectos como el color, subrayado, etc. Si FLAGS vale cero, da un error en tiempo de ejecutar indicando q no hay fuente instaladas.

              • Color Dialog control:

                • Color: devuelve o asigna el valor del color actual.

                • Flags:

                  • CdlCCFullOpen: muestra el cuadro de dialogo completo

                  • CdlCCPreventFUllOpen: muestra los colores predefinidos

                  • CdlCCRGBInit: color inicial para el cuadro de dialogo.

    Ejercicio:

    Crear un programa con un titulo de menú, archivo y los elementos abrir, guardad y salir. Abrir: caja de dialogo q se seleccionara un fichero secuencias para su edición en pantalla viendo su contenido en una caja de texto multilínea.

    El filtro debe presentar las siguientes opciones:

    • Fichero de texto (*.txt) y todos los ficheros (*.*). Se podrá modificar el contenido de la caja de texto al elegir el item de menú guardar (se guardará el contenido en la caja de texto).

    CONTROLES GRAFICOS

    Los formatos gráficos q admite el VB son:

    • *.bmp

    • *.ico

    • *.wmf

    • *.emf

    • *.jpg ó *.jepg

    • *.gif

    CONTROL LINE

    Es el ctrl. grafico + elemental, carece de propiedades como text, caption y value. Y además no reconoce ningún evento.

    Este control nos permite dibujar líneas en un form o en un ctrl. de tipo PICTURE BOX. Las propiedades + importantes son: las coordenadas de los puntos extremos.

    Propiedades:

    • border width: anchura de la línea.

    • border style: estilo de la línea (continua, a trazos, a puntos) solo funciona cuando la anchura es un píxel (1 punto) si no, no funciona

    • border color: el color de la línea

    • name: nombre

    • visible: color de línea visible o no

    • index podemos crear arrays de líneas

    CTROL SHAPE

    Control forma, es similar al control anterior tampoco tiene propiedades text, caption, value NI reconoce eventos. Se diferencia en q admite formas geométricas + complejas. Estas formas vienen definidas x la propiedad shape

    cuadrado _ square

    rectángulo _ rectangle

    circulo _ circle

    elipse _ oval

    comando redondeado _ rounded square

    rectangulo redondeado _ rounded rectangle

    Además de las propiedades correspondientes al tamaño y posición las propiedades más importantes del control shape, son:

    • backcolor

    • backstyle: tiene q estar a 1 porque si no el color no funciona.

    • bordercolor

    • borderstyle: estilo de la línea

    • borderwidth

    • fillcolor: color de relleno

    • fillstyle: estilo de relleno (cuadros, rayas diagonales,...)

    • drawmode: es la propiedad q superpone las cosas. El valor normal es 13.

    CONTROL DE IMAGEN

    Este control es un contenedor de gráficos ( bitmap, iconos, archivos meta files, gifs y jpg.) este control admite una amplia colección de eventos. Las propiedades mas importantes de este control son:

    • picture: sirve para relacionar este control con el fichero q contiene el grafico q se desea representar. El cuadro de diálogo LOAD PICTURE nos permite elegir el fichero a insertar ( debe ser de uno de los tipos admitidos).Según el fichero elegido la propiedad PICTURE tendrá 1 de los siguientes valores:

        • icon (ico).

        • Bitmap (bmp, gif, jpg)

        • Metafile (umf, emf)

    • strech: indica como se comporta el ctrl. IMAGE al introducir en él el contenido del fichero gráfico. X defecto cuando se crea un ctrl. IMAGE la propiedad STRECH tiene valor FALSO, esto indica q el tamaño del control no se ajusta al tamaño del fichero. Si x el contrario esta en TRUE el fichero se adapta al fichero de control.

        • En modo ejecución:

    Copia el contenido imagen en otro control del mimo tipo.

    ImgCuadro.picture = imgCaja.picture

    CONTROL PIXTURE BOX

    Es el control grafico + potente de VB. Se trata de una especie de formulario reducido ya q puede contener imágenes, y otros tipos de controles tales como, botones, label, cajas de texto, etc.

    Con respecto a los BITMAP se comporta de manera diferente q el control IMAGE ya q el control PICTURE BOX no tiene la propiedad STRECH con lo cual, al cargar un icono o un bitmap aparece con su tamaño natural. Sin embargo, pixture box tiene la propiedad AUTOSIZE por defecto esta a FALSE. Cuando se carga así un bitmap el grafico aparece en la esquina superior izquierda en cambio, si esta a TRUE el control adapta su tamaño al del bitmap.

    Los gráficos del tipo METAFILE se comportan de manera diferente, si AUTOSIZE = FALSE, se adaptan al tamaño del control y si es TRUE, se cargan con su propio tamaño.

    En este control son importantes las 4 propiedades relacionadas con el color.

    • Backcolor: Controla el color del fondo del control.

    • Forecolor: controla el color del texto q se escribe en el control (x ejemplo con el método print)

    • Fillcolor: afecta a los elementos q se dibujan sobre el.(x ejemplo métodos LINE, CIRCLE). Determina el color de las líneas de relleno.

    • Fillstyle: determina el tipo de relleno( x ejemplo, líneas horizontales, verticales, ...)

    METODOS GRAFICOS

    Solo los formularios y los controles PICTURE BOX pueden contener otro tipo de controles. X defecto, estos métodos actúan sobre el formulario activo si se desea q actúen sobre un control PICTURE BOX hay q precederlos del nombre del control y el punto.

    METODO PRINT

    En modo de ejecución se puede escribir texto en un formulario o en 1 control picture box para ello la forma general de este método es:

    ,objeto.Print {spc(n)|tab(n)} expresión poschar

    • spc(n) y tab(n): son opcionales. El primero inserta `n' caracteres en la salida. El segundo sirve para posicionar la salida en un lugar determinado por `n'.

    • Expresión: son obligatorios. Representa cualquier expresión cuyo resultado sea un número o una cadena de caracteres.

    • Poschar: indica donde se imprimirá el siguiente carácter ( si se indica `;' la impresión se hace a continuación del ultimo carácter impreso, si se omite la impresión comienza en una nueva línea.)

    El color, la fuente y el tamaño del texto se toman de las correspondientes propiedades del formulario o del PICTURE BOX.

    METODO PSET (dibujo de puntos)

    Este método me permite dibujar puntos en 1 formulario o en una PictureBox. Su forma general es la siguiente:

    ,objeto.Pset step(x,y),color

    • step: Si se omite el objeto, se dibuja sobre el formulario activo. Es opcional (step). Si se introduce step las coordenadas son relativas respecto a las propiedades: Current X, Current Y respecto de la PictureBox.

    • X,Y: son las coordenadas del punto a dibujar. Son obligatorias.

    • Color: es opcional. Es un nombre de color. Si se omite, se usa la propiedad FORECOLOR, de objeto en el q se va a dibujar.

    • El tamaño del punto, viene determinado x la propiedad DrawWidth. ( del objeto en el q se dibuja), si el tamaño es mayor q 1 el punto se dibuja centrado en las coordenadas suministradas a Pset.

    METODO LINE (dibujo de líneas y de rectángulos)

    Dibujo de líneas y rectángulos, etc. su forma es:

    ,objeto.Line step(X1,Y1) - step (X2,Y2), color, BF

    • X1,Y1: son opcionales y son las coordenadas del punto inicial de la linea. Si se omiten la línea comienza en las coordenadas definidas x Currentx y Currenty

    • X2,Y2: son obligatorias y son las coordenadas del punto final.

    • B: carácter opcional. Si se incluye dibuja un rectángulo con los puntos dados como extremos de una de sus diagonales.

    • F: opcional. Solo se puede incluir si se ha incluido B. Se rellena la caja rectangular con el mismo color del contorno. Si se omite la caja se rellena con Fullcolor y Fillstyle del objeto en el q se dibuja

    METODO CIRCLE

    Permite dibuja cincurferencias, elipses y arcos. Su forma general es:

    ,objeto.Circle step(X, Y), radio,color,start,end,aspect

    • X,Y: son obligatorias y se refieren al centro de la circunferencia.

    • Start, end: son opcionales, definen arcos por medio del ángulo inicial (start) y final (end). Los ángulos se miden en radiones y en sentido contrario de las agujas del reloj. Su valor debe estar (-2Π a 2Π)

    • Aspect: es opcional dibuja elipses. Es la relación entre el diámetro horizontal y vertical (x defecto es 1.0)

    METODO CLS

    sirve para borrar: objeto.CLS

    METODO SCALE

    Nos permite definir las 4 propiedades de un formulario o PictureBox:

    ,objeto.scale (x1,y1) -(x2,y2)

    • X1,y1:son el vértice superior izquierdo del formulario o picture box

    • X2,y2: son el vértice inferior derecho.

    Ejercicio:

    Al cargar el formulario indicar las coordenada del Picture con el método Scale. Cuando cambie el valor de la barra de desplazamiento horizontal, asignar ese valor a cada uno y usarlas como coordenadas x,y del método Pset, asignando el color rojo con la barra vertical lo mismo. Caja de texto: cuando se pulse una tecla( return es el valor 13) controlamos q el valor introducido en esa caja se encuentre entre el máx. el min. permitidos y lo asignamos como valor a la barra de desplazamiento. Sino esta entre máx. y min. asignamos como valor a la barra de desplazamiento. Si no esta entre máx. y min. asignamos a la barra el valor máx. permitido y el min. Botón de salir (end). MAX=100, MIN=0. LARGECHANGE=1, SMALLCHANGE=1.

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    RESULTADO

    Private Sub cmdBorrar_Click()

    pctCaja.Cls

    End Sub

    Private Sub cmdSalir_Click()

    End

    End Sub

    Private Sub Form_Load()

    pctCaja.Scale (0, 0)-(100, 100)

    End Sub

    Private Sub HScroll_Change()

    txtH.Text = HScroll.Value

    pctCaja.PSet (HScroll.Value, VScroll.Value), vbRed

    End Sub

    Private Sub txtH_KeyPress (Key ASCII As Integer)

    Dim valor As Integer

    valor = Val(txtH.Text)

    If Key ASCII = 13 Then

    If valor <= HScroll.Max And valor >= HScroll.Min Then

    HScroll.Value = valor

    Else

    If valor < HScroll.Max Then

    HScroll.Value = 100

    End If

    End If

    End Sub

    Private Sub txtV_KeyPress (Key ASCII As Integer)

    Dim valor As Integer

    valor = Val(txtV.Text)

    If Key ASCII = 13 Then

    If valor <= VScroll.Max and valor >= VScroll.Min Then

    VScroll.Value = valor

    Else

    If valor < Vsroll.Max Then

    VScroll.Value = 100

    End If

    End If

    End If

    End Sub

    Private Sub VScroll_Change ()

    txtV.Text = VScroll.Value

    pctCaja.PSet (HScroll.Value, VScroll.Value), vbRed

    End Sub

    FICHEROS

  • Tipos de ficheros: en VB existen dos tipos de ficheros.

      • Ficheros ASCII o de texto: estos contienen caracteres según el código ASCII y se pueden leer con cualquier editor de texto. (NOTEPAD). Suelen tener extensión *.txt, *.bat , *.m( para los de matlab), *.c (para los de C),...

      • Ficheros binarios: son imagen de los datos o programas tal como están en la memoria del ordenador. No son legible directamente x el usuario. Ocupan menos espacio en disco.

  • Modos de acceso:

      • Acceso secuencial: se leen y escriben los datos como si se tratara de un libro, es decir, a continuación del anterior y sin posibilidad de volver a atrás o de dar saltos. Si se quiere acceder a un dato hay q pasar primero x todos los anteriores. Los ficheros de texto tengan acceso secuencial.

      • Acceso aleatorio o también llamado Random: permiten acceder directamente a un dato sin tener q pasar x todos los demás. Tienen la limitación de q los datos están almacenados en unidades o bloques q se llaman registros y q todos los registros q se almacenan en un fichero deben tener la misma longitud. Los ficheros de acceso aleatorio son binarios.

      • Acceso binario: son como los aleatorios, pero accedemos x bytes.

  • Apertura y cierre de ficheros secuenciales

  • Para poder leer o escribir en 1 fichero, antes debe ser abierto con la sentencia OPEN. Esta sentencia tiene la siguiente estructura:

    Open filename for mood as fileno

    • Filename: nombre de fichero a abrir. Será una variable STRING o un nombre entre dobles comillas.

    • Modo: para accesos secuenciales existen 3 posibilidades:

      • Input ______ leer

      • Output_____ escribir al ppio.

      • Append____ escribir al final

    Con output: si no existe se crea. Si existe se borra

    Con append: respeta siempre el contenido del fichero.

    • Fileno: es un numero entero q se asigna a cada fichero q se abre. En todas las operaciones de lectura / escritura se hace ref. al fichero x medio de ese numero. No puede haber 2 ficheros abiertos con el mismo numero. Fileno = freefile.

    X ejemplo: un fichero q quiero leer:

    Open “C:\Midirectorio\prueba1.txt” for input as fileno

    Close fileno

  • Lectura y escritura de datos.

      • Sentencia INPUT: existen varias formas de leer un fichero secuencial. X ejem: para leer el valor de una o + variables se usa la sentencia input.

    Input # fileno , varName1,varName2,varName3,...

    • Fileno: numero asignado al archivo al abrir.

    • Name1,name2: nombre de las variables donde se guardan los valores leídos en el fichero. Debe haber una correspondencia entre el orden y los tipos de variables en la lista. No se pueden leer directamente vectores, matrices o estructuras. Si los datos han de ser escritos x el programa, conviene usar la sentencia WRITE.(esta sentencia es mejor q print, ya q garantiza q los valores están convenientemente separados).

    FUNCION LINE INPUT O INPUT

    • Line Input: lee una línea completa de archivo y devuelve su contenido como valor de retorno.

    Nbvariable = lineInput # fileno

    En los ficheros de texto se suele usar el return para delimitar distintas líneas. Este carácter dentro del código ASCII es el 13. En algunos casos se utiliza como delimitados de líneas return (13) + linefeed (10).

    Para leer todas las líneas de un fichero VB dispone de la función EOF(End Of File). Devuelve TRUE cuando se llega al final del fichero.

    Do while not EOF (fileno)

    Variable = Line input # fileno

    Loop

    • Input:

    Nbvariable = input (nº carácter, # fileno)

    Nº caract: numero de caracteres que se quieren leer. Función q lee y devuelve todos los caracteres que encuentra, incluidos los Return y Linefeed.

    LOF (#fileno): nos devuelve el nº total de caracteres del fichero. Para leer el contenido de un fichero y depositarlo en una caja de texto.

    TxtCaja.text = input (LOF(fichero),#fileno)

    • Fun. Print #: sirve para escribir el valor de ciertas variables en un fichero abierto en modo OUTPUT o APPEND.

    Print #fileno var1,var2,var3

    Var1,var2,var3: pueden ser variables, expresiones q dan un resultado numérico o cadenas de caracteres entre “ “

    Print # | “El valor de la vall es “, I

    • Fun white : a diferencia de print, introduce comas entre las variables y/o cadenas de caracteres de la lista. Además encierra con “ “ las cadenas de caracteres antes de escribirlas en el fichero. White introduce un Return después del ultimo carácter de la lista de variables. Los ficheros escritos con White son legibles con Input.

    `se abre el fichero para escritura'

    Open “c:\tema\testfile.txt” for output as # |

    White #1,”Hello world”, 234 `datos

    Variable1 = false : fecha =#2/12/1962#

    Write #1, variable 1, “ es un valor Booleano”

    Write#1, fecha1; “es una fecha”

    Close #1

    FICHEROS

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    Al cargar el formulario desactivamos : guardar o guardar como

    Abrir:

      • ponemos el filtro

      • cargamos el método para abrir el fichero

      • asignamos un nº de fichero

      • abrimos el fichero

      • introducir en la caja de texto el contenido del fichero

      • foco en txt

      • cerramos el fichero

      • habilitamos guardar y guardar como.

    Guardar:

      • asigno nº de fichero.

      • Abrimos el fichero como output.

      • Escribimos lo q hay en txt con Print.

      • Cerrar fichero.

    Guardar como:

      • caja de dialogo show save.

    MnuAbrir (clic)

    Dim fileno as integer

    Dlgcaja.filter= “archivos de texto (*.txt)||*.txt|todos (*.*)|*.*”

    Dlgcaja.showopen

    Fileno = freefile

    Open dlgcaja

    Txtcaja.text= input (LOF(fileno), #fileno)

    Txtcaja.setfocus

    Close#fileno

    Mnuguardar.enabled =true

    Mnuguardarcomo.enabled = true

    Form load ()

    Mnuguardar.enabled = false

    Mnuguardarcomo.enabled = false

    Mnuguardar clic()

    Dim fileno as integer

    Fileno= freefile

    Open dlgcaja.filename for

    Output as fileno

    Print #fileno,txtcaja.text

    Close #fileno

    Mnuguardarcomo clic()

    Dlgcaja.showsave

    Mnuguardar_clic()

    FICHEROS DE ACCESO ALEATORIO

    Se caracterizan pq se puede acceder a un registro concreto en cualquier orden. Son ficheros binarios. Cuando se abre un fichero de acceso aleatorio se debe escribir FOR RANDOM. Si se abre para acceso binario FOR BINARY. Abrir y cerrar archivos RANDOM o aleatorio

    Open filename for Random as #fileno |en= size

    Len: indica el tamaño del fichero

    La sentencia q nos permite cerrar un fichero de acceso aleatorio es: closed # fichero. Leer y escribir en un fichero de acceso aleatorio.

    Leer = get #fileno, registroN, variableObjeto

    Escribir = put#fileno, registroN, variableObjeto

    Si se omite el Nº de registro, se lee o escribe a continuación del ultimo registro leído o escrito.

    FileNb=freefile

    Size = len(Nb.Objeto)

    Open filename for random as #fileno len=size

    Get #fileno, 31 size

    Put#fileno,3

    FICHEROS DE ACCESO BINARIO

    Funcionan de la misma manera q las de aleatorio. En lugar de manejar registros, en binario, se trabaja con bites.

    Open filename for binary as # fileno

    Ejemplo:

    Fileno=freefile

    Open filename for binary as #fileno

    Get #fileno, 4,dato

    Dato=7,

    Put#fileno,4,dato

    Close#fileno

    TIPOS DE DATOS DEFINIDOS POR EL USUARIO

    En VB podemos crear tipos de datos definidos x el programador y constituidos x variables de dif tipos, dando lugar a algo parecido a los STRUCTS de C. Para ello se usa la sentencia Type. La declaración se realiza en la sección de declaraciones, puede ser Public o Private

    Type Persona

    nombre as string

    Apel as string

    Edad as integer

    Telefono as string

    End type

    Dim amigo as persona

    Dim enemigo as persona

    Amigo.edad=27

    Amigo.nb=maria

    EJERCICIO

    Desarrollar la gestión de un fichero de tipo binario. Acerca de cada articulo se mantiene la información: cod(4 caracteres), nombre(10), precio(con decimales_single), existencias (entero largo_long).

    Para dar de alta a un articulo, introducir Cod, enter, nombre, enter,... los datos del articulo se introducirán al final del fichero y se borrará el contenido de las cajas de texto.

    Clic en COMBOBOX: contendrá los códigos de todos los articulos. Al seleccionar un articulo, deberá aparecer su nombre, precio y existencias.

    Clic en ELIMINAR: elimina el articulo seleccionado en la caja.

    Clic en MODIFICAR: combo y nombre(blancos) precio y existencias(0) y se cambian los datos

    FORM_LOAD(): asigna un nº de fichero, leemos ocmo binario y llamamos a un procedimiento actualiza y q vacia la combo, cajas y leemos todos los artículos añandiendolas a la combo con Additem.

    DATALIST Y DATACOMBO

    Estos controles son parecidos a los controles list box) y combo box , son los equivalentes en la base d datos. En este sentido, ambos controles se pueden rellenar automáticamente desde un campo de una base d datos accedida a través de un control d datos ADO. Una característica q distingue a los controles DATACOMBO y DATALIST es su capacidad para tener acceso a 2 tablas diferentes y vincular datos de la primera tabla a un campo de la segunda. Esto se lleva a cabo mediante dos orígenes de datos.

    Para usar estos controles es necesario asignar valores a las propiedades ROWSOURCE y LISTFIELD.

    La propiedad ROWSOURCE, especifica el control de datos ADO a partir del cual se llena la lista de los controles datalist y data combo.

    La propiedad LISTFIELD, se usa conjuntamente con Rowsource y permite seleccionar q campo de Recordset se usa para rellenar la lista de control.

    Para añadir al formulario uno de estos controles seleccionamos dentro del Proyecto / Componentes la opción Microsoft Data List Controls.

    Datalist1

    Rowsource: adodc1 - nombre de control ADO origen d lo datos

    Listfield: profesor - nombre del campo usado para rellenar la lista

    Private sub datalist1.dblclick ()

    Dim criterio As String

    criterio = "Profesor Like '*" & lstProfesor.Text & "*'"

    BuscarElPrimero criterio

    End sub

    Una característica importante de estos controles es q permiten pasar un campo seleccionado a un segundo control de datos. (x ejemplo: en nuestra aplicación vamos a usar un control Data combo para elegir un idioma de la tabla idiomas, para ello tenemos q introducir otro control ADO y después pasar el campo correspondiente al idioma a una segunda tabla, clases, provista de un control de datos ADO1.)

    Para relacionar dos conjuntos de registros provistos de controles ADO a través de un control Data List o data combo es necesario asignar valores a las siguientes propiedades

    DATA SOURCE: esta propiedad especifica el origen d datos q el receptor de dichos datos usa para enlazar con la base de datos.

    DATA FIELD: esta propiedad especifica el nombre del campo al q va ha ser enlazado el receptor de datos.

    BOUND COLUMN: esta propiedad especifica el nombre del campo origen q se va a pasar a un campo destino. Debe ser del mismo tipo q Data Field.

    1º) Añadir en el formulario FORM1 en nuevo control ADO. Adodc2

    2º) Asignamos las propiedades a este control ADODC2.

      • connectinon string : academia.udl

      • record source: select * from idiomas

    3º) Row Source : adodc2

    List Field : idiomas

    Data source: adodc1

    Data field: idiomas

    Bound column: idiomas

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    Base de datos en VB

  • Complementos / administrador usual de datos / archivo /nuevo / Microsoft Access versión 7.0.

  • Botón dcho ratón en propiedades / nueva tabla / agregar campos

  • PRUEBA1

    Idioma texto 10

    Academia texto 20

    Profesor texto 30

    Aula texto 7

    Días texto 20

    Horario texto 15

    Num_alumnos numérico

    PRUEBA2

    Idioma texto 10

    Num_horas numérico

    Duración numérico

    CONTROL DE DATOS A.D.O.

    Nos permite crear aplicaciones para visualizar, editar y actualizar información de muchos tipos de bases de datos, entre ellas, Access, SQL, Oracle, etc.

    Para hacer q una aplicación se comunique con una base de datos a través del ctrl. de datos A.D.O. hay q:

  • Añadir dicho control al formulario y especificar la base d datos de la q se desea obtener información. Esto nos permite, editar, visualizar o actualizar uno o + registros de la base de datos.

  • Añadir otros controles y enlazarlos al control de datos ADO para visualizar la información de cada uno de los registros de la base. Entre ellos están: CheckBox, ComboBox, ListBox, PictureBox y controles del tipo Active X (Data Grid, Data Combo)

  • COMO UTILIZAR EL CONTROL DE DATOS A.D.O.

    Podemos usar este ctrl. para crear aplicaciones sencillas sin usar código o bien aplicaciones + complejas para lo cual hay q añadir código de Visual.

    CARACTERÍSTICAS DEL EJEMPLO (ACADEMIA)

    La aplicación debe reunir, las siguientes características:

  • Visualizará en un formulario cada uno de los campos de registro seleccionado permitiendo modificar cualquiera de ellos.

  • El campo IDIOMA se va a corresponder con una lista desplegable a la q se añadirán los distintos registros introducidos en la base de datos (Idiomas)

  • Permitirá moverse de un registro a otro usando los botones de la barra de herramientas o mediante las ordenes del menú registro: primero, anterior, siguiente y ultimo.

  • PARA ESTABLECER LA CONEXIÓN

    Entre la aplicación y la base de datos a trabes del control A.D.O. hay q crear un fichero de vínculo a datos:

  • Abrimos el explorador de Windows, y nos situamos en la carpeta donde queremos crear el vínculo a datos. (en nuestro ejemplo, en la carpeta donde esta ubicada la base de datos ACADEMIA)

  • Hacemos clic con el botón dcho del ratón en la pantalla del explorador, y seleccionamos nuevo. De la lista de tipos de ficheros, seleccionamos Microsoft Data Link y cambiamos d nombre a este fichero para llamarle ACADEMIA.UDL

  • Seleccionamos el nuevo fichero y pulsamos botón dcho del ratón para escoger propiedades.

  • En la pestaña Proveedor seleccionamos Proveedor OLE DB Microsoft Jet 3.51. (motor q nos proporciona VB para acceder a la base de datos). Pulsamos el botón siguiente para ir a la pagina de conexión

  • Hacemos clic en el botón 'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'
    y seleccionamos la base de datos ACADEMIA.MDB a continuación pulsamos Probar conexión, para comprobar si es correcta y a continuación seleccionamos aplicar. En la pestaña general establecemos el atributo de solo lectura y aceptamos.

  • 'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    'Desarrollo y realizacin de servicios de prestacin en el entorno grfico'

    Define una colección de objetos programables. Este modelo comparado con otros objetos de acceso a datos como RDO o DAO disponen de menos objeto y es + fácil de usar (hay 7 tipos de objetos)

    Connection: una conexión es el entorno necesario para intercambiar datos. Un objeto connection representa una conexión abierta con un origen de datos. almacena información acerca del tipo de cursor, cadena d conexión, tiempo limite para preguntas, tiempo limite para conexión y bases d datos x omisión. Cuando se crea un objeto conection, se esta ejecutando la misma función q realiza el control d datos ADO. (connection string)

    Command: es una sentencia SQL q se exe desde la aplicación contra un origen d datos.

    Parameters: a menudo los objetos COMMAND rekieren partes variables, los parámetros q pueden ser modificados antes de emitir la orden x ejemplo para recuperar datos desde diferentes especificaciones.

    Recordset: cjto d registros resultado d una columna incluyendo el cursor. El recordset es el medio principal para examinar y modificar los datos de los registros recuperados de un origen de datos. Un registro de un recordset consta de 1 o + campos. Si imaginamos un recordset como una cuadricula, el campo corresponde a una columna.

    Error: cualquier operación q incluye objetos ADO puede generar 1 o + errores relativas al proveedor de datos. Cada objeto Error representa un error especifico del proveedor no un error ADO.

    Properties: cada objeto ADO tiene un cjto unico de propiedades q describen o controlan su comportamiento. Se clasfian en 2 tipos: predefinidas y dinámicas.

    • predefinidas: propiedades implementadas en el objeto ADO y estan disponibles en cualquier nuevo objeto. No figuran en ela colección properties.

    • Dinamicas: son definidas x el proveedo d datos y aparecen en la colección properties del objeto ADO

    ACCESO A LOS DATOS ADO

    Una aplicación con ADO debe realizar las siguientes operaciones para acceder a una B.D.:

  • Crear el objeto de la conexión. Se especifica la cadena d conexión q incluye el nombre del origen de datos, la identificación del usuario, contraseña, etc. Un objeto de conecton.

  • Abrir la conexión con el origen d datos

  • exe una sentencia SQL. Abierta la conexión, se puede exe una pregunta. ADO proporciona un cursor en 2º plano para obtener el cjto de registros resultante de la pregunta.

  • Usar el cjto d registros resultantes

  • Finalizar la conexión ( esta conexión, termina la conexión con el origen de los datos)

  • TIPO DE BLOQUEO

    • adlock Read Only

    predeterminado. Solo lectura

    • adlock Pessimistic

    bloqueo pesimista registro a registro. Cuando se establece este tipo de bloqueo, el proveedor de datos bloquea los registros, mientras dura el proceso de modificación.

    • AdLock Optimist

    Bloqueo optimista, registro a registro. En este caso, el proveedor de datos bloquea los registros solo cuando llama al método UPDATE.

    • Adlock batch optimistic

    Actualizaciones optimistas por lotes

    SOURCE: representa un objeto COMMAND, una instrucción SQL o una llamada a un procedimiento almacenado.

    ACTIVE CONNECTION: representa un objeto CONNECTION o la propiedad CONNECTION STRING.

    TIPO DE CURSOR: determina el tipo de cursor q se debe usar al abrir el conjunto de registros (recordset)

    LOCKTYPE: Tipo de bloqueo q debe usar el proveedor para abrir el recordset.

    Set lstidioma.datasource = rslclases

    Lstidioma.datafield = rslclases

    Base de datos en VB

  • Complementos / administrador usual de datos / archivo /nuevo / Microsoft Access versión 7.0.

  • Botón dcho ratón en propiedades / nueva tabla / agregar campos

  • PRUEBA1

    Idioma texto 10

    Academia texto 20

    Profesor texto 30

    Aula texto 7

    Días texto 20

    Horario texto 15

    Num_alumnos numérico

    PRUEBA2

    Idioma texto 10

    Num_horas numérico

    Duración numérico

    CONTROLES DEPENDIENTES NO ESTANDAR

    Un control dependiente no estándar, como x ejemplo el DATAGRID, a diferencia de los controles de pendientes estándar nos permite q se representan o manipulan varios registros al mismo tiempo. Para usar cualquier control de pendiente no estándar es necesario agregarlo a la aplicación (proyecto / componente)

    Un control DATAGRID también permite acceder a una celda individual y modifiar los datos directamente sobre ella. Tambien permite seleccionar filas o columnas enteras. Cada columna tiene sus propios atributos (fuente, borde, ajuste de texto, color, etc...) q se pueden establecer independientemente de los de otras columnas. Durante al diseño, se puede establecer la anchura de cada columna y la altura de una fila, asi como columnas ocultas. La propiedad COUNT de la colección de columnas determina su numero y la propiedad RECORDCOUNT del objeto RECORDSET, determina el num de filas.

    Las propiedades ROW y COL indican cual es la celda actualmente seleccionada. Puede cambiarse a otra celda en el codigo o tambien surante la ejecución mediante el talón o teclas de dirección.

    Para modificar la información d una celda, hay q seleccionarla y asignar la NO información a la propiedad VALUE al objeto COLUMN al q pertenece.

    Para utilizar un control DATAGRID:

  • hay q agregar un control d datos ADO al formulario y asignar a su propiedad CONNECTION STRING al nombre de fichero VAL( vinculo de datos) q no expecifica la base de datos y a su propiedad RECORD SOURCE el nombre de la tabla o sentencia SQL requerida para obtener el conjunto de registros.

  • a continuación para recuperar todos los campos de la base de datos, pinchamos en el control DATAGRID con el botón dcho del ratón y seleccionamos la orden recuperar campos.

  • una vez agregado el control ADO al formulario y asignado a la propiedad DATA SOURDE del control DATA GRID el nombre del mismo, se muestra la información de todos los registros. Además nos permite modificarlos y añadir los nuevos siempre q las propiedades ALLOW UPDATE y ALLOW UPNEW se encuentren en TRUE. Para borrar un registro ALLOW DELETE, tambien tiene q estar a TRUE. Y para borrarlo, basta con suprimier, una vez seleccionado.

  • Al iniciar la aplicación se muestra el primer registro de la tabla clases, además usando el control ADO, podemos situarnos en el siguiente o en el anterior, permitiendonos modificar tb la información de cualquier registro seleccionado. Lo q no vamos a permitir en la aplicación es modificar el campo respuesta al elemento KEY PRESS, sobre la lista de idiomas.

    TERCER METODO

    1.OBJETOS DE ACCESO A DATOS (DAO)

    Son una serie de objetos q nos permiten tener acceso y manipular datos mediante programación en base de datos locales o

    remotas.

    2.MODELO DE OBJETOS DE DAO

    El orden de los objetos en DAO se conoce como MODELO DE OBJETOS y define la jerarquía de los objetos DAO

    Se debe usar esta jerarquía para crear o tener acceso a determinados objetos:

    set dbMia= DBEngine.WorkSpaces(0).OpenDatabase ("C:academia.mdb")

    OBJETOS DBENGINE: Es el nivel superior y contiene además de controlar todos los objetos de la jerarquía DAO.

    OBJETO WORKSPACE: Define una sesión para el ususario y determina como interactua su aplicación con los datos. Si abre una BD sin especificar el objeto workspace, se usa 0 como valor predeterminado.

    3. ABRIR UNA BASE DE DATOS

    El primer paso para abrir una Base de Datos es declarar una variable como objeto DATABASE y a continuacion usamos la instrucción SET para asignarla a la base de datos. Ejemplo:

    Dim dbmia as database

    set dbmia = OpenDatabase ("C:\mis documentos\acade.mdb")

    METODO OPENDATABASE: Acepta los sig argumentos:

    * Base_datos: El nombre o camino donde se encuentre la base de datos.

    * Opciones: Si se abre una BD con el argumento TRUE, ningún otro usuario puede abrir la BD. Valor predeterminado: FALSE.

    * Solo_lectura: Si es TRUE, no permite hacer ninguna modificación.

    * Conexion.

    METODO CLOSE: sirve para cerrar la BD.(dbMia.Close)

    4. CREAR UN RECORDSET

    Es el cjto de registros de una tabla o consulta. Una vez abierta la BD se pueden manipular los datos almacenados en ella si se crea un recordset. Primero hay q definir una variable como objeto RECORDSET y usamos el método OPENRECORDSET. Ejemplo:

    Dim dbMia as Database

    Dim recEmpleado as Recordset

    Set dbMia=OpenDatabase ("C:\mis documentos\acade.mdb")

    Set recEmpleado = dbMia.OpenRecordset ("Empleados")

    4.1.METODO OPENRECORDSET:

    *Origen: tabla,consulta,una instruccion SQL

    *Tipo:

    - dbOpenTable

    - dbOpenDynaset:(el unico q vamos a usar) El movimiento x la tabla es libre. Cjto de filas q puede usar para añadir, modificar o eliminar filas de una tabla/s de la BD subyacente.

    - dbOpenSnapshot

    * Opciones: determina como se abre el recordset y como nos desplazamos a traves de el.

    - dbFormandOnly: nos permite desplazarnos solo hacia adelante.

    - dbAppendOnly: solo añadir registros.

    - dbReadOnly: solo lectura.

    * Ediciones: determina el tipo de bloqueo del Recordset.

    - dbPessimistic

    - dbOptimistic

    4.2.METODO DE DESPLAZAMIENTO POR UN RECORDSET

    Para desplazarnos x los registros de un recordset, usamos los métodos:

    - MoveFirst

    - MoveLast

    - MovePrevious

    - MoveNext

    4.2.1.Propiedades de desplazamiento x un recordset

    .Recordcount: refleja el num de registros de la tabla y se ve afectada inmediatamente cuando algun usuario agrega o elimina un registro.

    .AbsolutePosition: esta propiedad devuelve o establece el numero del registro actual de un recordset (el primer registro de un Recordset es el registro 0, x tanto, si asignamos a la propiedad el valor 3, el registro actual será el 4).

    .BookMark: la propiedad anterior puede cambiar a medida q se agregan y eliminan registros. Para volver a un registro específico se usa la propiedad BookMark.

    4.2.2.Modificar datos o registros:

    a) Actualizar registros: Para actualizar un registro primero hay q usar el metodo EDIT (editar), llenar los campos con los datos apropiados y después llamar o invocar al método UPDATE.

    * Si se ejecuta el método Update sin usar, primero Edit, se produce un error en tiempo de ejecución.

    b) Agregar registros: usamos el método AddNew para agregar un nuevo registro. El registro no se guarda hasta q no se ejecuta el método Update. Para cancelar este método y q no se realicen los cambios se usa CancelUpdate.

    c) Eliminar registros: se usa el metodo Delete. Para q el registro siguiente se convierta en el registro actual y se elimine el anterior, usamos después el método MoveNext.

    d) Buscar registros: para buscar datos en un recordset, se pueden usar los métodos

    - FindFirst

    - FindLast

    - FindNext

    - FindPrevious

    El criterio de busqueda: que se especifique debe ser equivalente a una instruccion Where de SQL. Pero sin la palabra clave Where.

    El método Seek: nos permite buscar un registro en un Recordset. El recordset debe tener definido un indice antes de poder usar este método. Las comparaciones q se pueden usar en el método Seek son las siguientes:

    - "="

    - ">"

    - ">="

    - "<="

    - "<"

    4.2.3.Uso de consultas:

    Para usar una consulta de seleccion almacenada basta con proporcionar el nombre de la consulta en el método OpenRecordset del objeto Database.Si tenemos una consulta almacenada llamada productos pedidos.

    Dim recProductos as Recordset

    Set recproductos =dbMia.OpenRecordset("Productos pedidos")

    Tambien se puede usar el método OpenRecordset del objeto QueryDef (es una definición almacenada de una consulta).Se puede usar para recuperar los datos de una consulta. Ejemplo:

    Dim recProducto as Recordset

    Dim qryProducto as QueryDef

    Set qryProducto = dbMia.QueryDef ("Productos pedidos")

    Set recProducto = qryProducto OpenRecordset

    Si la consulta almacenada requiere parametros se puede usar la coleccion Parameters del objeto QueryDef para establecerlos. Por ejemplo:

    Set qryProducto.Parameters("Fecha de inicio") = CDate(txtBeginDate.text)

    CREAR UNA CONSULTA NUEVA

    Para crear una consulta nueva en tiempo de exe y almacenar la consulta en una BD usamos el método CreateQueryDef. Por ejemplo el siguiente codigo crea y almacena una consulta nueva

    Dim qryMiconsulta as QveryDef

    Set qryNewQuery =dbMia.CreateQueryDef("qryMiConsulta", "Select * from empleado")

    EJERCICIO

    BD GUIA

    tabla de telefonos

    campo tipo descripcion

    nombre texto40 nombre de la persona

    direccion texto30 calle,nº,piso,puerta

    poblacion texto30 nombre de la poblacion

    provincia entero codigo de la provincia

    Teléfono entero numero de teléfono

    Notas texto240 notas sobre la persona

    tabla provincias

    campo tipo descripcion

    codigop entero codigo de la provincia

    nombrep texto30 nombre de la provincia

    1º) proyecto / referencias quitamos (lo q se refiere al tema anterior ACTIVEX)Objetos ADO

    2º) añadimos Microsoft DAO 3.51

    3º) declaramos una variable para la BD y una para cada tabla. Por ejemplo:

    dbguia |

    rstelefonos |en un módulo aparte

    rsprovincias |

    4º) Form_load()

    * abrimos la BD (indicamos su camino...)

    * abrimos las tablas

    Procedimiento aparte. Mostrar teléfonos

    * mostramos los datos de la tabla teléfonos

    * Obtenemos a partir del código de la provincia su nombre

    * rellenamos la caja combinada con provincias

    Creamos un procedimiento para hacerlo y otra para habilita tanto cajas como ordenes.

    * inhabilitamos cajas de texto

    * inhabilitamos orden grabar

    5º) mnuregis (index as integer)

    Crear el procedimiento mediante Select case

    * para movernos al: siguiente, anterior, primero, ultimo

    * procedimiento para registro nuevo:

    - habilitar caja

    - habilitar ordenes

    - limpiamos las cajas con " "

    - Añadios un registro métdo Addnew y colocamos el foco.

    7 CANCELAR

    * damos los valores del formulario a los campos de la tabla. por ejemplo:

    rstelefonos("nombre")=txtnombre.text

    * necesito el código de la provincia en vez del nombre

    * comparo el valor de la combo con el nb de la provincia en la tabla de provincias y

    asigna a tfnos el cod de la provincia

    * grabamos metodo update

    * habilitar ordenes

    * inhabilitar grabar

    * inhabilitar cajas

    8 BORRAR

    * msgbox para confirmar el borrado

    * para borrar metodo delete y nos colocamos en el siguiente

    * controlar qu si llegamos al EOF nos coloque en el anterior

    9 BUSCAR

    * inputbox para indicar a q persona queremos buscar

    * buscar criterio

    10 EDITAR

    * habilitar cajas

    * inhabilitar ordenes

    * habilitar grabar y cerrar

    * ponemos el foco en la primera caja de texto

    • llamamos al metodo edit.

    PRESENTACION EN ENTORNOS

    1

    79




    Descargar
    Enviado por:Txema
    Idioma: castellano
    País: España

    Te va a interesar