Anda di halaman 1dari 70

MODULO:

DESARROLLO DE SISTEMAS BSICOS DE INFORMACIN

SUBMODULO:
ELABORAR SISTEMAS DE INFORMACIN MEDIANTE UN LENGUAJE DE PROGRAMACIN VISUAL

UNIDAD 1 INTRODUCCIN A VISUAL BASIC 6.0


1.- MANIPULAR EL ENTORNO DE DESARROLLO DEL LENGUAJE DE PROGRAMACIN VISUAL. 1.1 ENTORNO DE DESARROLLO 1.1.1. BARRA DE TITULO 1.1.2. BARRA DE MENUS 1.1.3. BARRA DE HERRAMIENTAS 1.1.4. EXPLORADOR DE PROYECTOS 1.1.5. POSICIN DEL FORMULARIO 1.1.6. VENTANA DE PROPIEDADES 1.1.7. CAJA DE CONTROLES 1.1.8. DISEADOR DE FORMULARIOS

UNIDAD 2 MANEJO DE FORMULARIOS DE VISUAL BASIC 6.0


2.- REALIZAR EL DISEO DE LA INTERFAZ GRAFICA PARA EL PROYECTO PROPUESTO 2.1 GENERALIDADES 2.1.1. DEFINICIN DE PROYECTO, FORMULARIO Y EVENTO 2.1.2. PASOS PARA DESARROLLAR UNA APLICACIN DE WINDOWS 2.2 CONTROL DE FORMULARIOS 2.2.1. CREACIN

2.2.2. MOVER Y AJUSTAR TAMAO 2.3. DISEO DEL PROYECTO (PARTE CREATIVA) 2.3.1. DISEAR EL FORMULARIO DEL MENU PRINCIPAL 2.3.2. DISEAR EL FORMULARIO DEL MENU PRINCIPAL 2.3.3. DISEAR LOS FORMULARIOS 2.3.4. VINCULAR LOS FORMULARIOS DEL PROYECTO.

UNIDAS 3 PRINCIPIOS BSICOS DE PROGRAMACIN


3.1 ELEMENTOS DEL LENGUAJE: 3.1.1. CONSTANTES 3.1.2. VARIABLES 3.1.3. TIPOS DE DATOS 3.1.4. TIPOS DE OPERADORES 3.1.4.1. ARITMETICOS Y CONCATENACIN 3.1.4.2. RELACIONALES 3.1.4.3. LGICOS 3.2. ESTRUCTURAS DE CONTROL 3.2.1. SELECTIVAS

IF THEN ELSE SELECT CASE 3.2.2. REPETITIVAS FOR NEXT WHILE WEND 3.3. MANIPULAR ARREGLOS (ARRAYS) 3.4. CREAR COLECCIONES DE OBJETOS UNIDAD 4 ELABORACIN Y MANIPULACIN DE UNA BASE DE DATOS CON V.B. 6.0
4.1. CREACIN DE UNA BASE DE DATOS 4.1.1. TIPOS DE DATOS QUE SOPORTAN LAS TABLAS 4.2. VINCULACIN DE UNA TABLA CON UN FORMULARIO 4.3. MANIPULACIN DE LOS DIFERENTES TIPOS DE DATOS EN LAS TABLAS 4.4. CREACIN DE CONSULTAS CON SQL 4.5. CREAR EL PROCESO PARA ALTAS DE DATOS 4.6. CREAR EL PROCESO PARA BAJAS DE DATOS 4.7. CREAR EL PROCESO DE MODIFICACIN DE DATOS 4.8. CREAR EL PROCESO PARA CONSULTA DE DATOS 4.9. CREAR EL PROCESO PARA CREAR INFORMES. 4.10. DISEO DE UN MEN 4.10.1 PASOS PARA DESARROLLAR UN MEN

UNIDAD 5 VERIFICAR EL FUNCIONAMIENTO DEL SISTEMA DE INFORMACIN


5.1. 5.2. 5.3. 5.4. REALIZAR PRUEBAS AL SISTEMA DE INFORMACIN VALIDAR EL SISTEMA DE INFORMACIN CREAR EL ARCHIVO EJECUTABLE EMPAQUETAR EL SISTEMA DE INFORMACIN

UNIDAD 6 ELABORAR DOCUMENTOS DEL SISTEMA DE INFORMACIN


6.1. ELABORAR MANUAL TCNICO 6.2. ELABORAR EL MANUAL DEL USUARIO.

UNIDAD 1 INTRODUCCIN

A VISUAL BASIC 6.0

1.1. ENTORNO DE DESARROLLO


Para comenzar a estudiar cualquier programa, lo mejor es empezar por el anlisis de la Interfaz Grafica1; que es la pantalla con la cual nos encontramos y con la que nos tendremos que familiarizar para poder trabajar cmoda y rpidamente. Con ms razn si se trata de VB, ya que no es una aplicacin, sino un Lenguaje de Programacin generador de Aplicaciones. El Entorno de desarrollo de Visual Basic contiene todas las herramientas necesarias para la creacin de aplicaciones. Visual Basic empez a utilizar un entorno MDI (Interfaz de Mltiples Documentos) que permite trabajar con muchos proyectos simultneamente (como Microsoft Word o Excel)

Graphical User Interface, GUI) es un conjunto de imgenes y objetos grficos para representar la informacin y acciones disponible en una aplicacin para computadoras., las acciones se realizan mediante manipulacin directa para facilitar la interaccin del usuario con la computadora.
1

EL REA DE TRABAJO:

1.1.1. Barra de Ttulos

1.- Barra de titulo 2.- Barra de Mens 3.-Barra de Herramientas 4.- Explorador de Proyectos

5.6.7.8.-

Ventana de propiedades Posicin del Formulario Caja de Controles Diseador de formularios

Es la Barra Horizontal situada en la parte superior en de la pantalla. Que es comn a todas las aplicaciones de Windows. En Visual Basic, la barra de titulo informa el nombre del proyecto abierto y el estado del mismo, es decir, si se encuentra en tiempo de diseo2 , de ejecucin3 o en pausa. 1.1.2. Barra de Mens

Visualiza las rdenes que t utilizas para desarrollar una aplicacin. Por medio de esta barra se puede acceder a todas las funciones incorporadas en Visual Basic.

Tiempo de Diseo es el momento en que el programador modela la apariencia de la aplicacin sin que la misma se este ejecutando. 3 Tiempo de Ejecucin es el momento en que la aplicacin se esta realizando, Las acciones se realizan a travs del cdigo ingresado por el programador.
2

1.1.3. Barra de Herramientas Facilita un acceso rpido a las rdenes mas comnmente utilizadas, mediante las barras de herramientas se puede acceder a funciones sin tener que utilizar el men o un atajo de teclado. El significado de cada botn se muestra al pasar el puntero del ratn por encima de cada uno de ellos.

1.1.4.

Explorador de Proyectos

Es el conjunto de todos los archivos (formularios, mdulos, clases y recursos) que forman una aplicacin. Se utiliza para desplazarse por los formularios y dems componentes de una aplicacin, permite acceder al cdigo del diseo de los formularios. En el explorador de proyectos aparecen 2 nombres , el de la izquierda es el nombre del objeto y el de la derecha (entre parntesis) es el nombre con el que se guardo el objeto en disco. En el presente ejemplo se puede observar que nos encontramos en el Proyecto nmero 1 y que cuenta con un solo Formulario. En su parte superior presenta dos botones de suma importancia, el primero, al pulsarlo nos muestra la Ventana de Cdigo (a) y el segundo nos muestra la Ventana de Diseo del Formulario (b)

1.1.5 Ventana de Propiedades A travs de esta ventana se puede modificar todas las propiedades de los controles u objetos, en tiempo de diseo y en tiempo de ejecucin. Cada objeto lleva asociado un conjunto de propiedades (nombre, posicin, tamao color, etc. ) Esta ventana es una de las ms importantes, se compone de la Ventana de Controles: A travs de la cual uno puede elegir el control sobre el que se trabajar u observar si en realidad estamos operando sobre el control deseado. Luego se pueden observar dos solapas; Alfabtica y Por Categoras: Esto en realidad es una cuestin de preferencias, en la forma de manejarnos para seleccionar las distintas modificaciones a realizar sobre las Propiedades. Tambin se pueden modificar sobre la parte derecha ventana los distintos Valores. de la

Por ltimo, en la parte inferior de la Ventana se puede observar una ayuda sobre la propiedad seleccionada, en este caso nos muestra el Caption (Ttulo)

1.1.6. Posicin de Formulario Permite colocar los formularios de su aplicacin en tiempo de diseo utilizando una pequea representacin grafica de la pantalla, muestra la posicin exacta donde aparecer nuestro formulario, dentro de la pantalla. Si nos dirigimos hacia l con el Mouse, automticamente este se modifica a cuatro flechas y podemos arrastrar el formulario al sector exacto de la pantalla en donde nos interesa que aparezca.

1.1.7. Caja de Controles Son herramientas que nos permiten colocar los controles en el formulario durante el diseo de la interfaz grafica del usuario (por ejemplo: etiquetas, cajas de texto, botones etc.)

Controles del cuadro de herramientas estndar 1.- Seleccionar objetos Seleccionar objetos es el nico elemento del cuadro de elementos que no dibuja un control. Cuando se selecciona, slo puede cambiar el tamao o mover un control que ya se haya dibujado en un formulario. 3.- Etiqueta Permite tener texto que no desee que cambie el usuario, como el ttulo debajo de un grfico. Cuadro de texto Contiene texto que el usuario puede introducir o cambiar. Cuadro combinado Permite dibujar un cuadro de lista combinado y un cuadro de texto. El usuario puede elegir un elemento de la lista o introducir un valor en el cuadro de texto. Cuadro de lista Se utiliza para mostrar una lista de elementos entre los que puede elegir el usuario. Puede desplazarse por la lista si sta contiene ms elementos de los que se pueden ver en un determinado momento.

Casilla de verificacin Crea una casilla que el usuario puede elegir fcilmente para indicar si algo es verdadero o falso o para mostrar varias elecciones cuando el usuario puede elegir ms de una. Botn de opcin Permite mostrar varias elecciones entre las que el usuario slo puede elegir una. Botn de comando Crea un botn que el usuario puede elegir para realizar la accin de un comando. Barra de desplazamiento Proporciona una herramienta grfica para desplazarse rpidamente por una larga lista de elementos o una gran cantidad de informacin, para indicar la posicin actual en una escala o como un dispositivo de entrada o indicador de velocidad o cantidad. Imagen Muestra una imagen grfica de un mapa de bits, icono o metaarchivo en el formulario. Las imgenes mostradas en un control Imagen slo pueden ser decorativas. Timer Produce de modo automtico un evento cada cierto nmero de milisegundos 4. La propiedad ms importante de un objeto de este tipo es Interval, que determina, precisamente, el intervalo en milisegundos entre eventos consecutivos. La accin que se desea activar debe programarse en el evento Timer de ese mismo control. El control Timer es invisible para el usuario.
Un milisegundo es el perodo de tiempo que corresponde a la milsima fraccin de un segundo (0,001s). viene especificada mediante una "m" minscula antepuesta al smbolo de la magnitud fundamental, que en el caso del segundo es una letra "s", resultando: 1 ms = 0,001 segundo = 1 milisegundo.
4

1.1.8. Diseador de Formularios Es la ventana sobre la que colocaremos los controles de la interfase grafica que el usuario utilizara para comunicarse con la aplicacin, permite modelar fcilmente el aspecto de un formulario, El Formulario es un objeto contenedor de otros objetos. Sobre l y a travs de la caja de Herramientas, colocaremos los distintos controles, que se llaman Objetos. Al hacer doble click sobre el formulario se pasa a otra Ventana, que se denomina Ventana de Cdigo, en la cual se escriben las sentencias necesarias (Cdigo), para que funcione nuestra aplicacin, Al hacer doble click sobre el Formulario, o sobre cualquier Objeto que est contenido dentro del Formulario, entramos automticamente en esta Ventana. La misma presenta en la parte superior dos Cajas Desplegables: (a) Nos muestra todos los objetos que tenemos creados dentro de nuestro proyecto. (b) Muestra todos los eventos posibles para cada uno de los objetos. (c)Por ltimo podemos observar donde escribiremos nuestras sentencias de cdigo

UNIDAD 2 MANEJO DE FORMULARIOS DE VISUAL BASIC 6.0

REALIZAR EL DISEO DE LA INTERFAZ GRAFICA PARA EL PROYECTO PROPUESTO

2.1 Generalidades 2.1.1. Definicin d: Sistema de Informacin (informtico).Basado en una Computadora

Es el Conjunto de objetos o partes que interactan o estn relacionados entre s con el propsito de realizar un fin comn.

Es el conjunto de partes interrelacionadas, software y de Recurso Humano.

hardware,

Un sistema de informacin es un conjunto organizado de elementos, estos elementos son: Personas. Datos. Actividades o tcnicas de trabajo. Recursos materiales en general (tpicamente en la actualidad, recursos informticos y de comunicacin), Todo ese conjunto de elementos interactan entre s para procesar los datos y la informacin (incluyendo procesos manuales y automticos) y distribuirla de la manera ms adecuada posible en una determinada organizacin en funcin de sus objetivos. Proyecto.Conjunto de acciones especficas necesarias para alcanzar los objetivos y metas definidas por un programa o subprograma, tendientes a la obtencin de resultados concretos, y que pueden planificarse, analizarse y ejecutarse administrativamente, en forma independiente. Un proyecto, por definicin, est orientado hacia la accin; un conjunto de proyectos conformar un subprograma o programa. Proyecto son: Plan, Programa e Idea.

Los proyectos, entendidos como una secuencia de actividades relacionadas entre s destinadas a lograr un objetivo, en un tiempo determinado, y contando con un conjunto definido de recursos, desde su inicio tienen un proceso bastante bien determinado, generalmente llamado ciclo del proyecto, independientemente del tema a que se refieran, a la duracin del proceso y a los actores que intervienen en el mismo. Anlisis de Sistemas.Distincin y separacin de las partes de un todo hasta llegar a conocer sus principales elementos.

El Anlisis de Sistemas trata bsicamente de determinar los objetivos y lmites de un sistema, interpretar su estructura y funcionamiento, marcar las directrices5 que permitan alcanzar los objetivos propuestos y evaluar sus consecuencias. (Es decir que quiero que haga el sistema). Diseo de SistemasTarea creativa en la que se idea una cosa til y esttica.

Guas de accin. Instrucciones o normas generales para la ejecucin de algo.

Es definir la arquitectura 6 de hardware y software, componentes, mdulos y datos de un sistema de cmputo para satisfacer ciertos requerimientos7. Es la etapa posterior al anlisis de sistemas. El diseo de sistemas es la evaluacin de las distintas soluciones alternativas y la especificacin de una solucin detallada a un problema de informacin. Desarrollo de Sistemas.Es un proceso continuo, ordenado en fases, a lo largo del tiempo, o de un tiempo determinado, es decir, es un Conjunto de cambios progresivos que se construye con la accin del objeto al interactuar con su medio adaptndose gradualmente.

Todo Desarrollo de Sistemas consta de varias fases, que por lo general se le conoce como Ciclo de Vida. Es un proceso por el cual los analistas de sistemas, los ingenieros de software, los programadores, y los usuarios finales juntan ideas y elaboran sistemas de informacin y aplicaciones informticas. El ciclo de vida clsico consta de 4 fases: anlisis de sistemas diseo de sistemas, implantacin de sistemas (implementacin8) y soporte de sistemas (mantenimiento)
6 7 8

tcnica o el arte de quien realiza el proyecto y dirige la construccin. Caractersticas que se desea que posea un sistema o un software. instalar un sistema o diseo informtico.

Formulario.Un formulario es generalmente una hoja de papel en la que disponemos de lugares en blanco para introducir la informacin, con un campo separado para cada dato.

Se llama formulario a una plantilla o pgina con espacios vacos que han de ser rellenados con alguna finalidad, por ejemplo una solicitud de empleo en la que has de rellenar los espacios libres con la informacin personal requerida. Tambin es utilizado en informtica para referirse al conjunto de campos solicitados por un determinado programa, los cuales se almacenarn para su posterior uso o manipulacin. Como un complemento, un formulario puede disponer de los llamados botones de comando. Pulsando estos botones se ejecutarn funciones o tareas que nos ayudarn a manejar la informacin. Base de Datos.Conjunto de informacin guardada de forma sucesiva y organizada de la cual se puede extraer uno o varios datos necesarios.

En una base de datos electrnica la definicin es casi la misma, Conjunto de informacin organizada que contiene una coleccin de los registros donde el sistema puede buscar, reescribir, clasificar, borrar, aadir informacin y analizar rpidamente. Con la diferencia de que trabajamos en la pantalla del monitor; de esta manera podremos ingresar y modificar los datos directamente en el formulario de la pantalla, formulario que habremos diseado previamente segn nuestra necesidad y en el que podremos incluir tambin material grfico (fotos) y sonidos. Evento.Un evento es un mensaje que enva un objeto anunciando que ha sucedido algo. Un evento es una seal que comunica a una aplicacin que ha sucedido algo importante. Por ejemplo, cuando un usuario hace clic en un control de un formulario, el formulario puede provocar un evento Click y llamar a un procedimiento que controla el evento. Por ejemplo, son eventos la pulsacin de una tecla o el paso del puntero de ratn sobre un objeto. A travs de los eventos podemos determinar el comportamiento del objeto con su entorno.). Cada formulario y control de Visual Basic tiene un conjunto de eventos predefinidos. A cada evento le corresponde una seccin de cdigo (un procedimiento de evento). Cuando deseamos que un control responda a un evento, escribimos cdigo en el procedimiento de ese evento.

Por ejemplo, la mayora de los objetos reconocen el evento Click: si un usuario hace clic en un formulario, se ejecuta el cdigo del procedimiento de evento Click del formulario; si un usuario hace clic en un botn de comando, se ejecuta el cdigo del procedimiento de evento Click del botn. El cdigo en cada caso ser diferente. Mtodos Los mtodos son operaciones o procedimientos9, llamadas desde programa que realizan tareas tpicas, previsibles y comunes. Vienen con el lenguaje y liberan al usuario de la tarea de programarlos. Cada tipo de objeto tiene sus propios mtodos. Por ejemplo, los formularios tienen un mtodo llamado show que permite mostrar una ventana.

es el modo de ejecutar determinadas acciones que suelen realizarse de la misma forma, con una serie comn de pasos claramente definidos
9

2.1.2 PASOS PARA DESARROLLAR UNA APLICACION INGRESAR AL PROGRAMA: Al iniciar Visual Basic aparece el cuadro de dialogo NUEVO PROYECTO, Este cuadro de Dialogo tiene tres pestaas con las siguientes opciones: Nuevo: Crea un nuevo proyecto del tipo establecido. Existente: Permite examinar un proyecto ya creado y guardarlo. Reciente: Presenta una lista con los ltimos proyectos abiertos Observa que en la pestaa NUEVO hay varios tipos de proyectos que se pueden crear. El principal a utilizar en nuestro curso ser EXE Stardard

Ya abierto Visual Basic, para crear un nuevo proyecto los pasos a seguir son:

1.2.3.4.-

Ir al men ARCHIVO Elegir la opcin NUEVO PROYECTO Seleccionar el tipo de proyecto deseado Hacer clic en botn ACEPTAR

GUARDAR UN PROYECTO Para guardar un proyecto hay que: 1.- Ir al men ARCHIVO 2.- Opcin GUARDAR PROYECTO COMO

EJECUTAR PROYECTO 1.- Men Ejecutar 2.- Iniciar (F5)

2.2. CONTROL DE FORMULARIOS 2.2.1 Creacin Un formulario es una ventana sobre la que nosotros dibujamos los elementos que el usuario tienen que utilizar para comunicarse con la aplicacin, los elementos son los controles; esto es, objetos grficos que permiten entrar o salir datos: ejemplo: cajas de texto, etiquetas, marcos, listas etc.

2.2.2 Mover y ajustar tamao del formulario Los formularios son ventanas, por lo tanto, para ajustar su tamao solo hacen falta cuatro propiedades que determinen su ubicacin (altura y anchura), estas propiedades son: Left, Top, Height y Width Tambin para mover el formulario: 1.- Con el botn izquierdo del mouse, sin soltarlo, posicionarse en la parte superior del formulario (barra de titulo del formulario) y llevarlo o al nuevo lugar

Para Cambiar el tamao se puede hacer de la siguiente manera: 1.- Con el botn izquierdo del mouse, sin soltarlo, apuntar en cualquiera de los puntos que se encuentra en el contorno del formulario y mover hacia delante o atrs para ajustar el tamao deseado,

2.3. DISEO DEL PROYECTO (PARTE CREATIVA) Al final del Curso tendrs que presentar un proyecto final, por lo tanto es el momento de imaginar lo que quieres realizar con visual basic 6.0, hars una investigacin de campo junto con un compaero donde buscaras un sistema de informacin basado en una computadora y lo ajustaras a lo que deseas hacer.
2.3.1. DISEAR EL FORMULARIO DEL MEN PRINCIPAL

Dibuja tu Men Principal, es la presentacin de tu sistema 2.3.2. DISEAR LOS FORMULARIOS Dibuja la forma de cmo capturas la informacin que alimenta tu sistema

2.3.3. VINCULAR LOS FORMULARIOS DEL PROYECTO. De Manera Grafica, hay que relacionar tus formularios para poder cumplir con la condicin de sistema.

UNIDAD 3

PRINCIPIOS BSICOS DE PROGRAMACION

3.1. VELEMENTOS DEL LENGUAJE 3.1.1. CONSTANTES Es un valor que no cambia de valor, durante la ejecucin de un programa Pueden ser de dos maneras : numricas y de caracteres 3.1.2. VARIABLES Contiene un valor que puede modificarse o cambiar a lo largo de la ejecucin de la aplicacin. Pueden ser de dos maneras : numricas y de caracteres

sus atributos son: NOMBRE.- tiene que comenzar por una letra y una longitud de 255 caracteres. TIPO.- integer, currency, string, boolean, date, variant. AMBITO.- local (dim, static, redim modulo (dim o private global (public) La sintaxis de la definicin de una variable se muestra a continuacin: Dim nombre As tipo Static nombre As tipo 3.1.3. TIPOS DE DATOS Identifica la clase de informacin que contendrn las variables y constantes en un programa mediante un tipo de datos. Cada uno de estos tienen una caracterstica diferente para el formato de la informacin y del almacenamiento e la memoria permitiendo as optimizar el rendimiento del sistema. Tipo Byte Valor Descripcin Numric Indica que el valor almacenado ser un numero o entero positivo entre 0 y 255; por ejemplo, al declarar las siguientes variables Dim a,b,c, As Byte, Algunos Valores que stas aceptaran son: a = 50 b=0 c = 255 reserva 1 byte en memoria para almacenar valores de 8 bits. Lgico Es usado para sealar que el valor almacenado ser un dato lgico (True o False). Por ejemplo, si se realiza la siguiente declaracin: Dim Activado As Bolean La Variable Activado solo puede tomar uno de estos valores: Activado = True Activado = False Numric Establece que la informacin tendr un formato o de nmeros enteros (positivos y negativos) con un mximo de 15 dgitos a la izquierda del punto decimal y 4 despus de este. Reserva 8 bytes en la memoria y generalmente es utilizado con variables que requieren precisin. Fecha Hace referencia a la informacin de fecha y hora, donde el rango para cada una es : FECHA: 01/01100 y 31/12/9999 para dia/mes/ao. Al declarar las siguientes Variables : Dim fecha_nacimiento, hora_ingreso As Date

Boolean

Currency

Date

Double

Numric o

Integer

Numric o

Long

Numric o Numric o

Single

String

Carcte r

Algunos posibles valores que pueden tomar son: Fecha_nacimiento = 15/03/1972 Hora_ingreso = 10:30:25 Usado para indicar que un valor ser un numero real o flotante de doble precisin, por ejemplo, al declarar: Dim notas as Double nota podra tomar uno de estos valores nota: = 3.65 nota = 0.18 nota = 18532320.463 Un numero flotante de doble precisin contienen 16 dgitos de precisin; es de gran utilidad al realizar clculos que requieren total exactitud, por ejemplo, clculos cientficos. Indica que se guardaran numeros enteros (positivos y negativos) comprendidos entre 32768 y 32767. por ejemplo, al declarar la siguiente variable: Dim Numero_registro As Integer Numero_registro podria tomar los siguientes Valores: Numero_registro = 100 Numero_registro = 12500 Almacena valores numricos (enteros positivos y negativos) que reservan 4 bytes en la memoria. (Es una ampliacin de Integer ya que acepta valores entre 2147483648 y 2147483648) Define que un datos ser un numero flotante de precisin simple, es decir, que el grado de precisin esta sujeto a siete dgitos, por ejemplo, si como resultado de un calculo se genera el siguiente numero, se tendra: 25.678.593.05 Para declarar variables, constantes y otros que almacenen una secuencia de caracteres (letras, nmeros, smbolos o una combinacin de ellos) Algunos ejemplos de String podra ser:

Type

Nombre Luis Alfonso Direccin Av. Jurez 1563 Edad 25 Ciudad Mxico D.f. Pais Mxico Estructu Define un tipo de datos personalizados por el ra usuario. Solo puede usarse a nivel de modulo y la sintaxis de su declaracin es la siguiente: (Public | Private) Type nomtipo

elemento1 As tipo elemento2 As tipo . . elementoN As tipo End Type Object Variant Objeto Todos Hace referencia a un objeto de tipo object. Almacena todos los tipos de datos, excepto cadenas de longitud fija y datos definidos por el usuario; adems, efecta automticamente las conversiones necesarias segn el tipo de datos de sta; por ejemplo, al declarar Var1 como Variant podra tomar cualquier valor. Dim Var1 As Variant Var1 podra tomar los siguientes valores: Var1 = 8520 Var1 = Feliz Navidad Var1 = 65386763.234

3.1.4. TIPOS DE OPERADORES Es un signo, cadena de caracteres o combinacin de estos que realiza calculos o comparaciones sobre diferentes tipos de expresiones. 3.1.4.1 Operadores Aritmticos y concatenacin Son usados para ejecutar clculos con expresiones numricas. Las expresiones son aquellas que permiten ser evaluadas como nmeros, pueden incluir palabras reservadas, constantes, variables y operadores que generen como respuesta un numero. Nombre Exponenciaci n
(cuando el resultado aparece mas de una vez en la expresin, la operacin se realiza de derecha a izquierda.)

Smb olo

Descripcin Se utiliza para Generar el resultado de un numero elevado a un exponente y su sintaxis es: Resultado = Base ^ exponente Donde Resultado es la variable en la que se asigna la respuesta de la operacin de exponenciacion, por ejemplo: Resultado = 5 ^ 2 => resultado = 25 X=2^3 => x=8 Potencia = x ^ y => potencia = xy

Suma

Se emplea para generar la adicin de dos o mas valores numricos. Su forma de uso es la siguiente: Resultado = sumando1 + sumando2

Donde Resultado es una variable que almacena la respuesta generada por la suma, por ejemplo: Respuesta = 20 + 30 => respuesta = 50 Porcentaje = 0.35 + 1.20 +0.50 => porcentaje = 2.05 Resta

* /

Multiplicaci n

Indica la Diferencia entre dos valores numricas o la negacin de un numero. La sintaxis es la siguiente: Resultado = num1 num2 Donde Resultado es la variable a la que se asigna la diferencia de los nmeros, por ejemplo: Resp = 30 5 => resp = 25 Resp1 = 5 30 => resp1 = -25 -resp => -25 Se emplea para generar el producto de dos o mas expresiones numricas, su forma de uso es: Resultado = factor1 * factor2 Donde Resultado es una variable que toma la respuesta de la operacin por ejemplo: Prod = 7 * 250 => prod = 1720 Prod_1 = 6 * 3 => prod_1 = 180 Tienen como propsito dividir dos expresiones numricas y obtener un resultado con punto flotante, es decir, con dgitos despus del punto. La sintaxis de este operador es: Resultado = dividendo / divisor Donde Resultado es una variable que almacena u valor en punto flotante generado por la divisin, por ejemplo: Resp = 7 /5 => resp = 1.40 Div = 10 / 2 => div = 5.00 Divisin = 35 /6 => divisin = 5.833333 Se usa para dividir dos expresiones numricas y obtener el resultado sin decimales. La sintaxis de esta operacin es: Resultado = dividendo \ divisor Donde Resultado es una variable que almacena un valor entero generado por la divisin, por ejemplo: Div = 7 \5 => = 1 Div1 = 11.82 \ 2 => = 6 Resp = 10 \ 2 => = 5 Divisin = 35 \ 6 => = 5 Se simboliza mediante la palabra reservada Mod y se utiliza para obtener el residuo de una

Divisin punto flotante

con

Divisin con resultado entero

Residuo de una Divisin

MO

Concatenaci on

+, &

divisin; la forma de uso es la siguiente: Resultado = dividiendo Mod divisor Donde Resultado es una variable en la que se asigna un valor entero (residuo de la divisin), por ejemplo: Residuo = 6 mod 3 => residuo = 0 Res1 = 10 mod 4 => res1 = 2 Sirve o es utilizado para concatenar o unir cadenas de caracteres, su sintaxis es: Nueva Cadena =Cadena1 & Cadena2, Ejemplo: A= Continente B= Americano C= A + B => Contienente Americano

3.1.4.2. Opereadores Relacioneales estos operadores se emplean para comparar dos expresiones y generar un valor verdadero o falso. Sintaxis: ExpresionA Operador_Relacional expresionB ExpresionA y expresionB pueden ser una combinacin de palabras reservadas, variables, constantes, numeros y operadores que generan un valor verdadero o falso por medio de un Operador_Relacional Operad or Descripcin Igualdad Diferencia Desigualdad Menor que Mayor que Menor o igual que Mayor o igual que

= <> < > <= >=

3.1.4.3- Operadores Lgicos Son aquellos que asocian dos expresiones numricas, de carcter o de comparacin que han sido evaluadas como verdaderas o falsas para generar un nuevo valor del mismo tipo. Cuando una expresin se evalua como Verdedera, automticamente toma un valor de 1 y cuando es falsa toma valor de 0, entonces: Verdadero = -1 (True) Falso = 0 (False) Opera dor Descripcin Priorida d

And Or Not Imp Xor Eqv

Conjuncin (y) Disyuncin (o) Negacin Implicacin Exclusin Equivalencia

2 3 1 6 5 5

Sintaxis ExpresinA AND ExpresinB Se utiliza para evaluar dos o mas expresiones de acuerdo con los siguientes Valores: ExpresinA Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) ExpresinB Verdadero (-1) Falso (0) Verdadero (-1) Falso (0) A AND B Verdadero (-1) Falso (0) Falso (0) Falso (0)

ExpresinA OR ExpresinB Es usado para evaluar dos o mas expresiones de acuerdo con los siguientes Valores: ExpresinA Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) ExpresinB Verdadero (-1) Falso (0) Verdadero (-1) Falso (0) A OR B Verdadero (-1) Verdadero (-1) Verdadero (-1) Falso (0)

ExpresinA NOT exoresinB Es utilizado para indicar la negacin lgica de una expresin. ExpresinA Verdadero (-1) Verdadero (-1) A NOT B Falso (0) Verdadero (-1) Expresin XOR expresionB

Utilizado para evaluar una exclusin lgica acuerdo con la siguiente tabla. ExpresinA Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) ExpresinB Verdadero (-1) Falso (0) Verdadero (-1) Falso (0)

de dos expresiones de

A XOR B Falso (0) Verdadero (-1) Verdadero (-1) Falso (0)

Expresin EQV expresionB Evala una equivalencia lgica de dos expresiones. ExpresinA Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) ExpresinB A EQV B Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) Verdadero (-1) Falso (0) Falso (0) Verdadero (-1) Expresin IMP expresionB Evala la implicacin lgica de dos expresiones. ExpresinA Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) ExpresinB A EQV B Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) Verdadero (-1) Falso (0) Falso (0) Verdadero (-1) Expresin EQV expresionB Evala una equivalencia lgica de dos expresiones. ExpresinA Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) ExpresinB A EQV B Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) Verdadero (-1) Falso (0) Falso (0) Verdadero (-1) Expresin IMP expresionB Evala la implicacin lgica de dos expresiones. ExpresinA Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) ExpresinB A IMP B Verdadero (-1) Verdadero (-1) Falso (0) Falso (0) Verdadero (-1) Verdadero (-1) Falso (0) Verdadero (-1)

3.2 ESTRUCTURAS DE CONTROL Permiten cambiar la secuencia de instrucciones de un programa y ejecutar varias veces un bloque de las mismas sin necesidad de escribirlas tantas

veces como se requiera. Todas las sentencias de control para tomar la decisin de ejecutar , o no un bloque de instrucciones dependiendo del resultado de la evaluacin de una condicin o variable.

3.2.1 ESTRUCTURA DE CONTROL SELETIVAS: IF THEN ELSE Permite tomar una decisin referente al camino a seguir o accin a ejecutar en un proceso basndose en u resultado (verdadero o falso) de una condicin . SINTAXIS: IF CONDICION THEN ACCION 1 ELSE ACCION 2 END IF ANIDAMIENTO: IF CONDICION 1 THEN SENTENCIA 1 ELSEIF CONDICION 2 SENTENCIA 2 ELSEIF CONDICION N SENTENCIA N END IF Ejemplo: Supongamos que al efectuar una compra en un almacen, si adqurimos mas de 100 unidades de un mismos articulo, nos hacen un descuento de 40%; entre 25 y 100, un 20%; entre 10 y 24, un 10%, y no hay descuernto para una adqusicion de menos de 10 unidades. Calcular el importe a pagar If cantidad > 100 then Importe = cantidad * preciounidad * 0.6 Elseif cantidad >= 25 then Importe = cantidad * preciounidad * 0.8 Elseif cantidad >= 10 then Importe = cantidad * preciounidad * 0.9 Else Importe = cantidad * preciounidad

SELECT CASE Permite tomar ejecutar una de varias acciones en funcin del valor de una expresin . SINTAXIS: SELECT CASE EXPRESION CASE LISTA 1 SENTENCIA 1 CASE LISTA 2 SENTENCIA 2 CASE ELSE SENTENCIA N END SELECT circular por una autopista. El vehiculo puede ser una bicicleta, una moto, , un coche o un camion. El importe se calcular{a segn los siguientes datos: Un im porte fijo de 25 unid. Para las bicicletas Las motos y los coches pagaran 10 unidades x km Los camioones pagaran 10 unid. por km + 25 unid. X ton. Ejemplo: Vehiculo:Inputbox (Clase de Vehiculo) Select Case Lcase(vehiculo) Case bicicleta Importe = 25 Case moto, coche Km=Inputbox(Kilometros:) Importe= 10 * km Case camion |Km=Inputbox(Kilometros:) Tm=Inputbox(Toneladas:) Importe= 10 * km + 25 * tm Case Else Print entrada No valida End Select 3.2.2 ESTRUCTURA DE CONTROL REPETITVAS FOR NEXT La sentencia da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto numero de veces.

SINTAXIS: FOR VAR= EXPRESION1 TO EXPRESION 2 STEP EXPRESION 3 SENTENCIAS NEXT VAR Ejemplo: Dim i as integer, suma as Integer For I=1 to 99 step 2 Suma =suma + I Next i Print suma WHILE WEND Repite la ejecucin de un conjunto de sentencias mientras una condicin dada sea cierta. La condicin se verifica antes de ejecutarse el conjunto de sentencias. SINTAXIS: WHILE CONDICION SENTENCIAS WEND Ejemplo: Dim n as Integer N= 1 While n<=10 Print n; N= n + 1 Wend

UNIDAD 4 ELABORACIN Y MANIPULACIN DE UNA BASE DE DATOS CON V.B. 6.0

4.1. CREACIN DE UNA BASE DE DATOS El uso de estas bases de datos surgi por la necesidad de mantener una gran cantidad de datos bien organizados, de forma que sea posible consultaros rpidamente para convertirlos en informacin til. Nos ocuparemos de las bases de datos ACCESS, ya que son las mas populares para manejar bases d datos de pequeo y mediano tamao. ESTRUCTURA DE UNA BASE DE DATOS En una base de datos lo ms importante es la estructura, es decir, la forma en la que se organizan los datos en su interior. Si el diseo es incorrecto, no ser posible aprovechar toda la potencia que nos puede brindar la base, y en varios casos tendremos un rendimiento insuficiente. Crear un diseo adecuado para una base de datos compleja no es tarea fcil; de hecho, es un tema que se estudia en el mbito universitario o profesional. VEAMOS LOS PRINCIPALES COMPONENTES DE UNA BASE DE DATOS:

Tablas. Representan un conjunto de datos de un mismo tipo y tema. Por ejemplo. Una tabla llamada tbIDeudores podra contener los datos de todos los deudores de una empresa . Campos. Cada tabla puede tener varios campos, y cada uno representa una caracterstica del tema de la tabla. Por ejemplo, en la tabla de deudores podramos usar tres campos: Nombre, Apellido, Saldo. Registros. Son los datos en s, que estn guardados en la tabla. Por ejemplo, un registro podra ser Nombre: Luis, Apellido: Prez, Saldo: -5000.

USANDO ACCESS Abrimos Access y elegimos "Crear una nueva base de datos usando" "Base de datos de Access en blanco"

Lo guardamos, por ejemplo, en "mis documentos", con el nombre "db1.mdb" Despus creamos una tabla en vista diseo

Ingresen los mismos datos que ven a continuacin, ya que estos son los datos (la tabla) que vamos a usar para programar.

Guarden la tabla con el nombre "Tabla1" Ahora ingresamos los datos en la tabla:

Y ahora lo mas importante. Para no tener inconvenientes de compatibilidad vamos a hacer lo siguiente: "Herramientas -> Utilidades de las base de datos -> Convertir base de datos -> A una versin anterior de la base de datos de Access..."

Guardamos con el nombre "base1.mdb" Esta base de datos llamada "base1.mdb" es la q vamos a usar en Visual Basic. No usaremos la otra (db1) por motivos de compatibilidad. En definitiva, ambas bases de datos son iguales, solo cambia la versin

4.1.1 TIPOS DE DATOS QUE SOPORTAN LAS TABLAS. A continuacin se muestran los tipos de campos que soporta Access para las tablas, as tambin como caractersticas y el tipo de dato que se puede almacenar en ellos.
TIPO DE CAMPO DESCRIPCIN En este tipo de campo se puede almacenar texto o combinaciones de texto y nmeros, as como nmeros que no requieran clculos, como los nmeros de telfono o cdigos postales. Este campo puede soportar un mximo de 255 caracteres, aunque el tamao se puede controlar en la propiedad Tamao del campo que se vera a continuacin Se utiliza para almacenar texto extenso o de gran longitud, como notas o descripciones. Tambin puede llevar combinacin de texto y nmeros. Puede soportar hasta 65535 caracteres. Se utiliza para almacenar datos numricos que pueden ser utilizados en todo tipo de operaciones matemticas, excepto operaciones monetarias(para este tipo de operaciones se utiliza el tipo de campo Monetario), utilizaremos la propiedad Tamao del campo para definir el tipo numrico especificado Sirven para almacenar fechas y horas. Puede establecer valores de fecha y hora desde el ao 100 hasta el 9999. Los formatos se establecern en la propiedad Formato correspondiente a este tipo de campo. Los campos de este tipo se utilizan para almacenar valores monetarios. Para los nmeros almacenados en este tipo de campo se tiene una precisin de 15 dgitos a la izquierda de la coma decimal y 4 dgitos a la derecha. Este tipo de campo almacena exclusivamente nmeros secuenciales (en incrementos de uno), o nmeros aleatorios insertados automticamente por Access cuando se agrega un registro. Son campos que solo contienen uno de dos valores, como: Si/No, Verdadero/Falso, Activado/Desactivado En este campo se pueden insertar objetos de cualquier tipo creados en otros programas, como imgenes, sonidos u otros. Incluso se puede insertar documentos de Microsoft Word u hojas de clculo de Microsoft Excel mediante el protocolo OLE. Tipo de campo que sirve para almacenar hipervinculos. Un hipervinculo puede ser una ruta de acceso a una ubicacin de red local, o una direccin URL para acceder a una pagina Web. Crea un campo que permite elegir un valor de otra tabla o de una lista de valores mediante un cuadro combinado. Al introducir los datos de manera manual en una tabla, se inicia un asistente que permite definirlo de manera automtica.

Texto

Memo

Numrico

Fecha/Hora

Moneda

Autonumerico

Si / No

Objeto OLE

Hipervinculo

Asistente para bsquedas

4.2. VINCULACIN DE DE UNA TABLA CON UN FORMULARIO. Bases de datos ADO


Terminada la introduccin terica, vamos a meternos de lleno en el manejo de bases de datos desde Visual Basic, usando la nueva tecnologa ADO. En la prctica hay dos formas de acceder a una base de datos desde Visual Basic. Mediante un control de: datos ADO (ADO Data Control) Mediante cdigo, utilizando los objetos de datos ActiveX (ADO) La primera forma es la ms sencilla y didctica para empezar, pero no es tan flexible como la segunda. Mediante el control de datos podemos conectarnos a una base de datos, configurando la conexin con sencillos asistentes desde la ventana de propiedades (aunque esto tambin se puede hacer con cdigo). En cambio, para utilizar cdigo ntegramente, escribiremos sentencias como sta: Dim conexion As ADODB.Connection Dim rst As ADODB.Recraset Set Conexion = New ADODBB.conection ... Set rst = Conexion.Execute ("SELECT * FROM tblDeudores WHERE Saldo < -1500") Primero veremos las funciones del control de datos, y luego pasaremos al cdigo. EL CONTROL DE DATOS ADO ste es un control como cualquier otro, y se carga en la caja de herramientas que Visual Basic utiliza para disear un formulario. Como el control no es estndar, hay que agregado pulsando CTRL+T o mediante el men Proyecto Componentes. Debemos seleccionar el control "Microsoft ADO Data Control 6.0 (OLE DB)" como se ve en la Figura.

Antes de usar el control de datos ADO, hay que agregarlo a la caja de controles. A partir de ahora, podemos agregar un control de datos ADO a cualquier formulario, como normalmente lo hacemos. Una vez all, el contra] tiene la siguiente apariencia. El nombre predeterminado del control es "Adodc1" (ADO Data Control 1).

Configurar la conexin Lo primero que debemos hacer con el control es configurar la conexin, es decir, indicarle cmo y de dnde obtener los datos. Para esto, la propiedad ms importante es ConnectionString. Esta propiedad permite definir una cadena de conexin, en la cual se indican todas las caractersticas de la misma. Podemos ingresar esta propiedad manualmente en la ventana de propiedades, o utilizar el botn con los tres puntos que se muestra en la Figura. Luego de hacer clic sobre dicho botn, veremos una ventana (Ver Figura) que nos permite establecer tres orgenes de datos diferentes:

Use Data Link File (usar un archivo de enlace). Nos permite abrir un archivo (con extensin VOL o DSN) con la configuracin de la conexin a una base de datos. Use ODBC Data Source Name (usar origen de datos ODBC). Permite utilizar una configuracin OOBC ya creada. Use COnnection String (usar cadena de conexin). Permite definir una cadena de conexin para cualquier tipo de acceso que necesitemos.

Nosotros vamos a elegir la tercera opcin (Use Connection String). Una vez que la seleccionamos, debemos pulsar el botn Generar para iniciar otro asistente que nos permita generar la preciada cadena. En el primer paso de este asistente podemos observar una lista de proveedores OLE DB (ver Figura) de los cuales generalmente vamos a usar uno: el proveedor para bases de datos Access.

Como vamos a acceder a una base de datos Access, elegimos Microsoft Jet 4.0 OLE DB Providery seguimos adelante con Next, o vamos a la pestaa siguiente (Connection). Este ltimo paso es muy sencillo, ya que slo debemos seleccionar el nombre de la base de datos.

Mediante la pestaa Advanced podemos modificar algunos parmetros avanzados; la pestaa All permite modificar todos los valores de la conexin. Una vez que terminamos, pulsamos el botn Aceptar para volver al cuadro anterior, donde volvemos a pulsar el mismo botn.

Luego, en la propiedad ConnectionString debera quedar cargada la cadena de conexin que construimos, como podemos verificar en la ventana de propiedades. OBTENER REGISTROS DE LA CONEXIN Cuando la conexin ya est creada, lo principal es obtener un conjunto de registros para trabajar, como los de una tabla o una consulta. Si una base de datos tuviese ms de una tabla o consulta, deberamos seleccionar slo una de ellas. Para hacerla tenemos que establecer la propiedad RecordSource del control de daros ADO. Esta propiedad tambin dispone de un prctico asistente que nos ayudar (ver Figura).

All debemos establecer tres campos: Command Type (Tipo de comando). Indica si lo que vamos a acceder es una tabla, una consulta SQL, o cualquier procedimiento almacenado en la base de datos. Aqu podemos elegir entre 4 opciones: Opcin 1 - adCmdToxl.- Vamos a obtener un grupo de registros que satisfaga una COnlulta SOL. 2 - adCmdTable.- Vamos a acceder a los registros de una tabla. 4 adCmtStoredProc.- Vamos a acceder a los registros que seon devueltos por un procedimiento almacenado en la base de datas. 8 adCmdUnknow.- Desconocido. Puede ser cualquiera de las anteriores, pero no "es conveniente usar esta opcin, ya que ADO pierde tiempo en determinar el tipo de operacin (acceder a una tabla, ejecutar una consulta, etc.).

Table or Stored Procedurc Name (Tabla o procedimiento). Si vamos a acceder a una tabla (adCmdTable), aqu debemos indicar su nombre. Este campo es un combo desplegable que muestra las tablas y consultas disponibles en la base de datos. Comnmand Text SQL (una sentencia SQL). Si vamos a obtener un grupo de registros a una consulta nueva (adCmdText), aqu debemos escribir la sentencia SQL correspondiente. Una vez que establecimos esta propiedad, se modifica automticamente la propiedad CommandType del control de datos para que contenga el tipo de acceso adecuado (adCmdText. adCmdTable, etc.). Esta propiedad tambin se puede modificar directamente, sin pasar por el asistente de la propiedad RecordSource. HAY QUE SABERLO PROPIEDADES RECORDSOURCE y COMMANDTYPE Mediante los propiedades RecordSource y CommandType podemos acceder a los registros de uno tabla, consulta o procedimiento de una base de datos. MOSTRAR LOS DATOS Despus de lograr el acceso a los datos, lo ms lgico es que necesitemos mostrarlos. Para hacerla podemos usar alguno de los controles estndar, que pueden "enlazarse" o "engancharse" con el control de datos. Esto se puede realizar mediante las propiedades DataSource y DataField de esos controles, que pueden ser cajas de texto, etiquetas, combos y controles de imagen, entre otros. La primera propiedad, DataSource, indica el nombre del control de datos del cual colgarse, y la segunda, DataField, el campo del cual obtener los datos. Una vez que el control de datos tiene otro control (o controles) enlazado, se habilitan las flechas laterales del mismo, permitindole al usuario desplazarse por los datos. El objeto Recordset' Cuando utilizamos un control de datos, ste obtiene cierta cantidad de registros de una base de datos. No importa si estos registros vienen de una tabla o de una consulta; el hecho es que hay un grupo de registros que podemos acceder, modificar, contar, eliminar, y mucho ms. Todas estas acciones estn disponibles a travs de un objeto llamado Recordset (significa conjunto de registros), que es parte de cualquier control de datos. Por ejemplo: Adodcl.Recordset Datos.Recordset

Ambas instrucciones se refieren al objeto Recordset de dos controles de datos. Como todo objeto, un Recordset tiene sus propiedades y mtodos, algunos de los cuales se describen brevemente a continuacin:

Propiedad
AbsolutePosition.- Indica la posicin del registro actual. RecordCount.- La cantidad de registros accedidos en la ltima accin MaxRecords.- Limita la cantidad de registros que puede llegar a devolver una accin ActiveConnection.- Es el objeto que contiene todos los datos de la conexin actual del control BOF.- Un valor booleano que indica si estamos en el primer registro EOF.- Un valor booleano que indica si estamos justo despus del ltimo registro Fields.- Objeto que contiene informacin acerca de los campos, incluyendo los datos del registro actual Filter.- Permite filtrar los datos que se cargan en el control, mediante una expresin SQL

Mtodo
AddNew.- Agrega un registro Edit.- Permite editar los campos del registro actual Delete.- Elimino el registro actual Update.- Graba los datos que estn siendo editados o agregados Close.- Cierra el Recorset y libera la memoria ocupada por el mismo MoveFirst.- Mueve el puntero al primer registro MoveLast.- Mueve el puntero al ltimo registro MoveNext.- Se mueve al prximo registro MovePrevious.- Se mueve al registro anterior Refresh.- Actualiza los datos del control Por ejemplo: Datos.Recordset.Absoluteposition Esto devuelve la posicin del registro actual dentro del conjunto. 4.3. MANIPULACIN DE LOS DIFERENTES TIPOS DE DATOS EN LAS TABLAS Agregar un registro Una de las posibles acciones a realizar en un Recordset es la de agregar un registro. Para esto, basta con seguir tres sencillos pasos:

1. Utilizar el mtodo AddNew del Recordset, para indicarle que vamos a crear un nuevo registro. 2. Cargar en el objeto Fields del Recordset los valores de todos los campos del registro nuevo. 3. Llamar al mtOdo Updatc para dar por finalizada la operacin. Editar un registro Editar el regisrro actual de un Recordset no es complicado. Bsicamente, es lo mismo que crear uno nuevo, salvo que en este caso se utiliza el mtodo Edit en lugar de AddNew. Eliminar el registro Eliminar el registro actual es de lo ms fcil, pero peligroso. Para hacerlo se utiliza el mtodo Delete del Recordset, por ejemplo: Datos.Recordset.Delete Hay que tener en cuenta que este mtodo elimina siempre el registro actual. Si queremos eliminar un registro en especial, primero debemos buscarlo en el Recordset, y una vez que lo encontramos, llamar al mtodo Delete. Buscar un registro Una vez que nos conectamos con una base de datos y obtenemos un conjunto de registros de la misma, una de las operaciones ms comunes es la de buscar datos. Por ejemplo, supongamos que queremos ubicar a la persona 'Jose Luis Ramirez", para eliminarla de la tabla. Para tal fin podemos utilizar el mtodo Find de cualquier Recordset: Datos.Recordset.Find Criterio, FilaComienzo, Direccion, BookmarkCoEl significado de sus parmetros es el siguiente:

Mtodo
Criterio.- Criterio de bsqueda. Es una expresin que condicin debe cumplir un registro para ser localizado. indica que

FilaComienzo Indica cuntos registros obviar de la bsqueda, a partir de la posicin actual, o la de BookmarkComienzo (si se especifica uno). Direccion Indica la direccin en la cual buscar. Si usamos la constante

adSearchForward nos movemos hacia delante, y si usamos la constante adSeerchBockward, vamos en sentido inverso. BookmarkComienzo Permite comenzar la bsqueda a partir de un registro especial que haya sido marcodo. Veamos un ejemplo: Datos.Recordset.MoveFirst Datos.Recordset.Find "Nombre='Jose Luis''', 0, adSearchForward Aqu buscamos un registro en el cual el campo Nombre sea igual a Jose Luis, comenzando a partir de la primera posicin (para eso usamos MoveFirst) y explorando hacia adelante. Ntese que las cadenas dentro de la expresin se encierran entre comillas simples. HAY QUE SABERlO En este tipo de expresiones, las cadenas siempre van entre comillas simples. El criterio puede llegar a ser ms complicado, por ejemplo: "Nombre='Jose Luis' AND Apellido='Ramirez'" Aqu el criterio busca un registro que cumple condiciones sobre dos campos: Nombre y Apellido (para esto usamos el operador lgico AND). "Nombre LIKE 'J*'" Busca todos los registros en los cuales el campo Nombre comience con la letra j (ntese que hay comillas simples). "Saldo < -1000" Busca todos los registros con un campo Saldo menor a-1000 pesos. "Fecha> #14/07/1979#" Busca todos los registros con un campo Fecha que sea superior al 14 de julio de 1999. Para usar fechas en este tipo de expresiones, debemos encerrarlas entre dos numerales (#). Atencin En estas expresiones, las fechas se encierran entre dos numerales, por ejemplo: #15/06/1976#. Luego de ejecutar el mtodo Find, la posicin actual dentro del Recordset se actualiza para que apunte al registro encontrado (si hubo alguno). Si no se encuentra ningn registro que satisfaga el criterio indicado, la

propiedad EOF del Recordset toma el valor True (verdadero) Y el puntero se ubica justo despus del ltimo registro. Podemos usar esta propiedad par determinar si la bsqueda fue exitosa o no. Filtrar datos Otra operacin muy comn es la de filtrar datos. Filtrar se refiere a dejar en el Recordset slo los registros que cumplan con una determinada condicin. Por ejemplo, si queremos mostrar un listado slo con los deudores cuyo saldo sea inferior a una cierta cantidad de dinero, es ideal aplicar un filtro. Los filtros se pueden aplicar mediante la propiedad Filter del Recordset: Datos.Recordset.Fi1ter = Criterio El criterio es una expresin del mismo tipo que la que vimos con el mtodo Find, Por ejemplo: Datos.Recordset.Fi1ter = Nombre LlKE 'J*' Luego de establecer la propiedad Filter como se ve en el ejemplo, el Recordset pasaria a contener solo los registros que cumplan con la condicin indicada (que empiecen con la letra J). HAY QUE SABERlO La propiedad Filter tambin puede establecerse en tiempo de diseo, mediante la ventana de propiedades. Si una vez que aplicamos un filtro queremos volver a ver todos los registros del Recordset, debemos darle el valor "" (una cadena vaca) a la propiedad Filter, y luego usar el mtodo Refresh del control de datos, que se encarga de actualizar los datos que ste posee. Mostrar un listado con los datos: el DataGrid Al comienzo del captulo decamos quc una tabla se representaba visualmente por un listado con forma de grilla, en el cual las filas eran los registros y las columnas los campos. Generar este tipo de listados en Visual Basic no es complicado, ya que Microsoft prOvee de un control especial llamado Data Grid. Dado que ste no es un control estndar que se encuentra en la caja de herramientas, debemos agregarlo desde la ventana de componentes (CTRL+T, o men ProjectjComponents), eligiendo "Microsoft DataGrid Control 6.0 (OLEDB)". Una vez hecho esto, el cono aparece en la caja de herramientas.

Este control permite engancharse con un Data Control para mostrar todos los datos de Recordset activo (que pueden ser los datos de una tabla, una consulta, un conjunto de datos filtrados, o lo que necesitemos). Su uso es muy sencillo: Una vez que tenemos un control de datos ADO conectado a una base de datos, agregamos un DataGrid al formulario. Vamos a sus propiedades y establecemos DataSource para que apunte al conlrol de datos. Sobre el DataGrid ubicado en el formulario, hacemos click derecho y elegimos la opcin Retrieve Fields (Recuperar campos) del men con textual que aparece. Ahora, el listado se modifica y cada columna pasa a ser un campo en particular. En la Figura se ve la apariencia de un DataGrid en tiempo de diseo. Para modificar Su apariencia tenemos dos opciones bsicas: En la ventana de propiedades, elegir la propiedad Custom. All podemos cambiar varios aspectos del listado: el ttulo de cada columna, el tamao de las mismas, la forma de seleccin, el formato de los datos que aparecen, y mucho ms. Sobre el DataGrid ubicado en el formulario, hacer clic derecho y elegir la opcin Edil. Esto permite agregar columnas nuevas, cambiar el orden de las existentes, modificar su tamao, etc. Una vez que tenemos configurado el DataGrid, podemos ejecutar el programa y ver el listado. Si en alguna celda cambiamos un valor, ste tambin se modificar en la base de datos, ya que el control se encuentra "enganchado" a la misma. Para evitar que suceda, podemos cambiar la propiedad AllowUpdate del DataGrid a False. Si, por el contrario, queremos un listado ms interactivo donde el usuario tenga la posibilidad de cargar datos nuevos y modificar o eliminar los existentes. podemos usar las propiedades AllowAddNew, AllowDelete y AllowCpdate en True.

4.11. CREACION DE CONSULTAS CON SQL

Bueno, ahora q tenemos abierta la base de datos, vamos a realizar unas consultas utilizando ordenes SQL. Por lo tanto podriamos declarar una variable para almacenar nuestra sentencia SQL. Dim SQL As String Ya estamos listos para aplicar SQL.. SENTENCIAS DE SELECCIN O CONSULTAS Bien, SQL permite realizar consultas mediante sentencias de seleccin "SELECT". Lo q hace esta sentencia SELECT es tomar datos de una base de datos para devolverlos a quien se lo pidi (en nuestro caso quien se lo pide es el objeto TBL). SELECT consta de seis clusulas: las dos primeras obligatorias (SELECT y FROM) y las otras opcionales (WHERE, GROUP BY, HAVING, UNION, ORDER BY). SELECT y FROM FUNCIONES DE AGRUPAMIENTO WHERE GROUP BY HAVING UNION ORDER BY CONSULTAS A MAS DE UNA TABLA

SELECT y FROM Veamos, con un ejemplo, como funciona: SQL = "SELECT * FROM tabla1" Set TBL = BDD.OpenRecordset(SQL) la tabla 'TBL almacena todos los valores de

Nuestra orden SQL es: seleccionar (SELECT) todos los campos (*) de (FROM) la tabla1. Ahora vamos a mostrar en la lista lo q almacenamos.

TBL.MoveFirst 'nos posicionamos en el primer registro de la tabla Do Until TBL.EOF ''La propiedad EOF se pone TRUE cuando se a llegado al final de la tabla List1.AddItem TBL("nombre") TBL.MoveNext 'pasamos al siguiente registro Loop De esta manera, al ejecutar, nos debe aparecer en la lista todos los nombres de la tabla. Si queremos mostrar "nombre" "apellido": TBL.MoveFirst Do Until TBL.EOF List1.AddItem TBL("nombre") & " " & TBL("apellido") TBL.MoveNext Loop Si queremos listar "nombre" "apellido" tiene "edad": TBL.MoveFirst Do Until TBL.EOF List1.AddItem TBL("nombre") & " " & TBL("apellido") & " tiene " & TBL("edad") TBL.MoveNext Loop Qu sucede si solo quera tomar de la tabla1 los campos nombre y edad (no el apellido). En este caso la sentencia SQL quedara: SQL = "SELECT nombre,edad FROM tabla1" Por lo tanto el formato de la sentencia SELECT hasta ahora es: SELECT campo1,campo2,...,campoN FROM nombre_de_la_tabla NOTA: si ya terminamos de trabajar con la tabla y con la base de datos las podemos cerrar de la siguiente manera: TBL.Close 'cierra tabla BDD.Close 'cierra base de datos

FUNCIONES DE AGRUPAMIENTO Las funciones de agrupamiento son:

DISTINCT: Dijimos q si usabamos el * nos seleccionaba todos los campos. Tambin hay un operador llamado DISTINCT, ste elimina las filas o registros duplicados del resultado de la consulta. Esto se ve bien en el siguiente ejemplo: SQL = "SELECT DISTINCT edad FROM tabla1" 'almacena todas las edades sin repetirlas Set TBL = BDD.OpenRecordset(SQL) TBL.MoveFirst Do Until TBL.EOF List1.AddItem TBL("edad") TBL.MoveNext Loop COUNT: Este operador nos devuelve la cantidad de valores en una columna. Por ejemplo, COUNT(nombre) devolver el nmero de registros con valores no nulos en el campo nombre. Pero si usamos COUNT(*), nos devuelve el nmero de registros incluyendo aquellos registros con valores nulos. SQL = "SELECT COUNT(*) FROM tabla1" 'para saber la cantidad de registros (incluye los nulos) Set TBL = BDD.OpenRecordset(SQL) List1.AddItem TBL("expr1000") 'expr1000 es el name del item de TBL q almacena el resultado del operador de agrupamiento SUM: Devuelve la suma total de los valores de una expresin de columna o campo NUMERICA (si no es numerica les da error!) . Por ejemplo, SUM(edad) devolver la sumatoria de las edades. SQL = "SELECT SUM(edad) FROM tabla1" 'sumatoria de las edades Set TBL = BDD.OpenRecordset(SQL) List1.AddItem TBL("expr1000") AVG: Devuelve el promedio de los valores de una expresin de columna. Por ejemplo, AVG(edad) devolver el promedio de las edades. Esto seria dividir SUM(edad)/COUNT(edad). SQL = "SELECT AVG(edad) FROM tabla1" MAX: Devuelve el valor ms alto de los contenidos en una expresin de columna. Si hacemos: SQL = "SELECT MAX(edad) FROM tabla1" Nos dir la edad mas alta.

MIN: Si hay un MAX, por q no puede haber un MIN? ya se habran dado cuenta lo q hace. Entonces, si SQL = "SELECT MIN(edad) FROM tabla1" Nos dir la edad mas baja. EJEMPLO: quiero saber cuntos registro tengo, cual es la menor edad y cual es el promedio de todas las edades Dim BDD As Database Dim TBL As Recordset Dim SQL As String Set BDD = OpenDatabase("c:\mis documentos\base1.mdb") SQL = "SELECT COUNT(*), MIN(edad), AVG(edad) FROM tabla1" Set TBL = BDD.OpenRecordset(SQL) List1.AddItem "total de reg: " & TBL("expr1000") List1.AddItem "MINIMA EDAD: " & TBL("expr1001") List1.AddItem "PROMEDIO EDADES: " & TBL("expr1002") TBL.Close BDD.Close

WHERE Con WHERE indicamos condiciones para la seleccin de ciertos registros. Veamos un ejemplo: Antes q nada nuestra sentencia SELECT quedara asi: SELECT campo1,campo2,...,campoN FROM nombre_de_la_tabla WHERE condicion1 AND condicion2 AND ... AND condicionN Dim BDD As Database Dim TBL As Recordset Dim SQL As String Set BDD = OpenDatabase("c:\mis documentos\base1.mdb") SQL = "SELECT * FROM tabla1 WHERE edad < 30" Set TBL = BDD.OpenRecordset(SQL) TBL.MoveFirst Do Until TBL.EOF List1.AddItem TBL("edad")

TBL.MoveNext Loop TBL.Close BDD.Close Con esta instruccin decimos q: seleccione (SELECT) todos los campos (*) de (FROM) tabla1 q cumplan la condicin (WHERE) edad < 30

GROUP BY Esta clusula se utiliza para agrupar segun lo q especifiquemos. Por ejemplo, podemos listar todos los datos de nuestra tabla1, pero agrupados por edad. SQL = "SELECT edad, nombre, apellido FROM tabla1 GROUP BY edad,nombre, apellido" Set TBL = BDD.OpenRecordset(SQL) TBL.MoveFirst Do Until TBL.EOF List1.AddItem TBL("nombre") & " " & TBL("apellido") & " tiene " & TBL("edad") TBL.MoveNext Loop Entonces el formato es: GROUP BY expresion1, expresin2, ..., expresinN. IMPORTANTE: Todas las expresiones deben coincidir con lo q pusimos en SELECT. Por lo tanto lo siguiente no funciona: SQL = "SELECT * FROM tabla1 GROUP BY edad,nombre, apellido" 'no se puede agrupar mediante los campos seleccionados con * SQL = "SELECT edad FROM tabla1 GROUP BY apellido" SQL = "SELECT nombre, apellido, edad FROM tabla1 GROUP BY edad"

HAVING Asi como la clusula WHERE especifica condiciones para la seleccin de registros, HAVING especifica condiciones para el agrupamiento (GROUP BY). Por lo tanto HAVING funciona solo si se especifica un GROUP BY.

SQL = "SELECT edad, nombre, apellido FROM tabla1 GROUP BY edad,nombre, apellido HAVING edad<30" Con este ejemplo agrupamos segn la edad, pero solo los q su campo edad es menos a 30.

UNION Con este operador lo q hacemos es juntar dos resultados de dos sentencias SELECT diferentes. El resultado de la union son todos los registros devueltos en ambas sentencias, y los registros repetidos se omiten a no ser q utilicemos la palabra ALL. La forma es: SELECT sentencia1 UNION ALL SELECT sentencia2 'sentencia1 debe coincidir con sentencia2 veamos q sucede si hacemos lo siguiente SQL = "SELECT * FROM tabla1 UNION SELECT * FROM tabla1" Set TBL = BDD.OpenRecordset(SQL) TBL.MoveFirst Do Until TBL.EOF List1.AddItem TBL("nombre") & " " & TBL("apellido") & " tiene " & TBL("edad") TBL.MoveNext Loop En este caso unimos la tabla1 con la misma tabla1, por lo tanto todos los resultados son repetidos y se omiten. Veamos q pasa con ALL SQL = "SELECT * FROM tabla1 UNION ALL SELECT * FROM tabla1" Set TBL = BDD.OpenRecordset(SQL) TBL.MoveFirst Do Until TBL.EOF List1.AddItem TBL("nombre") & " " & TBL("apellido") & " tiene " & TBL("edad") TBL.MoveNext Loop

Otra vez todos los datos se repiten pero en este caso le decimos q no omita ninguno, por lo tanto cada valor de la tabla1 estar repetido dos veces. Hacer esto no tiene sentido, es decir q la union debera ser con la seleccin de dos tablas diferentes.

ORDER BY Para ordenar los resultados utilizamos ORDER BY. Cuando omitimos esta clusula, los resultados se ordenan por el primer campo que sea clave en el ndice que se haya utilizado. Veamos las siguientes sentencias: SQL = "SELECT * FROM tabla1 ORDER BY edad ASC" ' ordenado por edad en forma ascendente SQL = "SELECT * FROM tabla1 ORDER BY edad" ' ordenado por edad, por defecto lo ordena en forma ascendente SQL = "SELECT * FROM tabla1 ORDER BY edad DESC" ' ordenado por edad en forma descendente SQL = "SELECT * FROM tabla1 ORDER BY 1" 'ordenado por el primer campo de la tabla SQL = "SELECT nombre, apellido, edad FROM tabla1 ORDER BY 3,2,1" 'ordenado por edad, apellido y nombre Entonces podemos indicar el nombre_de_campo, nmero_de_campo y si es ASCendente o DESCendente.

CONSULTAS A MAS DE UNA TABLA Supongamos q tenemos una base de datos con dos tablas llamadas tabla1 y tabla2. Tabla1 tiene como campos nombre, apellido y edad. Mientras q la tabla2 tiene nombre y email.

Bien, por ejemplo yo podria querer los emails de las personas q estan en ambas tablas, esto es q el nombre de la tabla1 tiene q ser igual al nombre de la tabla2. Veamos como lo indicamos... SQL = "SELECT tabla1.nombre,email FROM tabla1,tabla2 WHERE tabla1.nombre=tabla2.nombre" Set TBL = BDD.OpenRecordset(SQL) TBL.MoveFirst Do Until TBL.EOF List1.AddItem TBL("nombre") & " " & TBL("email") TBL.MoveNext Loop Nuestra sentencia SQL quedo as: 1- Indicamos los campos a seleccionar (SELECT). Observar q el campo nombre aparece en las dos tablas, por lo tanto debemos indicar de q tabla los voy a seleccionar (tabla1.nombre). Por el contrario el campo email solo aparece en la tabla2, por lo tanto no hace falta indicarle de q tabla lo queremos ya q es obvio de cual va a ser. 2- Despues indicamos cuales tablas van a ser consultadas (FROM). Le indicamos q tabla1, tabla2. El orden es importante porq de cada registro de la primer tabla se efectua una busqueda en la segunda. 3- por ultimo indicamos la condicin (WHERE). Decimos q el campo nombre de la tabla1 debe ser igual al de la tabla2. Ahora vamos a ver el mismo ejemplo pero usando ALIAS. Un alias es un nombre temporal q le asignamos a una tabla. Por ejemplo a la tabla1 la podemos llamar t1 y a la tabla2 t2. De esta manera es mas facil escribir t1 q tabla1. SQL = "SELECT t1.nombre,email FROM tabla1 t1,tabla2 t2 WHERE t1.nombre=t2.nombre" En el FROM escribimos nombre_tabla alias_tabla. En el resto de la sentencia usamos el alias en vez de el nombre. Ahora, supongamos q tenemos una tercer tabla q contiene nombre y telefono como campos. Queremos consultar los campos nombre, email y telefonos. SQL = "SELECT t1.nombre,email,telefono FROM tabla1 t1,tabla2 t2, tabla3 t3 WHERE t1.nombre = t2.nombre AND t1.nombre = t3.nombre" Lo importante de estas consultas es el orden en q se escriben las tablas luego del FROM, ya q esto va a influir en la velocidad de la consulta. Para terminar la seccin de consultas vamos a ver las SELECT ANIDADAS. Esto es una SELECT dentro de otra. Es muy simple. Veamos un ejemplo.

SQL = "SELECT t1.nombre,email,telefono FROM tabla1 t1,tabla2 t2, tabla3 t3 WHERE t1.nombre = t2.nombre AND t1.nombre = t3.nombre AND (SELECT COUNT(*) FROM tabla1)< 100" Es la misma condicin anterior solo q se agrego una condicin mas: (SELECT COUNT(*) FROM tabla1)< 100, esto es, q la tabla1 tenga menos de 100 registros. Entonces cuando insertamos una nueva SELECT dentro de otra, debemos ponerla entre parentesis.

UNIDAD 5

DISEO DE MENS Y ELABORACIN DE REPORTES

5.1 DISEO DE UN MENU EL EDITOR DE MENUS El Men o Barra de Men es la segunda lnea de cualquier ventana Windows, donde pueden verse distintos nombres. La Barra de Men es un componente de un Formulario. La Barra de Men puede tener tantas palabras como se desee, y sobre cada palabra, puede desplegarse un Men desplegable con mas palabras. Sobre cada una de estas puede a su vez desplegarse otro conjunto de palabras, etc. con lo que se puede conseguir una cantidad de palabras tan grande como necesitemos.

Para cada palabra se produce el evento click. Cada palabra de la Barra de Men lleva anexo un nico procedimiento, que se ejecutar al hacer click sobre la palabra. Pero en las palabras que sirven para desplegar un men no tiene sentido que se ponga ningn cdigo en su procedimiento, ya que estn ah justamente para desplegar otras palabras. Ser en las palabras finales donde se colocar el cdigo correspondiente. En las figuras anteriores pueden verse tres formas distintas de ver el mismo Men. En la primera figura el Men est sin desplegar. En la segunda figura puede verse un rbol de Men largo, desplegado en su totalidad. En la tercera puede verse el Men desplegable de la palabra Archivo de la Barra de Men. Puede apreciarse en este men desplegable una lnea que separa las palabras Guardar Como y SALIR. Esta lnea separadora es muy prctica para separar dos temas distintos dentro de un Men desplegable. Tan distintos como las operaciones de Abrir y Guardar respecto a la ltima orden del men desplegable que es SALIR de la aplicacin. 5.1.1. PASOS PARA DESARROLLAR UN MENU Para crear un men debe usarse el Editor de Men, que se encuentra en la Barra de Men de VB en Herramientas | Editor de mens. Le aparecer el siguiente cuadro. (En principio vaco)

Cada palabra del men tiene su Caption (La palabra que aparece en el men), su Name (Nombre), y puede tener Index (si existen varias palabras con el mismo Name). Para introducir estas propiedades basta con teclearlas directamente en cada una de las casillas al efecto del cuadro del editor de mens. Para colocar el cursor de escritura en una u otra casilla, puede hacerse bien con el cursor del ratn, bien con el tabulador. Para pasar a la siguiente lnea de edicin (crear una nueva palabra), basta con pulsar ENTER. Existen otras propiedades aparte del Caption y Name que se introducen directamente en las casillas al efecto. HelpContextID Igual que esta propiedad en el resto de los controles, permite introducir un nmero de contexto para la ayuda de Windows. Enabled. Habilitado. Si se quita la marca de esa casilla, esa palabra aparecer por defecto deshabilitada. Esta propiedad puede leerse y cambiarse en tiempo de ejecucin, por lo que esta propiedad puede usarse para deshabilitar ciertas funciones de la aplicacin, dependiendo de la evolucin de la propia aplicacin. La presentacin en el men cuando est deshabilitada es con color plido. Visible. Como su nombre indica, que sea visible o no lo sea. Puede cambiarse en tiempo de ejecucin.

WindowList Indica si esa palabra es la que va a mostrar todos los formularios abiertos en una aplicacin de documentos mltiples (MDI). Al hacer click sobre esta palabra, se desplegar un submen con todos los Caption de los Formularios hijo abiertos en ese momento. Solamente puede existir una palabra en un men con esta propiedad activada. Esta propiedad no puede variarse en tiempo de ejecucin. Para cambiar una de estas propiedades en tiempo de ejecucin, basta con citar por su nombre a esa palabra (por su Name, no por su Caption), e igualar a True o False su valor :

nmuDocumentos.Visible = False El nombre usado para nombrar a una de las palabras del men puede ser cualquiera. Sin embargo es prudente usar un nombre que nos pueda identificar, por una parte, que ese nombre corresponde a una de las palabras del men, y por otra, a que palabra se refiere. La solucin puede ser cualquiera. El autor de estos apuntes propone poner las letras mnu (o menu - recomiendo no usar acentos e los Names de VB), seguido del Caption de esa palabra. Otras propiedades Shortcut Atajo. Esta propiedad admite varias combinaciones de teclas para acceder al procedimiento click de esa palabra sin necesidad de usar el ratn. Las combinaciones de teclas posibles se muestran haciendo click en la flecha hacia abajo que tiene esa casilla. Se desplegar una lista con todas ellas. Para elegir una de estas combinaciones, basta con hacer click sobre la lnea que la contiene. Esta combinacin de teclas aparecer en el men, al lado de la palabra (Vase figura siguiente, SALIR Ctrl + X) NegotiatePosition. Establece un valor que determina si los controles Menu de nivel superior se muestran en la barra de mens mientras un objeto vinculado o incrustado de un formulario est activo y mostrando sus mens. No est disponible en tiempo de ejecucin. Puede tener los valores 0 (Predeterminado) Ninguno. El men no se muestra en la barra de mens cuando el objeto est activo. 1 Izquierda. El men se muestra a la izquierda de la barra de mens cuando el objeto est activo. 2 Medio. El men se muestra en medio de la barra de mens cuando el objeto est activo. 3 Derecha. El men se muestra a la derecha de la barra de mens cuando el objeto est activo. El men editado con los datos de la figura anterior tendr esta forma en tiempo de ejecucin :

Observe que tiene cuatro palabras en la lnea superior, y que colgando de la primera aparece un men desplegable. Para conseguir un men desplegable fjese en la figura del Editor, en la parte de abajo donde estn todos los Caption de las palabras del men. Observar que algunas de ellas (&Edicion, Documentos, Ayuda - Hay otra que no se v, &Archivo) estn completamente a la izquierda de la ventana, y las dems estn separadas de la parte izquierda por unos guiones. Las palabras que estn completamente a la izquierda son las que figurarn en la barra de men de forma permanente. Las que estn separadas (tabuladas) corresponden a las que aparecern en los mens desplegables. Como es lgico, un men desplegable debe colgar de una palabra de las de la barra de men. La palabra de la que cuelga el submen es la palabra sin tabular inmediatamente anterior.

Para tabular las palabras, hay que hacer click en el botn en forma de flecha a la derecha que est sobre la ventana de edicin :

Situandonos sobre una de las lneas ya editadas, y haciendo click sobre el botn con flecha hacia la izquierda, quitamos la tabulacin. Los botones con flecha hacia arriba o abajo nos permiten variar el orden de las lneas ya editadas. Podemos hacer varios niveles de submens a base de introducir varias tabulaciones. Al comienzo de este captulo puede ver un ejemplo de ello. Quedan un par de cosas. Una de ellas es el carcter & que est delante de los Caption de Archivo y Edicin. Este carcter nos permite acceder al procedimiento click de esa palabra pulsando la tecla Alt + la tecla correspondiente a la letra que est detrs del carcter &. Justamente la letra que est subrayada en la palabra del men. El carcter & no tiene porqu ir precisamente al comienzo de la palabra. Puede ir en el medio de la palabra. De esta forma se subrayar una letra intermedia. Otra cosa. Puede verse en el men desplegado de la figura anterior una lnea entre Guardar Como y SALIR. Esta lnea, que solamente tiene efectos estticos, se logra introduciendo como Caption un guin ( - ). El editor de mens solamente le permite el guin en una palabra de men desplegable (Tabulada). No se olvide de poner el Name incluso para este guin. NOTA MUY IMPORTANTE Siempre se recomienda poner la orden de SALIR en la primera palabra de la barra de Men. Bien que esa primera palabra sea Salir o que est en el men desplegable de la primera palabra de la Barra de Men, en este ltimo caso, separada mediante una lnea separadora. (Vea The Windows Interface Guidelines for Software Design, pg.124) POPUP MENS Un PopUpMen o Men Emergente es un men que despliega en cualquier punto de un Formulario (MDI o normal) con varias opciones. Es normal en los procesadores de texto que se obtenga un men emergente pulsando el botn derecho del ratn, donde aparecen las tres palabras mgicas de Copiar, Cortar y Pegar. Para crear un men emergente o PopUpMenu es necesario tener en el men de ese formulario una palabra de la que se despliegue un submen con las mismas palabras que queremos que aparezcan en el PopUpMenu.

Por ejemplo, en el men que hemos editado como ejemplo anteriormente, exista una palabra Edicin, de la que se desplegaba el Submen Copiar, Cortar y Pegar. Si analizamos la edicin realizada, las palabras tenan el siguiente Caption y Name :

Caption Edicin Copiar Cortar Pegar

Name

Tabulada

mnuEdicion NO mnuCopiar SI mnuCortarSI mnuPegar SI

Recuerde que las palabras del men que estaban tabuladas son las que aparecan en el men desplegable. Esas mismas sern las que aparezcan en el PopUpMenu. Para ello utilizaremos el Mtodo PopupMenu. Este mtodo pesenta un men emergente en un objeto MDIForm o Form en la posicin actual del mouse o en las coordenadas especificadas. La sintaxis de este mtodo es la siguiente : NombreFormulario.PopupMenu nombremen, indics, x, y, negrita Donde NombreFormulario es el nombre del formulario donde presentamos el PopUpMenu. Puede omitirse. Nombremen. Este parmetro es requerido. Es el Name de la palabra del men de donde cuelga el men desplegable. La palabra del men a que se refiere Nombremen debe tener al menos un submen. Indics. Parmetro opcional. Un valor o constante que especifica la posicin y el comportamiento del men emergente, como se describe a continuacin : Constante (posicin) ValorDescripcin vbPopupMenuLeftAlign 0 (Predeterminado) El lado izquierdo del men se sita en x. vbPopupMenuCenterAlign 4 El men emergente se centra en x. vbPopupMenuRightAlign 8 El lado derecho del men se sita en x. Constante (comportamiento) ValorDescripcin vbPopupMenuLeftButton 0 (Predeterminado) Los elementos del men emergente slo reaccionan a los clic del mouse cuando se use el botn primario del mouse.

vbPopupMenuRightButton 2 Los elementos del men emergente reaccionan a los clic del mouse cuando se usen los botones primario o secundario. Para combinar la los valores de indics de posicin y comportamiento basta con sumar los valores. Nota El parmetro indics no tiene efecto en las aplicaciones que se ejecuten bajo Microsoft Windows versin 3.0 o anteriores. X, y Parmetro(s) opcionales que especifican las coordenadas x e y donde va a aparecer el men emergente. Si no se especifican, aparecer donde est el puntero del mouse. Las unidades de medida de las coordenadas x e y se definen mediante la propiedad ScaleMode. negrita. Parmetro opcional que especifica el nombre de un control men del men emergente para presentar su ttulo en negrita. Si se omite, ningn control del men aparece en negrita. Nota. Este argumento funciona solamente en las aplicaciones que se ejecuten bajo Windows 95. La aplicacin ignora este argumento cuando se ejecute bajo versiones de 16 bits de Windows o Windows NT 3.51 y anteriores. La forma mas habitual de presentar un men emergente es mediante el botn derecho del ratn. Concretamente en el editor Word que estoy utilizando para escribir estos apuntes ocurre cuando se levanta el botn derecho del ratn. Es decir, en el evento MouseUp, con la condicin de que Button=2. Imaginemos que queremos presentar en un men emergente las palabras Cortar, Copiar y Pegar del ejemplo anterior, que colgaban en el men de la palabra Edicin. (Vea mas atrs). Queremos tambin que la palabra Copiar salga resaltada en negrita. Iramos al procedimiento MouseUp del Formulario y escribiramos : Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu mnuEdicion, , , , mnuCopiar End If End Sub Observe que se ha omitido el nombre del Formulario (Opcional), el parmetro indics, y las coordenadas x e y (el men emergente aparecer donde est situado el cursor del ratn). Observe tambin que las comas separadoras de los parmetros hay que colocarlas. Cuando se presenta un men emergente, el cdigo que sigue a la llamada al mtodo PopupMenu no se ejecuta hasta que el usuario elige un comando del men (en cuyo caso se ejecuta antes el cdigo del procedimiento de evento Click) o cancela el men. Adems, slo puede presentarse un men emergente al mismo tiempo; por lo tanto, las llamadas a este mtodo se ignoran si el men emergente est presentado actualmente o si un men desplegable est abierto. Si queremos presentar un men emergente es necesario tener ese men en el men del formulario. El problema puede ser que no queramos que est en la barra de men. No es

problema. Ponga la propiedad Visible del elemento del men desde el que se va a desplegar el submen a False. No se ver ya en la barra de men ni esa palabra ni el submen que de ella se despliega. Eso s, las palabras del submen deben tener la propiedad Visible = True. Si les pone esa propiedad a False, no se vern en el men emergente. Puede aprovechar esta circunstancia para hacer mens emergentes con mas o menos elementos, segn las necesidades de su aplicacin. Tambin puede poner la propiedad Enabled a False si as lo precisa. No puede activar la propiedad WindowList en un elemento que forma parte de un men emergente.

5.1 CREAR REPORTES

Anda mungkin juga menyukai