Herramienta VBasic

192
7/23/2019 Herramienta VBasic http://slidepdf.com/reader/full/herramienta-vbasic 1/192  Prefacio Bienvenidos a Visual Basic 6.0; este texto presenta la mejor manera de aplicar Visual Basic al desarrollo de bases de datos. Durante mucho tiempo los usuarios han estado tratando con textos donde al finalizar su lectura no tienen las herramientas para desarrollar aplicaciones para bases de datos, lo cual viene a engrosar las filas de decepcionantes en lo que se refiere a textos. Con este texto usted aprenderá los conceptos necesarios para desarrollar aplicaciones para bases de datos; desde el primer capítulo se definen las pautas a seguir, y se va desarrollando un ejercicio , la Ficha de datos de los empleados de una empresa, que inicia con la captura de datos con sus diferentes conceptos de mantenimiento como ser agregar un registro a una tabla, así como la edición del mismo; eliminación de un registro y modificación de datos. Continúa con el concepto de consulta de datos, búsqueda de información en la tabla. Luego se entra al concepto de reportes, utilizando como herramienta de generación de reportes Cristal report 7.0. En los últimos capítulos se desarrolló un ejercicio complejo sobre tablas cuyo índice está compuesto por mas de un campo, como es la planilla de una empresa. El escritor de este texto, el Sr. Roger Pavón es un Analista de Sistemas de Informática desde hace un poco mas de veinte años; y con su amplia experiencia como programador y desarrollador de aplicaciones para bases de datos, pone a su disposición todos sus conocimientos para ayudarle en la fascinante tarea del desarrollo de sistemas. El Sr. Pavón es escritor de otros textos como Macromedia MX, SQL para programadores, Programación Estructurada y otros; en cada unos de sus diferentes textos encontrará el mismo principio: aprender desarrollando.  Al final de cada capítulo encontrará una serie de ejercicios que usted debe desarrollar para poder aplicar lo aprendido en el capítulo. Tiene usted en sus manos uno de los textos mas apreciados en el mercado por los desarrolladores de aplicaciones; son muchos los programadores en otras herramientas que han aprendido con este texto.  Agradecemos a todos aquellos que hicieron posible la publicación de este texto, en especial a Berenice,Diego y Anita, y a usted amable lector por tener esta obra en sus manos.

Transcript of Herramienta VBasic

Page 1: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 1/192

 

Prefacio

Bienvenidos a Visual Basic 6.0; este texto presenta la mejor manera de aplicar VisualBasic al desarrollo de bases de datos. Durante mucho tiempo los usuarios han estadotratando con textos donde al finalizar su lectura no tienen las herramientas paradesarrollar aplicaciones para bases de datos, lo cual viene a engrosar las filas dedecepcionantes en lo que se refiere a textos.

Con este texto usted aprenderá los conceptos necesarios para desarrollar aplicacionespara bases de datos; desde el primer capítulo se definen las pautas a seguir, y se vadesarrollando un ejercicio , la Ficha de datos de los empleados de una empresa, queinicia con la captura de datos con sus diferentes conceptos de mantenimiento como seragregar un registro a una tabla, así como la edición del mismo; eliminación de un registroy modificación de datos. Continúa con el concepto de consulta de datos, búsqueda deinformación en la tabla. Luego se entra al concepto de reportes, utilizando comoherramienta de generación de reportes Cristal report 7.0. En los últimos capítulos sedesarrolló un ejercicio complejo sobre tablas cuyo índice está compuesto por mas de uncampo, como es la planilla de una empresa. 

El escritor de este texto, el Sr. Roger Pavón es un Analista de Sistemas de Informáticadesde hace un poco mas de veinte años; y con su amplia experiencia como programadory desarrollador de aplicaciones para bases de datos, pone a su disposición todos susconocimientos para ayudarle en la fascinante tarea del desarrollo de sistemas.

El Sr. Pavón es escritor de otros textos como Macromedia MX, SQL para programadores,Programación Estructurada y otros; en cada unos de sus diferentes textos encontrará elmismo principio: aprender desarrollando.

 Al final de cada capítulo encontrará una serie de ejercicios que usted debe desarrollar

para poder aplicar lo aprendido en el capítulo. Tiene usted en sus manos uno de lostextos mas apreciados en el mercado por los desarrolladores de aplicaciones; sonmuchos los programadores en otras herramientas que han aprendido con este texto.

 Agradecemos a todos aquellos que hicieron posible la publicación de este texto, enespecial a Berenice,Diego y Anita, y a usted amable lector por tener esta obra en susmanos.

Page 2: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 2/192

 

INDICE

Capítulo No. 1 Introducción al Visual Basic 11. Generalidades del Visual Basic 12. Entrando al Visual Basic 13. Pantalla de trabajo de Visual Basic 14. Iniciando un nuevo proyecto 2

5. Partes de la Pantalla de Visual Basic 36. Controles y componentes 47. Guía de trabajo Capítulo No.1 6

Capítulo No. 2 Formularios 71. Qué es un formulario 72. Cómo agrandar el tamaño del formulario 73. Cómo correr y ejecutar un formulario 84. Salvar el formulario dentro de un proyecto nuevo 85. Propiedades 96. Creación de nuevos formularios en un proyecto 12

7. Cambiando de un formulario a otro 138. Eliminar un formulario 149. Guía de trabajo Capítulo No. 3 15

Capítulo No. 3 Tabbed Dialog 161. Cómo abrir un formulario 162. Qué es un Tabbed Dialog 163. Propiedades del Tabbed Dialog 184. Guía de trabajo Capítulo No. 3 20

Capítulo No. 4 Command Button 21

1. Qué es un Command Button 212. Propiedades del Command Button 223. Programando dentro de un botón 264. Imágenes para botones creados en programas gráficos 275. Guía de trabajo Capítulo No. 4 29

Capítulo No. 5 Label y Textbox 301. Qué es un label 302. Propiedades de los Label 303. Qué es un textbox 334. Propiedades de los textbox 33

5. Guía de trabajo Capítulo No. 5 37

Capítulo No. 6 Fechas, Barras de Estado y Eventos 401. Qué es un Maskededit 402. Propiedades del Maskededit 403. Qué es un Statusbar 414. Propiedades del Statusbar 425. Eventos 43

Page 3: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 3/192

  6. Evento Gotfocus 437. Evento keyprees 468. Efecto de iluminado – Sendkeys 479. Guía de trabajo Capítulo No. 6 48

Capítulo No. 7 Combobox, OptionButton y Checkbox 491. Combobox 492. Frame 523. OptionButton 53

4. Checkbox 555. Guía de trabajo Capítulo No. 7 57

Capítulo No. 8 ODBC 591. Qué es un ODBC 592. Creación de un ODBC 603. Referencias(Remote Data Object); DLL 644. Variables de conexión y Módulos 675. Guía de trabajo Capítulo No. 8 68

Capítulo No. 9 Lectura de Tabla de Datos 69

1. Lectura de una tabla (Instrucción Select) 692. Variables RdoResultset 713. Lectura de tablas usando Parámetros 724. Guía de trabajo Capítulo No. 9 76

Capítulo No. 10 Subrutinas, Inicializando datos y Agregar Registro 771. Crear Subrutinas (Private Sub) 772. Subrutina Inicializar datos 783. Programación Botón Cancelar 814. Programación Botón Agregar (Insert) 825. Instrucción Con.Committrans 86

6. Guía de trabajo Capítulo No. 10 87

Capítulo No. 11 Datos numéricos, programación de teclas y validaciónDe Datos 90

1. Casillas numéricas 902. Salto de una casilla a otra con la tecla enter 923. Validaciones 934. Datos numéricos no pueden grabarse en blanco (empty) 985. Validar la repetición del registro a grabarse 996. Guía de trabajo Capítulo No. 11 100

Capítulo No. 12 Edición de Datos, Eliminación y Modificación 1031. Edición de datos 1032. Eliminación de Registro 1073. Modificación de Registro 1094. Guía de trabajo Capítulo No. 12 111

Capítulo No. 13 Navegación en una Tabla de Datos 1121. Navegación 112

Page 4: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 4/192

  2. Primer Registro 1133. Ultimo Registro 1144. Registro anterior 1155. Registro siguiente 1166. Guía de trabajo Capítulo No. 13 118

Capítulo No. 14 Presentación de datos por columnas 1191. Consulta de datos 1192. Control VsFlexgrid 119

3. Control Remote Data Control 1204. Conexión entre el VsFlexgrid y el Remote Data Control 1215. Seleccionando un registro de la pantalla de consulta 1226. Títulos y Anchuras de columnas 1237. Guía de trabajo Capítulo No. 14 127

Capítulo No. 15 Pantallas de ayuda para enlace con tablas 1281. Creando un formulario de ayuda 1282. Guía de trabajo Capítulo No. 15 133

Capítulo No. 16 Manejo de Fotografía 134

1. Agregar un campo a la captura de datos 1342. Sistema Buscador de Fotografía 1363. Guía de trabajo Capítulo No.16 140

Capítulo No. 17 Mejorando la Consulta 1411. Busca de datos en la consulta 1412. Ordenar datos 1433. Interface entre Visual Basic y SQL 1444. Guía de trabajo Capítulo No. 17 146

Capítulo No. 18 Programa Menú 147

1. Programa Menú 1472. Hora dinámica en un menú 1483. Menu editor 1494. Comando Shell 1535. Guía de trabajo Capítulo No. 18 155

Capítulo No. 19 Cristal Report Parte I 1561. Qué es Cristal Report 1562. Generando nuestro primer reporte 1563. Guía de trabajo Capítulo No. 19 161

Capítulo No. 20 Cristal Report Parte II 1621. Cómo correr un reporte de Cristal Report desde Visual Basic 1622. Reporte con mas de una tabla 1633. Variables y cálculos 1654. Condiciones Simples 1675. Condiciones anidadas 1686. Guía de trabajo Capítulo No. 20 169

Page 5: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 5/192

Capítulo No. 21 Cristal Report parte III 1701. Subtotal y rupturas de control; reportes agrupados 1702. Reportes Totalizados 1723. Gráficas 1734. Guía de trabajo Capítulo No. 21 175

Capítulo No. 22 Cristal Report Parte IV 1761. InputBox 1762. Parámetros 177

3. Rangos de fecha 1794. Guía de trabajo Capítulo No. 22 180

Page 6: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 6/192

 

Capítulo 1

Introducción al Visual Basic 6.0

I. Objetivo General Conocer los conceptos básicos del Visual Basic; cómo es su presentación, la pantalla

de trabajo y sus secciones.

II. Objetivos específicosConocer de manera detallada las secciones de Visual Basic, y poder identificarlas diferentes componentes y controles que se ofrecen.

III. Contenido 1. Generalidades de Visual Basic2. Entrando a Visual Basic3. Pantalla de Trabajo de Visual Basic4. Iniciando un Nuevo Proyecto5. Partes de la Pantalla de Visual Basic

6. Controles y Componentes7. Guía de trabajo

1. Generalidades de Visual Basic

Visual Basic es una herramienta para desarrollo de aplicaciones en ambiente Windows.Pertenece a la familia de Microsoft, y es una de las herramientas de programación máspopulares en todo el mundo. Al igual que la mayoría de las herramientas visuales estáorientada a objetos y eventos, conceptos que serán explicados mas adelante. Visual Basicha experimentado cambios de versiones, mejorando algunos aspectos en cada una deellas; entre las versiones mas destacadas se encuentran la 4.0, 5.0, 6.0 y Net, que es la

mas reciente; en este texto estudiaremos la versión 6.0

VB, como lo llamaremos de aquí en adelante, tiene la ventaja de poder trabajar concualquier base de datos, entre las cuales mencionaremos: Acces(MS), Oracle, SQL Server(MS), SQL Base, Informix, Páradox, DB2 del AS-400, y otros. Lo anterior nos conduce aelegir VB como nuestra herramienta de desarrollo. En años anteriores, los programadoresdesarrollaban aplicaciones en lenguajes que quedaban amarrados a la plataforma demanejo de datos; si la institución cambiaba de plataforma de datos también tenía quecambiar de aplicación; con VB la institución puede iniciar manejando sus datos con unaplataforma no muy robusta o pequeña, como el caso de Access, y si mas adelante cambiaa una plataforma mas robusta como Oracle, siempre le sirve la misma aplicación de VB.

2. Entrando al Visual Basic

En cada computadora habrá una forma peculiar de hacerlo; dependiendo de la forma enque se ha instalado, así será de diferente la forma de entrar, pero en su mayoría será de lasiguiente forma:

Inicio (Windows) / Programas / Visual Studio 6.0 / Visual Basic 6.0

Page 7: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 7/192

 

3. Pantalla de trabajo de Visual Basic  Al entrar a Visual Basic le aparecerá la siguiente pantalla:

Figura 1.1

Haga clic en el botón Cancelar

4. Iniciando un Nuevo Proyecto

Para poder ver la pantalla de trabajo con todas sus secciones debemos decirle a VB queinicie un nuevo proyecto; note que en la parte superior de su pantalla hay un menú deopciones con las siguientes opciones: File, Edit, View, Project, Format, Debug, Run,Query, Diagram, Tools, Add-ins, Windows, Help 

Para crear un nuevo proyecto haga clic en la opción del menú que dice File; le apareceráotro menú del cual debe seleccionar la opción que dice Project; le aparecerá la siguientepantalla:

Figura 1.2

En esta pantalla le aparecen las diferentes opciones para crear un nuevo proyecto;tenemos una gran variedad, entre ellas Standard EXE, Actives EXE, Activex EXE, ActivesEXE Control, VB Application Wizard y otras. Cada una de ellas tiene su propia función ,pero la que usaremos en este texto como plataforma de trabajo será la opción o ícono que

Page 8: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 8/192

 

dice Standard EXE; debe asegurarse que esta opción este seleccionada; en casocontrario haga clic una vez sobre este ícono.

Estando seguro que se encuentra seleccionado Standard EXE, haga clic en el botón OK yle aparecerá la siguiente pantalla

Figura 1.3

 A partir de este momento usted está listo para desarrollar un sistema en VB; esto es lo quellamamos Pantalla de trabajo de VB o Formulario; esta es la parte donde se pegan todoslos objetos a utilizar en el diseño de un sistema; es nuestra plataforma de diseño.

5. Partes de la Pantalla de Visual Basic

La pantalla de VB tiene básicamente cuatro partes o secciones

a. Sección de Controles

Figura 1.4

Esta es la parte donde se encuentran los diferentes objetos que se pueden usar en undiseño; no son todos, mas adelante veremos cómo incluir en esta sección otros controles;la puede ver en la parte izquierda de su pantalla.

Para pegar un control en el formulario haga clic en cualquier control, luego haga clic encualquier parte del formulario y teniendo presionado el mouse haga un remarcado sobre elformulario, luego suelte el botón del mouse; intente pegar varios componentes; para borrarun componente del formulario, haga clic sobre el componente que desea borrar, y presionela tecla Supr o delete.

Page 9: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 9/192

 

b. Sección del menú de opciones

Figura 1.5Es la parte donde se encuentran las opciones del menú principal, así como los botones de

acceso rápido; se encuentra en la parte inferior de la pantalla. Esta sección como puedever tiene dos partes: la línea donde están las opciones del menú y la línea con losbotones de acceso rápido; un botón de acceso rápido tiene la misma función de unaopción del menú, solo que si ejecuta la tarea con el menú posiblemente hará mas de dospasos, mientras que con el botón de acceso rápido hará un solo paso. No todas lasopciones del menú tienen su botón de acceso rápido, solo las de mayor uso.

c. Sección del Explorador

Figura 1.6

Es la parte donde se encuentran los diferentes formularios de nuestro proyecto; estasección está usualmente por la derecha de su pantalla.

d. Sección de Atributos o Propiedades

Figura 1.7

Es la parte donde podemos elegir algunas propiedades que queremos dar a un

determinado control u objeto como ser color, altura, anchura, textura, etc. Usualmente seencuentra en la parte inferior derecha de su pantalla.

6. Controles y Componentes

Regresemos al concepto de Controles; los controles que se pueden ver en la sección decontroles no son todos los controles que se pueden utilizar en VB; de hecho no son todoslos que utilizaremos en este texto.

Page 10: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 10/192

 

Para incorporar otro control a la sección de controles haremos lo siguiente:

a. En la sección del menú de opciones haga clic en la opción Projectb. Le aparece un menú; haga clic en la opción Components y le aparecerá la

siguiente pantalla

Figura 1.8

c. Todos los controles de esta pantalla están ordenados en orden alfabético para quede esa manera sea mas fácil localizar el control sabiendo su nombre; con la flechasde dirección de su teclado usted puede desplazarse por esta pantalla; al ubicar elcontrol que desea incorporar a la sección de controles haremos clic en la casilla(cuadrito blanco) del control que queremos incorporar a la sección de controles; alhacer clic le aparece sobre la casilla un chequeo; puede seleccionar varios

controles si lo desea.d. Ya finalizado el proceso haga clic en el botón Aceptar .

Cada control incorporado puede generar una o varias figuras de objetos; haremos elsiguiente ejercicio: Incorpore a la sección de controles un control llamado: MicrosoftWindows Common Controls 5.0 (SP2)

Cuántas figuras de objetos le generó este nuevo Control? ______Cuál sería el proceso para quitar las figuras de objetos que generó la incorporación de unnuevo control?

Podemos quitar las figuras de un objeto de un nuevo control de la sección de controlessiempre y cuando no hayamos pegado una de estas figuras en el formulario. El procesosería el mismo que el que se hizo para incorporarlo con la diferencia de que en el inciso cdel proceso lo que debemos hacer es quitarle el chequeo de la casilla que se encuentra ala izquierda del nombre del control.

Page 11: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 11/192

 

Guía de trabajo Capítulo No. 1

1. Qué tipo de programa es Visual Basic

2. Qué versiones de Visual Basic se conocen

3. Qué ventaja le proporciona Visual Basic a los programadores

4. Cuáles son las partes de la pantalla de Visual Basic

5. Qué es la sección de controles

6. A qué se le llama botones de acceso rápido

7. Qué es el explorador de VB

8. El color, tamaño, textura son aspectos que se definen en qué sección

9. En qué partes de la sección de herramientas hay que hacer clic para ver la pantallaen dónde podemos seleccionar otros controles

Page 12: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 12/192

 

Capítulo 2

Formularios

I. Objetivo General 

Conocer la función de los Formularios

II. Objetivos específicosDiseñar formularios y conocer las propiedades de los mismos

III. Contenido 1.  Qué es un formulario2.  Cómo agrandar el tamaño de un formulario3.  Cómo correr o ejecutar un formulario4.  Salvar el formulario dentro de un proyecto nuevo5.  Propiedades6.  Creación de nuevos formularios en un proyecto7.  Cambiando de un formulario a otro8.  Eliminar un formulario

9.  Guía de trabajo

1. Qué es un formulario

Como se indicó en el capítulo 1, el formulario es donde se pegan los diferentes componentes ausar en nuestro diseño de pantalla. Al entrar a VB, y crear un proyecto nuevo, la imagen que leaparece es la del Formulario:

Figura 2.1 

Si tuviésemos que dar una descripción jerárquica al formulario, diríamos que es la unidad básica

de un proyecto; sin el formulario no es posible desarrollar nada en VB.

2. Como agrandar el tamaño del formulario

Note usted que tanto por debajo como a la derecha del formulario se ven unos puntos o cuadritosazules; haga clic en cualquiera de estos puntos, y teniendo presionado el botón del mousearrástrelo en la dirección deseada. Por favor agrande su formulario tanto hacia la derecha comohacia abajo, de tal manera que le quede en forma rectangular, mas ancho que alto.

Page 13: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 13/192

 

3. Cómo correr o ejecutar un formulario

Usted está en modalidad de diseño, y no de ejecución; para ejecutar un formulario tenemos dosopciones:

a. Correrlo sin compilar erroresPresione la tecla F5; esta modalidad ejecuta su formulario aun teniendo errores suprograma.

b. Correrlo compilando erroresPresione la tecla la combinación de las teclas Control (ctrl.) y F5; esta modalidad ejecutasu formulario, pero si existe un error en su programa, el proceso se trunca, y solo podrácorrerlo hasta que el programa esté limpio de errores.

En este curso, correremos nuestros formularios con la opción b, y en ningún momento lo haremoscon la opción a.

 Al correr su formulario para regresar a la modalidad de diseño, cierre su formulario en ejecución,haciendo clic en la x del encabezado de su formulario (parte superior derecha de su formulario)

4. Salvar el formulario dentro de un proyecto nuevo

Este es el mejor momento para crear nuestro proyecto nuevo; salvaremos nuestro formulariodentro de un proyecto nuevo; siga los siguientes pasos:

a. Haga clic en el menú en la opción Fileb. Le aparece otro menú; haga clic en la opción: Save project as (salvar proyecto como)c. Le aparecerá la siguiente pantalla:

Figura 2.2

Nuestro proyecto lo salvaremos en el subdirectorio Winsystem así que cambie de subdirectorio.

d. Primero nos dice que salvará el formulario; escriba el nombre del formulario: Frmempley si ya está simplemente déjelo así

e. Haga clic sobre el botón Guardar

f. Ahora le aparece una pantalla pidiendo el nombre del proyecto; escriba comonombre: Sistemag. Haga clic sobre el botón Guardarh. Si le aparecerá lo siguiente:

Page 14: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 14/192

 

Figura 2.3

Haga clic en el botón: No 

Este proceso tan largo se hace solo una vez; de aquí en adelante para salvar haga clic en lafigura de un diskette (ver parte superior)

5. Propiedades

Las propiedades del formulario están en la sección de las propiedades; a continuaciónconoceremos las diferentes propiedades que se aplican a los formulario, y su función; si nota laspropiedades en la sección de propiedades, verá las siguientes:

Figura 2.4

a. (Name)

Esta propiedad es para dar nombre al formulario; note que VB le asignó como nombre alformulario: Form1; usted puede cambiar este nombre en la propiedad (Name); a este formularioque estamos trabajando le daremos como nombre: Frmemple; este será el formulario para los

datos de empleados de la aplicación que desarrollaremos.

b. Backcolor

Esta propiedad sirve para darle color al formulario; dele al formulario un color amarillo, el masclaro que encuentre. Ubíquese en la propiedad Backcolor; por la derecha verá un combo o listamenú donde debe hacer clic; le aparecerá lo siguiente:

Page 15: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 15/192

 

Figura 2.5

Haga clic sobre la guía que dice Palette y le aparecerá la paleta de colores:

Figura 2.6

Elija un color amarillo, el amarillo mas suave que encuentre.

Corra su formulario (ctrl. – F5)

c. Propiedad moveable

Esta propiedad sirve para que el usuario pueda darle al formulario la característica de podersemover con el mouse o para quitarle tal característica; si usted corre su formulario podrá moverlohaciendo clic sobre el título del formulario y arrastrarlo en cualquier dirección.

Corra su formulario y compruebe lo anterior.

 Ahora ubíquese en la propiedad moveable y verá que está en True; True significa que elformulario tiene la característica de poder moverse; se recomienda que los formularios esténestáticos, así que entre al combo – lista menú y seleccione la opción False.

d. Propiedad Borderstyle

Esta propiedad sirve para habilitar o inhabilitar la condición de minimizar y maximizar el

formulario; al correr su formulario usted habrá notado que en el formulario por la esquina superiorderecha tiene lo siguiente:

Figura 2.7

Si usted hace clic sobre el guión, el formulario se minimiza; si usted hace clic sobre el rectángulo,

Page 16: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 16/192

 

el formulario se maximiza; en ambos casos implica movimiento y es lo que no queremos; paraquitar estas opciones al formulario vaya a la propiedad BorderStyle y haga clic sobre el combo  – lista menú; le aparecen varias opciones de las cuales usted debe seleccionar la que dice: FixedSingle.

e. Propiedades Heigth y Width

La propiedad Heigth es para darle la altura al formulario; queremos que todos los formulariostengan la siguiente altura: 7500.La propiedad Width es para darle la anchura al formulario; queremos que todos los formulariostengan la siguiente anchura: 11000

f. StartUpPosition

Esta propiedad nos servirá para centrar el formulario en la pantalla; ubíquese en esta propiedad yhaga clic sobre el combo – lista menú; le aparecerá varias opciones, y la que debe seleccionar esla No. 2 que dice: CenterScreen.  Corra su formulario

g. Propiedades Left y Top.

Estas propiedades sirven para ubicar el formulario en cierta posición de la pantalla; sucede que aveces no queremos centrar un formulario, sino ubicarlo en un determinado punto, para el caso, enla esquina inferior derecha; cambiemos los valores de estas propiedades de tal manera queconsigamos nuestro objetivo de ubicarlo en la esquina inferior derecha; en la propiedad Leftescriba el Nº 1000 y en la propiedad top escriba también el Nº 1000

Corra su formularioDespués de probar las propiedades anteriores, centre su formulario en la pantalla

h. Propiedad Caption

Esta Propiedad sirve para escribir el título que queramos al formulario; VB escribe como título delformulario: Form1; vaya a esta propiedad y en lugar de Form1 escriba: Mantenimiento TablaDatos de Empleado

i. Propiedad Picture

Esta propiedad sirve para pegar una imagen en el formulario como fondo del mismo; vaya a estapropiedad y haga clic en el botón que le aparece por la derecha; le aparece lo siguiente:

Figura 2.8

Page 17: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 17/192

 

Debe seleccionar el subdirectorio donde se encuentra la figura que va a pegar en elformulario; ubíquese en el subdirectorio: C:\winsystem\imágenes; usted encontrará variosarchivos de imágenes; haga doble clic sobre el archivo: imagen1.

Corra su formulario

Son casos muy especiales donde pegaremos una imagen en el formulario, casos quemiraremos mas adelante; ahora queremos que quite la imagen del formulario; en lamisma propiedad Picture encontrará la palabra Bitmap; haga doble clic sobre esta palabray luego presione la tecla Delete.

 j. Propiedad Icon

Esta propiedad sirve para pegar en el encabezado del formulario una figura como ícono; VB le daya un ícono, que es el siguiente:

Vamos a cambiar este ícono que propone VB por otra mas llamativa; vaya a esta propiedad yhaga clic en el botón que le aparece por la derecha; le aparece lo siguiente:

Figura 2.9

Debe seleccionar el subdirectorio donde se encuentra la figura que va a pegar en elformulario; ubíquese en el subdirectorio: C:\winsystem\imágenes; usted encontrará variosarchivos de imágenes; haga doble clic sobre el archivo: icono

Corra su formulario

Por ahora estas serán todas las propiedades del formulario que veremos en este capítulo.

6. Creación de nuevos formularios en un proyecto

Una de las actividades que el programador de visual Basic tendrá que realizar es crear nuevosformularios, ya que no es posible hacer toda una aplicación en un solo formulario; una aplicacióncompleta llevará entre 20 a 30 formularios como mínimo, y en otras aplicaciones se podríaduplicar este número. Para crear un nuevo formulario debe hacer clic en el menú en la opción:Project y le aparecerá el siguiente menú:

Page 18: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 18/192

 

Figura 2.10

De este nuevo menú debe seleccionar la opción: Add Form y le aparecerá la siguiente pantalla:

Figura 2.11

En esta pantalla ya le aparece seleccionada la opción: Form; haga clic sobre el botón Abrir .

De nuevo regresamos al formulario que de inicio nos presentó VB. Ahora bien, note lo que pasaráahora: corra su formulario.

Si bien es cierto que en pantalla tiene el nuevo formulario, el que corrió VB fue el anterior; esto sedebe al hecho de que hay una manera de indicarle a VB qué formulario debe correr.

7. Cambiando de un formulario a otro

Usted tiene dos formularios en este momento: frmemple y el formulario nuevo; para indicar a VBqué formulario debe correr debe hacer lo siguiente: haga clic en el menú en la opción: Project y enel menú que le aparezca seleccione la opción: Project 1 Properties y le aparecerá lo siguiente:

Figura 2.12 

Page 19: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 19/192

 

Note que en el combo – lista menú, ya le aparece el nombre del formulario Frmemple; entre a estalista y seleccione el formulario nuevo; inmediatamente después haga clic en el botón Aceptar(OK).

Corra su formulario

Note que ahora se corre el formulario que tiene en pantalla; usted siempre debe tener en pantalla

el formulario de desea correr; haga los pasos necesarios para correr el formulario frmemple.

 Ahora tenemos el inconveniente de que se corre el formulario que no tenemos en pantalla; en lasección del explorer de VB haga doble clic sobre el formulario Frmemple.

8. Eliminar un formulario

Eliminaremos el formulario nuevo; en el explorer haga clic sobre el formulario nuevo; presione elclic derecho del mouse y le aparecerá lo siguiente:

Figura 2.13

Haga clic sobre la opción Remove Form2 

Corra su formulario

Page 20: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 20/192

 

Guía de trabajo Capítulo No. 2

1. Qué es un formulario

2. Cómo debemos correr un formulario

3. Indique qué propiedad del formulario hace cada uno de los siguientes enunciados:

Nombre ___________________________________

Color _____________________________________

Que se pueda mover o no _____________________

Que se pueda minimizar o maximizar ____________

 Altura _____________________________________

 Anchura___________________________________

Centrar____________________________________

Escribir un título_____________________________

Cambiar ícono______________________________

Poner una imagen como fondo_________________

4. Haga un nuevo formulario que se llamará Frmcli con las mismas características delformulario Frmemple

Caption= Mantenimento Tabla Datos de Clientes

5. Haga un nuevo formulario que se llamará Frmart con las mismas características delformulario Frmemple

Caption= Mantenimento Tabla Datos de Artículos

6. Haga un nuevo formulario que se llamará Frmfac con las mismas características delformulario Frmemple

Caption= Mantenimento Tabla Datos de Facturas

Page 21: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 21/192

 

Capítulo 3

Tabbed Dialog

I. Objetivo General Conocer la función de los Tabbed dialog

II. Objetivos específicosDiseñar en los formularios los Tabbed dialog necesarios y conocer sus propiedades

III. Contenido 1. Cómo abrir un proyecto2. Qué es un Tabbed dialog

3. Propiedades de un Tabbed dialog

1. Cómo abrir un proyecto

Lo primero que haremos será abrir el proyecto llamado sistema, el cual se inició en Capítulo Nº1;los pasos para abrir un proyecto son los siguientes:

a. Haga clic en el menú en la opción Fileb. Le aparece otro menú; haga clic en la opción: Open projectc. Le aparecerá la siguiente pantalla

Figura 3.1

Debe ubicarse en el subdirectorio winsystem, que es donde salvó el proyecto Sistema; cuando seubique en el subdirectorio winsystem, haga clic en el archivo Sistema. Vbp.

d. Haga clic en el botón Abrir

2. Qué es un Tabbed dialog

Un tabbed dialog es un control que nos ayuda a aprovechar el espacio del formulario, pues en elmismo espacio del formulario puedo crear dos o mas pantallas para trabajar; en cualquieraplicación de Windows se estila usar este tipo de control; para que lo podamos identificarvayamos a una parte del Visual Basic donde se usa este control; haga clic en el menú en la opciónProject, y luego en la opción Project Properties; le aparecerá esta pantalla:

Page 22: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 22/192

 

Figura 3.2

Si usted hace clic en las diferentes guías o tabuladores (General, Make, Compile, Component,debugging), notará que le aparecen distintas pantallas en el mismo espacio, sin tener que cambiarde pantalla. En cada pantalla de cada guía o tabulador hay diferentes cosas o actividades que sepueden hacer; este mismo control podemos utilizar en nuestro diseño de nuestra aplicación.

El control Tabbed dialog no se encuentra disponible en la sección de controles, así que hay queinsertarlo; en el capítulo 1 aprendimos cómo insertar un nuevo control a la sección de controles,así que bastará con pedirle que inserte un nuevo control llamado: Microsoft Tabbed DialogControl 6.0. (ver capítulo 1 página 4).

Si hizo correctamente el proceso de la inserción del control Microsoft Tabbed Dialog Control6.0, debe aparecerle en la sección de controles la siguiente figura:

Note que el nombre para este control es SStab; Pegue un SStab en el formulario y hágalo tangrande que cubra casi todo el espacio del formulario, dejando un espacio por la derecha, y otropor debajo. Debe quedarle de la siguiente manera:

Figura 3.3

Page 23: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 23/192

 

3. Propiedades de un Tabbed dialog

Las propiedades del Tabbed dialog están en la sección de las propiedades; a continuaciónconoceremos las diferentes propiedades que se aplican a los Tabbed dialog; debe tener elcuidado de tener seleccionado el tabbed dialog, o de lo contrario estará viendo en la sección depropiedades las propiedades del formulario; siempre que trabajemos una propiedad haga clicsobre el tabbed dialog para asegurarse que está trabajando con él.

a) Propiedad (Name)

Esta propiedad es para asignarle nombre al Sstab; note que VB le asignó como nombre al SStabes Sstab1; usted puede cambiar este nombre en la propiedad (Name); a este SStab que estamostrabajando le daremos como nombre: Tabla; de aquí en adelante haremos referencia a estecomponente en nuestro diseño con el nombre: Tabla.

b) Propiedades Tabs y TabsPerRow

Estas propiedades son para indicar el No. de guías o tabuladores; note que en estas propiedadesestá el No. 3; en nuestra aplicación solo necesitamos dos guías o tabuladores, así que en estas

dos propiedades escriba el no. 2

c) Propiedad Style

Esta propiedad indica el estilo de las guías o tabuladores; VB ya nos da un estilo, y es el detabuladores grandes; pero este no es el estilo de Windows; mas bien el estilo de Windows sontabuladores pequeños; si usted hace doble clic en esta propiedad notará cómo se cambia de unestilo a otro; dejemos el estilo convencional de Windows. Cambiando el estilo de los tabuladoresdeben verse así:

d) Propiedad Caption

Esta propiedad es para asignarle un determinado texto a cada tabulador; note que el primertabulador tiene como texto: Tab 0 y el segundo Tab1; para cambiar texto a un tabulador primerodebe hacer clic sobre él, y luego ir a la propiedad Caption y escribir el texto que se desea. Hagaque los tabuladores tengan lo siguientes textos:

Primer tabulador: Datos Generales Segundo tabulador: Consulta 

 Al cambiar los textos de los tabuladores deben verse de la siguiente manera:

Page 24: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 24/192

 

e) Propiedad Backcolor

Esta propiedad es para cambiar el color de la parte del Sstab que contiene tabuladores (ver partesuperior); no es posible cambiar el color del Sstab; usted siempre lo tendrá de color gris; seacostumbra a dejar el color de la parte que no tiene guías o tabuladores del mismo color que elformulario; vaya a la propiedad backcolor y asigne el mismo color del formulario, el amarillo massuave que encuentre; la forma de manejar este color es igual que la forma que lo hizo en el

capítulo 2 cuando le cambió color al formulario ( ver capítulo 2 página 9). Al cambiar color debeverse de la siguiente manera:

Corra su formulario

Debe verse de la siguiente manera:

Figura 3.4

Page 25: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 25/192

 

Guía de trabajo Capítulo No. 3

1. Qué es un Tabbed dialog

2. Cuál es el nombre que VB le asigna a un Tabbed dialog cuando se pega en el formulario

3. Indique qué propiedad del Tabbed dialog hace cada uno de los siguientes enunciados:

Nombre _______________________________________

Color _________________________________________

El No. de guías o tabuladores______________________

Textos o rótulos a las guías o tabuladores ____________

4. Pegue un Tabbed dialog en el formulario Frmcli con las mismas características del tabbeddialog del formulario Frmemple

5. Pegue un Tabbed dialog en el formulario Frmart con las mismas características del tabbeddialog del formulario Frmemple

6. Pegue un Tabbed dialog en el formulario Frmfac con las mismas características del tabbeddialog del formulario Frmemple

Page 26: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 26/192

 

Capítulo 4

Command Button

I. Objetivo General Conocer la función de los Command Button

II. Objetivos específicosDiseñar en los formularios los Botones necesarios y conocer laspropiedades del Command Button

III. Contenido1. Qué es un Command Button2. Propiedades de los Command Button3. Programando dentro de un botón

4. Imágenes para botónes creadas en programas gráficos

1. Qué es un Command Button

En toda aplicación en ambiente Visual (Windows) se requieren de objetos llamadosbotones que llaman procedimientos o ejecutan acciones como salvar información,imprimir, eliminar datos, etc. En Visual Basic los botones se hace con el control CommandButton y puede identificarlo por la siguiente figura en la sección de controles:

 Antes le pedimos que amplíe por la derecha el espacio entre el Tabbed Dialog y elformulario, de tal manera que le quede así.

Page 27: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 27/192

 

 Ahora pegue un Command Button en la parte superior del espacio dejado por la derecha:

2. Propiedades de los Command Button

a. Propiedad Name

Esta propiedad sirve para dar nombre al botón; Vaya a la propiedad Name, y escriba:Salvar

b. Propiedad Caption

Esta propiedad sirve para escribir un texto en el botón; Vaya a la propiedad caption, yescriba: Salvar; debe quedarle así:

c. Propiedad Style

Esta propiedad sirve para indicar el estilo del botón; vaya a esta propiedad y entre al

combo que le aparece:

Usted notará que le aparecen dos opciones:

Si usted selecciona Graphical podrá por medio de la propiedad Picture asignar unaimagen al botón.Si usted selecciona Standard no podrá asignar ninguna imagen al botón.

Le pedimos que seleccione Graphical 

Usted no notará ningún cambio, el efecto se mira hasta que asignamos una imagen con lapropiedad picture.

Page 28: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 28/192

 

c. Propiedad Picture

Esta propiedad sirve para pegar una imagen en un botón; no tiene caso trabajar estapropiedad si en la propiedad Style no se seleccionó Graphical; vaya a esta propiedad yhaga clic en el botón que le aparece en la propiedad:

Le aparece la siguiente pantalla:

En esta pantalla usted debe buscar la imagen que desea pegar en el botón; en la parte superiorde esta pantalla (Buscar en), usted debe entrar al combo y ubicarse en el subdirectorio donde seencuentran las imágenes; las imágenes que necesitamos se encuentran en el subdirectorioC:\Winsystem\imagenes.

 Al ubicarse en el subdirectorio de imágenes usted verá en pantalla las imágenes quepuede seleccionar:

Page 29: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 29/192

 

En nuestro caso seleccionaremos la imagen: Grabar; haga clic sobre esta imagen y luego hagaclic sobre el botón Abrir (ver parte inferior derecha de la pantalla).

El botón debe quedarle así:

d. Propiedad Tooltiptext

Esta propiedad sirve para asignar al botón un texto de etiqueta; al correr la aplicación,esta etiqueta se mostrará al sobreponer el puntero del mouse sobre el botón sin tener quehacer clic.

Vaya a esta propiedad y escriba lo siguiente: Agregar registro 

 Al correr su aplicación y sobreponer el puntero del mouse sobre el botón notará losiguiente:

EJERCICIO

Haga lo siguientes botones:1.-Name: ModificarCaption: ModificarStyle: GraphicalPicture: GrabarTooltiptext: Modificar registro

2.-Name: CancelarCaption: CancelarStyle: GraphicalPicture: CancelarTooltiptext: Cancelar operación

Page 30: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 30/192

 

3.-Name: EliminarCaption: EliminarStyle: GraphicalPicture: EliminarTooltiptext: Eliminar registro

4.-Name: SalirseCaption: SalirseStyle: GraphicalPicture: SalirseTooltiptext: Salirse de esta pantalla

 Al finalizar debe tener los botones de esta manera

e. Propiedad Enabled

Esta propiedad sirve para habilitar o inhabilitar un botón; al ir a esta propiedad ustedpuede entrar al combo que le aparece y verá dos opciones:

Page 31: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 31/192

 

Si selecciona True, el botón queda habilitadoSi selecciona False, el botón queda inhabilitado

Si inhabilita un botón el efecto lo verá solo al correr su aplicación; en nuestro ejercicio losbotones Modificar y Eliminar deben aparecer de entrada inhabilitados; inhabilite estos dosbotones; al correr su aplicación verá los botones inhabilitados de la siguiente manera:

El resto de propiedades del command button se verán en la medida que se usen, lo cualserá en capítulos siguientes

3. Programando dentro de un botón

La idea de hacer botones es que al hacer clic en ellos se ejecute una determinada acción;en tal caso es necesario crear líneas de programación (líneas de código); para el casovamos a programar que al hacer clic en el botón salir; el programa haga una salida; lospasos serian los siguientes:

1. Ubíquese en el botón salirse2. Haga doble clic3. Debe aparecerle lo siguiente

Esto es lo que se llama subrutina; la subrutina inicia con la palabra Private y terminacon las palabras: End Sub; en el espacio que hay entre el inicio y fin de la subrutina seescriben las líneas de programación que serán ejecutadas:

Como lo que queremos es hacer una salida, utilizaremos la frase: Unload me

Esta frase significa: Salirse del formulario donde actualmente me encuentro 4. Escriba: Unload me5. Sálgase de esta pantalla

Page 32: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 32/192

 

Nota: para salirse de la pantalla de código, presione el clic derecho del mouse y leaparecerá la siguiente pantalla:

Seleccione la opción: Hide 

Corra su formulario; sálgase de su aplicación presionando el botón Salirse 

4. Imágenes para botón creadas en programas gráficos

Existe una forma de manejar imágenes en un botón diferente al procedimiento usadohasta este momento, y es crear sus propias imágenes en un programa de manejo de

imágenes como Photoshop, Fireworks, u otros; en este caso no se escribe el texto en lapropiedad Caption, sino que se diseña como parte de la imagen; para trabajar de estamanera usted tiene que conocer uno de estos programas para tratar imágenes; en elsubdirectorio de imágenes usted encontrará las siguientes imágenes:

Imagen-agregarImagen-modificarImagen-CancelarImagen-EliminarImagen-Salirse

Si para cada botón hubiese usado estas imágenes, se vería su aplicación de la siguientemanera:

Page 33: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 33/192

 

Este procedimiento es mas atractivo desde el punto de vista que podemos hacer maspersonalizado nuestro sistema.

Page 34: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 34/192

 

Guía de trabajo Capítulo No. 4

1. Qué es un Command Button

2. Indique qué hacen las siguientes propiedades del command button:

Name

Caption

Style

Picture

Enabled

3. Haga en el formulario Frmcli los mismos botones que hizo en el formulario Frmemple

4. Haga en el formulario Frmart los mismos botones que hizo en el formulario Frmemple

5. Haga en el formulario Frmfac los mismos botones que hizo en el formulario Frmemple

Page 35: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 35/192

 

Capítulo 5

Label y Textbox

I. Objetivo General Conocer la función de los Label y Textbox

II. Objetivos específicosDiseñar en los formularios los Label y Textbox necesarios y conocer laspropiedades

III. Contenido1. Qué es un Label2. Propiedades de los Label3. Qué es un textbox

4. Propiedades de los textbox

1. Qué es un Label

Sirve para hacer etiquetas o simular contenedores de controles; puede identificar estecontrol porque su dibujo es una letra A

En nuestro caso los label o etiquetas las haremos sobre el tabbed dialog (tabla); pegue un

Label en la pantalla, exactamente en la parte superior del tabbed dialog, de la siguientemanera:

2. Propiedades de los Label

a. Propiedad Name

Esta propiedad sirve para dar nombre al label; Vaya a la propiedad Name, y encontraráque el nombre asignado por visual Basic es: Label1; los nombres de

Page 36: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 36/192

 

los label no serán cambiados, al menos ese es el criterio en nuestro curso; pero ustedpuede asignarle un nombre como a cualquier otro objeto.

b. Propiedad Caption

Esta propiedad sirve para cambiar el texto del label; Vaya a la propiedad caption, y

escriba: Código del empleado; debe quedarle así:

c. Propiedad Borderstyle

Esta propiedad sirve para darle al label una apariencia de hundimiento; vaya a lapropiedad borderstyle; entre al combo que le aparece y verá dos opciones:

Si selecciona None el label queda en forma planaSi selecciona Fixed Single el label queda en apariencia hundida, de la siguiente manera:

En nuestro caso lo dejaremos con la opción None.

d. Propiedad Font

Esta propiedad sirve para dar al texto características especiales como tipo de letra,tamaño, negrita y otros. Vaya a la propiedad Font, y haga clic en el botón que seencuentra en la línea de esta propiedad:

Page 37: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 37/192

 

Le aparecerá la siguiente pantalla:

Después de indicar las características que le desea dar al texto debe presionar el botónaceptar. Esta opción de la propiedad Font la usaremos cuando manejemos títulos u otrostextos; por ahora dejaremos los textos sin ninguna característica que nos proporciona estapantalla, excepto el label: Código del empleado; dele a este label la característica de letranegrita.

Ejercicio

Haga las siguientes etiquetas; recuerde que no debe cambiar el nombre de la etiquetaque es asignado por Visual Basic:

-  Nombre del Empleado

-  Dirección

-  Fecha de Ingreso

-  Sueldo Mensual

-  Teléfono

-  Estado Civil (1,2,3,4,5)

-  Sexo (F,M)

-  Departamento

-  Sucursal

-  Sindicato

Page 38: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 38/192

 

 Al terminar su ejercicio y correr su aplicación debe verse de la siguiente manera:

3. Qué es un Textbox

Sirve para hacer casillas de entrada de datos; puede identificar este control porque sudibujo es el siguiente:

Los textbox se harán a la par de cada label o etiqueta, siempre sobre el tabbed dialog(tabla); pegue un textbox en la pantalla, exactamente a la par de la etiqueta: Código delempleado, de la siguiente manera:

4. Propiedades de los Textbox

a. Propiedad Name

Page 39: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 39/192

 

Esta propiedad sirve para dar nombre al textbox; vaya a la propiedad Name, y encontraráque el nombre asignado por visual Basic es: Text1; los nombres de los textbox queusaremos serán los mismos que tiene en la tabla de datos de nuestra base de datos, lacual conoceremos en capítulos siguientes; agregaremos al nombre las letras TXT; eltexbox para el código del empleado le llamaremos: TXTCODIGO.

b. Propiedad Text

Esta propiedad sirve para asignar al textbox un rótulo previo; en nuestro caso los textboxirán en blanco; vaya a la propiedad Text y borre el rótulo o palabra que encuentre:

Corra su aplicación e ingrese datos a la casilla del código del empleado; si ya lo hizousted notará que necesitamos de una propiedad que nos permita limitar el No. decaracteres a ingresar.

c. Propiedad Maxlen

Esta propiedad sirve para indicar el No. caracteres permitidos en un textbox; vaya a lapropiedad Maxlen y encontrará que tiene el No. 0, lo cual indica que no tiene límite decaracteres; usted escriba el No. 10 (esta es la longitud del campo nombre en la tablaEmpleados)

Corra su aplicación y trate de ingresar al código del empleado mas de 10 caracteres:

d. Propiedad Appearance

Esta propiedad sirve para indicar el tipo de casilla (plana o 3D); vaya a esta propiedad yentre al combo lista y le aparece lo siguiente:

Si selecciona 0 – Flat tendrá una casilla plana

Si selecciona 1 – 3D tendrá una casilla en 3D

Seleccione 0 – Flat y corra su aplicación; note la diferencia:

Page 40: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 40/192

 

En el medio informático es bastante común cualquiera de los dos estilos, así que ledejamos a usted decidir en qué estilo desea trabajar; solo queremos pedirle que en estecurso use una sola forma de hacer las casillas.

e. Propiedad Tabindex

Esta propiedad sirve para indicar el orden de posicionamiento del cursor al correr laaplicación; al correr la aplicación queremos que el cursor aparezca en la casillaTXTCODIGO; vaya a esta propiedad y escriba el No. 0, lo cual hará lo que queremos;corra su aplicación y notará que el cursor aparece en primer lugar en la casillaTXTCODIGO.

f. Propiedad Alignment

Esta propiedad sirve para indicar el alineamiento en la casilla; vaya a esta y entre alcombo que le aparece y tendrá las siguientes opciones:

0 – Alineamiento a la izquierda1 –  Alineamiento a la derecha2 – Centrado

Nota: los datos de tipo numérico deben alinearse a la derecha

EJERCICIO

Para cada etiqueta menos Fecha, haremos los siguientes texbox:

PropiedadNombre del Empleado: Nombre: TXTNOMBRE

Maxlen 40Tabindex 1

Dirección Nombre TXTDIRECCIONMaxlen 150Tabindex 2

Sueldo Mensual Nombre TXTSUELDO

Maxlen 10Tabindex 3

Telefono Nombre TXTTELEFONOMaxlen 20Tabindex 4

Estado civil Nombre TXTESTADOCIVILMaxlen 1Tabindex 5

Page 41: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 41/192

 

Sexo Nombre TXTSEXOMaxlen 1Tabindex 6

Departamento Nombre TXTDEPARTAMENTOMaxlen 2Tabindex 7

Sucursal Nombre TXTSUCURSALMaxlen 2Tabindex 8

Sindicato Nombre TXTSINDICATOMaxlen 1Tabindex 9

En cada nuevo textbox la propiedad Text debe ir en blancoEn el textbox TXTSUELDO debe trabajarse la propiedad Alignment e indicar alineamientoa la derecha por ser un dato numérico.

 Al terminar el ejercicio, su pantalla debe verse de la siguiente manera:

El resto de propiedades del control textbox se verán a medida avancemos en lossiguientes capítulos.

Page 42: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 42/192

 

Guía de trabajo Capítulo No. 5

1. Qué es un Label

2. Indique qué hacen las siguientes propiedades del command button:

Name

Caption

BorderStyle

Font

3. Qué es un Textbox

4. Indique qué hacen las siguientes propiedades del command button:

Name

Text

Maxlen

 Appearance

Tabindex

 Alignment

5. Haga en el formulario Frmcli los siguientes label:

Código del clienteNombre del clienteContactoDirecciónFechaCrédito MáximoTipo de clienteTeléfonoPaga impuesto S/NVendedorCategoría

 Area

6. Para los label del inciso 5 haga los siguientes textbox: (N)= numérico 

Name Maxlen TabindexCódigo del cliente TXTCODCLI 10 0Nombre del cliente TXTNOMCLI 50 1Contacto TXTCONTACTO 50 2

Page 43: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 43/192

 

Dirección TXTDIRECCION 150 3FechaCrédito Máximo TXTCREDITOMAX 10 5 (N)Tipo de cliente TXTTIPOCLIENTE 1 6Teléfono TXTTELEFONO 20 7Paga impuesto S/N TXTPAGAIMPUESTO 1 8Vendedor TXTVENDEDOR 10 9

Categoría TXTCATEGORIA 1 10 Area TXTAREA 1 11

7. Haga en el formulario Frmart los siguientes label:

Código del ArtículoNombre del ArtículoFechaExistenciaMáximoMínimoPrecio Unitario

Costo UnitarioPaga impuesto S/NLíneaUnidadTipo de productoTipo de proveedor

8. Para los label del inciso 7 haga los siguientes textbox: (N)= numérico 

Name Maxlen TabindexCódigo del Artículo TXTCODIGO 10 0Nombre del Artículo TXTNOMBRE 100 1

FechaExistencia TXTEXISTENCIA 10 3 (N)Máximo TXTMAXIMO 10 4 (N)Mínimo TXTMINIMO 10 5 (N)Precio Unitario TXTPRECIO 10 6 (N)Costo Unitario TXTCOSTO 10 7 (N)Paga impuesto S/N TXTPAGAIMPUESTOP 1 8 (N)Línea TXTLINEA 4 9Unidad TXTUNIDAD 4 10Tipo de producto TXTTIPOPRODUCTO 1 11Tipo de proveedor TXTTIPOPROVEEDOR 1 12

9. Haga en el formulario Frmfac los siguientes label:

No. FacturaFechaClienteVendedorSucursalTipo de Factura

Page 44: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 44/192

 

Paga Impuesto S/NSubtotalDescuentoImpuestoTotalPlazoTarjeta de crédito

10. Para los label del inciso 9 haga los siguientes textbox: (N)= numérico 

Name Maxlen TabindexNo. Factura TXTFACTURA 10 0FechaCliente TXTCLIENTE 10 2Vendedor TXTVENDEDOR 10 3Sucursal TXTSUCURSAL 2 4Tipo de Factura TXTTIPOFACTURA 2 5Paga Impuesto S/N TXTPAGAIMPUESTO 1 6Subtotal TXTSUBTOTAL 10 7 (N)

Descuento TXTDESCUENTO 10 8 (N)Impuesto TXTIMPUESTO 10 9 (N)Total TXTTOTALNETO 10 10 (N)Plazo TXTPLAZO 10 11 (N)Tarjeta de crédito TXTTARJETACREDITO 1 12

Page 45: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 45/192

 

Capítulo 6

Fechas, Barras de Estado y Eventos

I. Objetivo General Conocer la función de los Masked edit, Statusbar y Eventos

II. Objetivos específicosDiseñar en los formularios los Masked edit para las casillas de fechas,las barras de estado necesarios y conocer las propiedades de ambosasí como iniciar el estudio del concepto de eventos.

III. Contenido1. Qué es un Masked edit2. Propiedades de los Masked edit3. Qué es un Statuslbar4. Propiedades de los Statusbar5. Eventos6. Evento Gotfocus7. Evento Keyprees8. Efecto de iluminado - Sendkeys

1. Qué es un Masked edit

Este control sirve para manejar casillas con determinado formato; en nuestro caso lousaremos para manejar las fechas. No está disponible en la sección de controles por lotanto es necesario integrarlo a la sección de controles: haga los pasos pertinentes paraintegrar el componente Microsoft Masked edit Control 6.0 

 Al estar este control en la sección de controles usted lo puede reconocer por la siguientefigura:

Pegue un masket Edit a la par del label: fecha de ingreso

2. Propiedades del Masked edit

a. Propiedad Name

Esta propiedad sirve para dar nombre al Masked edit; vaya a la propiedad Name, yescriba como nombre: TXTFECHAINGRESO

Page 46: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 46/192

 

b. Propiedad Mask

Esta propiedad sirve para dar un formato a la casilla; como se trata de una fecha ledaremos un formato de fecha larga; vaya a esta propiedad y escriba lo siguiente: ##/##/#### (no hay espacios intercalados). Al escribir el formato presione la tecla enter; lacasilla debe verse así:

 Al correr su aplicación debe verse de esta manera:

c. Propiedad Heigth

Esta propiedad sirve para dar una anchura determinada a la casilla; si usted nota la casillade la fecha de ingreso no tiene la misma anchura que las otras casillas; para dejar lamisma anchura a la casilla Fecha de ingreso, vaya a la propiedad Height de cualquier otra

casilla y anote el No. que encuentre, y ese mismo No. introdúzcalo en la propiedad Heightde la casilla Fecha de inghreso.

3. Qué es un Statusbar

Este control sirve para crear barras de estado. En toda aplicación para Windows se tienebarras de estado para indicar mensajes, la hora, la fecha y otros. Este control no estádisponible en la sección de controles por lo tanto es necesario integrarlo a la sección decontroles: haga los pasos pertinentes para integrar el componente Microsoft Windowscommon controls 6.0; este componente genera varias figuras y entre ellas está elStatusbar; usted puede reconocerlo por la siguiente figura:

Pegue un Statusbar en la parte inferior de su formulario (no sobre el tabbed dialog); bastacon que haga un pequeño remarcado y automáticamente cubre a lo largo del formulario;al correr su aplicación debe quedarle así:

Page 47: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 47/192

 

4. Propiedades del Statusbar

a. Propiedad Name

Esta propiedad sirve para dar nombre al Statusbar; vaya a la propiedad Name, y escribacomo nombre: BARRAESTADO

Un statusbar está compuesto por paneles (divisiones de la barra de estado);automáticamente le aparece un solo panel, pero usted puede agregar mas paneles; en lalección donde el tema sea el menú principal de la aplicación se necesitará agregar mas deun panel; por ahora solo necesitamos uno; ya que usaremos un solo panel, queremos queel panel cubra el ancho de la barra de estado; para ampliar el ancho del panel haga clic

derecho sobre el statusbar y le aparecerá la siguiente pantalla:

Haga clic en la opción Properties; le aparecerá esta otra pantalla:

Haga clic en la guía o tabulador: Panels; cambiará a esta pantalla:

Page 48: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 48/192

 

Cambie el valor 1440.00 por 11500.00, luego presione el botón Aceptar .

Su statusbar debe verse así:

Nota: si todavía el panel no cubre el ancho de su status bar, repita el procedimientoanterior y en vez de 11500, pruebe con un valor mayor.

5. Eventos

Son rutinas especificas de programación, las cuales se ejecutan cuando se da ciertasituación:

Tipos de eventos

Tenemos los siguientes eventos:

Gotfocus: Se activa cuando el cursor se posiciona en un objetoLostfocus: Se activa cuando el cursor abandona un objetoChange: Se activa en el momento que se esta tecleando sobre el objeto cuando esterecibe datosClick: Se activa en el momento que se hace clic sobre el objetoDblclick: Se activa en el momento que se hace doble clic sobre el objeto

No todos los objetos tienen los mismos eventos, pero en su mayoría tienen mas menos el

60% los mismos ventos.

6. Evento GotFocus

Se activa cuando el cursor se posiciona en un objeto; necesitamos de este evento paralograr nuestro siguiente objetivo: queremos que cada vez que el cursor salta a una casillaaparezca un mensaje específico en la barra de estado.

Page 49: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 49/192

 

Ejercicio:  queremos que cuando el cursor esté en la casilla TXTCODIGO (Código delempleado) aparezca en la barra de estado el siguiente mensaje:

Código del empleado: teclee 10 caracteres como máximo

Siga los siguientes pasos:

a. Haga doble clic sobre la casilla Código del empleado; le aparecerá la siguientepantalla:

El evento que le aparece es el evento Change; pero el evento que necesitamos es elevento GotFocus; para cambiar de evento abra el combo que tiene la palabra Change:(ver parte superior derecha)

 Al abrir el combo le aparece una lista con los diferentes eventos:

Haga clic en la opción que dice: Gotfocus; le aparecerá lo siguiente:

b. Escriba lo siguiente:

BARRAESTADO.PANELS(1).TEXT=” Código del empleado: teclee 10 caracteres como máximo” 

Page 50: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 50/192

 

Esta instrucción lo que hace es poner el rótulo:  Código del empleado: teclee 10caracteres como máximo, en la propiedad text del primer panel del statusbar llamadoBARRAESTADO.

Sálgase de esta pantalla y corra su aplicación; al estar el cursor en la casilla Código delempleado, la barra de estado mostrará lo siguiente:

Ejercicio: queremos que cuando el cursor esté en la casilla TXTNOMBRE (Nombre delempleado) aparezca en la barra de estado el siguiente mensaje:

Nombre del empleado: teclee 40 caracteres como máximo; primero nombres, luegoapellidos

Siga los siguientes pasos:

a. Haga doble clic sobre la casilla Nombre del empleado del empleado; leaparecerá la siguiente pantalla:

El evento que le aparece es el evento Change; pero el evento que necesitamos es elevento GotFocus; para cambiar de evento abra el combo que tiene la palabra Change:

(ver parte superior derecha)

 Al abrir el combo le aparece una lista con los diferentes eventos:

Haga clic en la opción que dice: Gotfocus; le aparecerá lo siguiente:

Page 51: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 51/192

 

b. Escriba lo siguiente:

BARRAESTADO.PANELS(1).TEXT=” Nombre del empleado: teclee 40 caracteres como máximo; primeronombres, luego apellidos” 

Esta instrucción lo que hace es poner el rótulo:   Nombre del empleado: teclee 40caracteres como máximo; primero nombres, luego apellidos, en la propiedad text delprimer panel del statusbar llamado BARRAESTADO.

Sálgase de esta pantalla y corra su aplicación; al estar el cursor en la casilla Nombre delempleado, la barra de estado mostrará lo siguiente:

Nota: Haga para cada textbox o casilla de datos un mensaje en el evento Gotfocus; ustedelija qué mensaje desea escribir.

7. Evento Keyprees

Se activa cuando se teclea cualquier carácter en la casilla de datos (textbox); necesitamosde este evento para lograr nuestro siguiente objetivo: queremos que en ninguna casilla seacepte el apóstrofe o comillas simples ni las comillas dobles; esto es porque ambos soncaracteres reservados de Visual Basic.

Ejercicio:  queremos que la casilla TXTCODIGO (código del empleado no permita elapóstrofe o comillas simples ni las comillas dobles.

Siga los siguientes pasos:

a. Abra el evento Keyprees de la casilla Código del empleado; le aparecerá la siguientepantalla:

b. Escriba lo siguiente:

If Keyascii = 39 or Keyascii = 34 thenKeyascii = 0

End If

Page 52: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 52/192

 

Note que son tres líneas de programación:

39 es el carácter ascii para el apóstrofe o comilla simple („) 34 es el carácter ascii para la comilla doble (“) 

Keyascii = 0 lo que hace es inhabilitar el teclado; esto se hace cuando el carácter ascii

detectado es 39 (apóstrofe) o 34 (comilla doble)

Nota:  Este mismo bloque de programación de tres líneas debe escribirse en todos loseventos keyprees de todas las casillas.

8. Efecto de iluminado

Es cuando en una casilla se tiene datos y queremos que al posicionarnos en ella los datostengan el efecto de iluminado; en toda aplicación para Windows las casillas de datostienen este efecto; note lo siguiente:

Note que el dato del código del empleado tiene el efecto de iluminado; este efecto es muyimportante pues de querer eliminar el dato bastaría con presionar la tecla Delete; o siqueremos cambiar el dato bastaría con escribir sobre el dato iluminado.

Para conseguir nuestro objetivo debemos trabajar en el evento GotFocus; abra el eventogotfocus de cada casilla, y agregue la siguiente línea:

SendKeys “{Home}+{End}” 

Cuando abra el evento gotfocus ya encontrará una línea de código; puede escribir lanueva línea de código antes o después de la que encuentre.

Page 53: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 53/192

 

Guía de trabajo Capítulo No. 6

1.-Aplique al formulario FRMCLI los siguientes aspectos:

-  Fecha: TXTFECHA – Masked edit-  Haga la barra de estado y escriba un mensaje para cada casilla de datos (evento

gotfocus)-  Programe el evento keypress para evitar teclear el carácter apostrofe y las comillas

dobles-  Para cada casilla de datos programe el efecto de iluminado para cada casilla de

datos (evento gotfocus)

2.-Aplique al formulario FRMARTIC los siguientes aspectos:

-  Fecha: TXTFECHA – Masked edit-  Haga la barra de estado y escriba un mensaje para cada casilla de datos (evento

gotfocus)-  Programe el evento keypress para evitar teclear el carácter apostrofe y las comillas

dobles-  Para cada casilla de datos programe el efecto de iluminado para cada casilla de

datos (evento gotfocus)

3.-Aplique al formulario FRMFAC los siguientes aspectos:

-  Fecha: TXTFECHA – Masked edit-  Haga la barra de estado y escriba un mensaje para cada casilla de datos (evento

gotfocus)

-  Programe el evento keypress para evitar teclear el carácter apostrofe y las comillasdobles

-  Para cada casilla de datos programe el efecto de iluminado para cada casilla dedatos (evento gotfocus)

Page 54: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 54/192

 

Capítulo 7

Combobox, OptionButton y Checkbox

I. Objetivo General Conocer la función de los ComboBox, OptionButton y CheckBox

II. Objetivos específicosDiseñar en los formularios los combobox, Optionbox y Checkboxnecesarios y conocer sus propiedades

III. Contenido1. ComboBox2. Frame3. OptionButton4. CheckBox

En este Capítulo manejaremos el concepto visual en el diseño de pantallas o formularios.Como siempre, trabajaremos con el formulario FRMEMPLE.

1. ComboBox

Este control sirve para hacer una lista de selección; puede reconocerlo en la sección decontroles por la siguiente figura:

En nuestro caso, usaremos un combobox para el estado civil de la persona. Pegue uncombobox a la par del textbox TXTESTADOCIVIL; debe quedarle así:

Trataremos las siguientes propiedades:

Name: COMBOESTADOCIVIL

Style 2-DROPDOWN

La propiedad Style con el valor 2  – DropDown es para que los elementos de la lista delcombo no puedan modificarse ni borrarse.

Lista de elementos en un combobox 

Page 55: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 55/192

 

Para introducir elementos dentro de combo hacemos los siguientes pasos:

-  Vaya a la propiedad List

-  Entre al combo que nos aparece

-  Al entrar al combo nos aparece un pequeño recuadro en blanco

-  Escriba lo siguiente: Soltero-  Presione la tecla enter

-  Repita el procedimiento para introducir los siguientes elementos a la lista:CasadoDivorciadoViudoOtro

Corra su formulario

 Ahora programaremos que al seleccionar un item del combo, la selección aparezcareflejada en el textbox TXTESTADOCIVIL, es decir si seleccionamos Soltero, debeaparecer un 1, si seleccionamos Casado, debe aparecer un 2 y así sucesivamente.

Entre al evento clic del combo (COMBOESTADOCIVIL) y escriba lo siguiente:

Select case COMBOESTADOCIVIL.listindexCase 0

Txtestadocivil= “1” Case 1

Txtestadocivil= “2” Case 2

Txtestadocivil= “3” Case 3

Txtestadocivil= “4” Case 4

Txtestadocivil= “5” End Select

Page 56: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 56/192

 

En este momento cabe explicar cómo se manejan los item en un combobox; Listindexindica el elemento de la lista, y el primer elemento de la lista corresponde al listindex = 0;esto indica que nuestros item tienen la siguiente asignación:

Listindex = 0 SolteroListindex = 1 Casado

Listindex = 2

 DivorciadoListindex = 3 ViudoListindex = 4 Otro

Corra su formulario y seleccione cualquier estado civil

 Ahora haremos la operación inversa; cuando se introduzca el numero 1 en la casillaTXTESTADOCIVIL debe aparecer el elemento Soltero en el combo; si introduce elnumero 2 en la casilla TXTESTADOCIVIL debe aparecer el elemento Casado en elcombo, y así sucesivamente con los demás elementos

Entre al evento Change de TXTESTADOCIVIL y escriba lo siguiente:

Select Case TXTESTADOCIVILCase 1

Comboestadocivil.ListIndex = 0Case 2

Comboestadocivil.ListIndex = 1Case 3

Comboestadocivil.ListIndex = 2Case 4

Comboestadocivil.ListIndex = 3Case 5

Comboestadocivil.ListIndex = 4End Select

 Ahora queremos que oculte la casilla TXTESTADOCIVIL, ya que el usuario debe teneracceso solo al combo. Para ocultar un textbox vaya a la propiedad visible del textbox(TXTESTADOCIVIL) y cambie el valor a False. Finalmente deje el combo al ladoizquierdo y el texbox al lado derecho, así:

Cuando la codificación de los elementos de lista no son numéricos

En nuestro ejercicio la codificación del estado civil se maneja numérico, pero podríamanejarse por letras, de la siguiente manera:

Page 57: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 57/192

 

Soltero = SCasado = CDivorciado = DViudo = VOtro = O

La estructura de la programación de los eventos no cambia, pero hay una pequeñadiferencia.

La programación del evento clic del combo sería la siguiente:

Select case COMBOESTADOCIVIL.listindexCase 0

Txtestadocivil= “S” Case 1

Txtestadocivil= “C” Case 2

Txtestadocivil= “D” Case 3

Txtestadocivil= “V” Case 4

Txtestadocivil= “O” End Select

La programación del evento change del textbox sería la siguiente:

Select Case ucase(TXTESTADOCIVIL)Case “S” 

Comboestadocivil.ListIndex = 0

Case “C” Comboestadocivil.ListIndex = 1

Case “D” Comboestadocivil.ListIndex = 2

Case “V” Comboestadocivil.ListIndex = 3

Case “O” Comboestadocivil.ListIndex = 4

End Select

Note el agregado de la función Ucase; esta función convierte a mayúscula; si se introduce

la S en minúscula (s) se convierte a Mayúscula, pues la comparación se hace contra la Smayúscula (Case “S”)

2. Frame

Este control sirve para crear marcos que a la vez contendrán otros objetos; usualmente seusan para enmarcar objetos llamados OptionButton; puede reconocer el frame por lasiguiente figura:

Page 58: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 58/192

 

Pegue un frame a la par del textbox TXTSEXO.

Para este control solo manejaremos una propiedad; vaya a la propiedad Caption y borre lapalabra que encuentre; en otros casos lo que haremos será cambiar la palabra que se

encuentre; finalmente debe quedarle de la siguiente manera:

3. Optionbutton 

Este control sirve para manejar una lista de opciones visibles; a veces queremos que elusuario pueda ver las diferentes opciones de las cuales dispone, y en tal caso elcombobox no nos ayuda; en nuestro caso el dato del sexo será manejado con estecontrol, el cual puede reconocer en la sección de controles por la siguiente figura:

Pegue un optionbutton a la par del textbox TXTSEXO, dentro del frame; debe quedarleasí:

Trabajaremos las siguientes propiedades:

Name OPCIONMCaption Masculino

Pegue otro optionbuttom a la par del option que ya está puesto; debe quedarle así:

Trabajaremos las siguientes propiedades:

Name OPCIONFCaption Femenino

Finalmente debe quedarle así:

Page 59: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 59/192

 

 Ahora programaremos que si hacemos clic en Masculino, debe aparecer una M(mayúscula) en la casilla TXTSEXO.

Entre el evento clic de OPCIONM y escriba lo siguiente:

Select Case Opcionm.ValueCase Is=true

Txtsexo= “M” End Select

De igual manera programaremos que si hacemos clic en Femenino, debe aparecer una F(mayúscula) en la casilla TXTSEXO. Entre al evento clic de OPCIONF y escriba losiguiente:

Select Case OpcionF.ValueCase Is=True

Txtsexo= “F” End Select

Corra su formulario y juegue seleccionando uno y otro

Note usted que los OptionButton son excluyentes entre ellos (Si uno está activo el otroestará inactivo)

 Ahora haremos la operación inversa; cuando se introduzca la letra M en la casilla

TXTSEXO debe aparecer seleccionado Masculino, y cuando se introduzca la letra F en lacasilla TXTSEXO, debe aparecer seleccionado Femenino.

Entre al evento Change de TXTSEXO y escriba lo siguiente:

Select Case UCASE(TXTSEXO)CASE “M” 

OPCIONM.VALUE=TRUECase “F” 

OPCIONF.VALUE=TRUEEnd Select

 Ahora queremos que oculte la casilla TXTSEXO, ya que el usuario debe tener acceso soloa los optionbuttom. Para ocultar un textbox vaya a la propiedad visible y cambie el valor aFalse. Finalmente deje los optionbutton al lado izquierdo y el textbox al lado derecho, así:

Page 60: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 60/192

 

4. Checkbox

Este control sirve para hacer una caja de chequeo; puede reconocerlo en la sección de

controles por la siguiente figura:

Lo utilizaremos para aquellos casos cuando la respuesta sea SI o NO; en nuestro caso lousaremos para Sindicato S/N.

Pegue un checkbox a la par del textbox TXTSINDICATO; debe quedarle así:

Trabajaremos las siguientes propiedades:

Name CHSINDICATOCaption Dejarlo en Blanco

 Ahora programaremos que si hacemos clic en el checkbox y lo dejamos con la marca dechequeo, debe aparecer una S (mayúscula) en la casilla de TXTSINDICATO; o si lodejamos sin la marca de chequeo, debe aparecer una N (mayúscula) en la casillaTXTSINDICATO. Entre al evento clic de CHSINDICATO y escriba lo siguiente:

Select Case CHSINDICATO.ValueCase 1

Txtsindicato= “S” Case 0

Txtsindicato= “N” End Select

Corra su formulario y juegue quitando y poniendo el chequeo

 Ahora haremos la operación inversa, cuando se introduzca la letra S en la casilla

TXTSINDICATO debe aparecer la marca de chequeo y cuando se introduzca la letra N enla casilla TXTSINDICATO debe quitarse la marca de chequeo.

Entre al evento Change de TXTSINDICATO y escriba lo siguiente:

Page 61: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 61/192

 

Select Case UCASE(TXTSINDICATO)Case “S” 

CHSINDICATO.VALUE=1Case “N” 

CHSINDICATO.VALUE=0End Select

Corra su formulario y haga las pruebas para comprobar nuestro objetivo

Page 62: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 62/192

 

Guía de trabajo Capítulo No. 7

1. Aplique al formulario FRMCLI los siguientes aspectos

a. El Control Checkbox para: Paga Impuesto S/Nel checkbox debe llamarse: CHPAGAIMPUESTO

b. El Control OptionButton para: Tipo de cliente

Las opciones a manejar son las siguientes:

1 = Mayorista ==> OpcionM2 = Detallista ==> OpcionD

c. El Control combobox para: Categoría

La lista del combobox son las siguientes:

 A = ExcelenteB = PromedioC = Malo

El combobox debe llamarse combocategoria

d. El Control combobox para: Area

La lista del combobox son las siguientes:

1 = Norte2 = Centro3 = Sur

El combobox debe llamarse comboarea

2. Aplique al formulario FRMART los siguientes aspectos

a. El Control Checkbox para: Paga Impuesto S/Nel checkbox debe llamarse: CHPAGAIMPUESTO

b. El Control OptionButton para: Tipo de Proveedor

Las opciones a manejar son las siguientes:

N = Nacional ==> OpcionNE = Extranjero ==> OpcionE

Page 63: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 63/192

 

c. El Control combobox para: Tipo de producto

La lista del combobox son las siguientes:

1 = Con vencimiento

2 = Sin Vencimiento

El combobox debe llamarse combotipoproducto

3. Aplique al formulario FRMFAC los siguientes aspectos

a. El Control Checkbox para: Paga Impuesto S/Nel checkbox debe llamarse: CHPAGAIMPUESTO

b. El Control OptionButton para: Tipo de Factura

Las opciones a manejar son las siguientes:

CR = Credito ==> OpcionCRCO = Contado ==> OpcionCO

c. El Control combobox para: Tarjeta de credito

La lista del combobox son las siguientes:

1 = Credomatic2 = Avalcard

El combobox debe llamarse combotarjetacredito

Page 64: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 64/192

 

Capítulo 8

ODBC

I. Objetivo General Conocer el concepto de ODBC

II. Objetivos específicosCrear la conexión ODBC y conectar los programas de nuestra aplicación conuna base de datos

III. Contenido1. Qué es un ODBC2. Creación de un ODBC3. Referencias (Remote Data Object); DLL4. Variables de Conexión y Módulos5. Conexión a una base de datos

1. Qué es un ODBC

Un ODBC es la conexión a una base de datos; su nombre tiene el siguiente significado:

O ObjectD DataB BaseC Conexión

Objeto de Conexión de Base de Datos

Un ODBC debe compararse con un traductor; el OBDC se conecta a la base de datos ynuestro programa se conecta al ODBC; funciona como el siguiente diagrama:

 Aplicación ODBC Base de Datos

Nunca nuestros programas se conectan con la base de datos, siempre lo hace por mediodel ODBC.

Esto tiene la gran ventaja de que el mismo programa (Visual Basic) puede trabajar concualquier base de datos si se tiene el ODBC adecuado; existe un ODBC distinto paracada base de datos (Oracle, SQL Server, DB2 AS 400, Access, etc.)

Page 65: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 65/192

 

Cada base de datos tiene una instalación para el Servidor y otra para los clientes(computadoras conectadas al servidor); cuando se instala la base de datos en el cliente,se instala el ODBC de esa base de datos por si queremos usar un programa paraconectarse a la base de datos.

La programación que se haga en Visual Basic debe ser una programación con

instrucciones de SQL para que pueda trabajar en cualquier base de datos.

En nuestro caso nuestra base de datos en la que trabajaremos se encuentra en Access, yel ODBC de Access se instala desde que se instala en la computadora cualquier versiónde Windows.

Debe tener bien claro que el concepto moderno de conexión es ODBC; los enlaces deinternet a bases de datos se hacen por medio de ODBC.

2. Creación de un ODBC

Crearemos un ODBC para Access al que llamaremos Sistema el cual se conectará a unabase de datos llamada también Sistema que se encuentra en el subdirectorio Winsystem.El nombre del ODBC no tiene que ser igual al nombre de la Base de Datos.

Para una mejor comprensión acerca de la creación de un ODBC enumeraremos lospasos:

a. Haga clic en Inicio (Windows)b. Seleccione: Configuración c. Seleccione Panel de Control d. Busque una línea o ícono que tenga la siguiente frase:

Fuente de Datos ODBC y haga doble clic sobre este ícono

Nota: debe saber que si usted tiene un Windows 2000 profesional o XP,Habrá un paso antes del inciso d; debe entrar a una opción que dice:

Herramientas de Administración

Después de hacer doble clic sobre el ícono que dice Fuente de ODBC (ODBC DataSources), le aparecerá la siguiente pantalla:

Page 66: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 66/192

 

Figura 8.1 

e. Debe presionar el botón Add (Agregar) para crear un ODBC; le aparecerá lasiguiente pantalla

Figura 8.2

Page 67: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 67/192

 

Note usted todos los tipos de ODBC que puede crear; el ODBC que crearemos es un ODBC de Access, así que haga doble clic en la línea que dice: Microsoft Access Driver.

Le aparecerá la siguiente pantalla:

Figura 8.3

En esta pantalla tenemos dos casillas a las que introduciremos datos:

Data Source Name (Nombre del ODBC): escriba SistemaDescripción: esta casilla puede dejarla en blanco si desea, y no afecta; pero escriba losiguiente: ODBC para una aplicación en Visual Basic 

En esta misma pantalla presione el botón Select (seleccionar); esto es para seleccionar labase de datos con la que conectaremos nuestro ODBC; debe aparecerle la siguientepantalla:

Figura 8.4 

Page 68: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 68/192

 

En el cuadro de diálogo de la derecha ubíquese en el subdirectorio: c:\Winsystem;automáticamente le aparece en el cuadro de diálogo de la izquierda la base de datos:Sistema

Figura 8.5

 Ahora debe hacer dos cosas:

-  Haga clic sobre la base de datos para que quede seleccionada (no doble clic)-  Presione el botón OK

Figura 8.6 

Note que se regresa a la pantalla anterior, pero ya puede ver la base de datos con laquedará conectada nuestro ODBC.

 A partir de este momento presione cualquier botón que diga: OK o Aceptar  

Nota: para crear un ODBC para otra base de datos algunos pasos cambiarán; cuando letoque trabajar con otra base de datos debe investigar los pasos para crear el ODBC,aunque debe saber que en una empresa grande donde se usa una base de datos robusta,la creación dl ODBC no le corresponde al programador sino al DBA (Administrador delsistema).

Page 69: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 69/192

 

3. Referencias (Remote Data Object); DLL

Existen en Visual Basic unos archivos llamados DLL, que sirven para poder realizar ennuestra aplicación determinadas tareas; por ejemplo, si queremos conectarnos a unODBC, necesitamos agregar a nuestro programa un archivo DLL llamado MicrosoftRemote Data Object.

Este archivo no se encuentra entre los componentes sino en la sección de referencias; elprocedimiento para incorporar este archivo DLL es el siguiente:

a. En la sección del Menú de Visual Basic (ver parte superior) ingrese a la opción:Project

b. Le aparece un submenú: ingrese a la opción References; le aparecerá lasiguiente pantalla:

Figura 8.7 

En esta lista se encuentran todos los DLL de los que podemos disponer; busque en lalista el archivo: Microsoft Remote Data Object 2.0; al encontrarlo márquelo paraselección de la misma manera que selecciona un componente; luego presione el botónOk.

Lo que hemos activado, realmente es un tipo de conexión a un ODBC llamado RDO.Existen otros dos tipos de conexión (DAO y ADO) pero son de menor efectividad.

4. Variables de Conexión y Módulos

Una vez incorporado el DLL para trabajar con ODBC es necesario crear un par devariables con las cuales haremos nuestra conexión. Para crear las variables de conexióndebemos crear un módulo.

Page 70: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 70/192

 

Qué es un módulo

Es un archivo donde se crean las variables que serán usadas por la aplicación desdecualquier formulario (Globales).

En este punto debemos explicar el concepto de variables globales; las variables globalesa diferencia de la variables locales, pueden ser usadas desde cualquier punto de laaplicación; mientras que las variables locales (creadas en cada formulario) solo puedenser usadas en el formulario donde son creadas.

Cómo crear un Módulo

a. En el menú principal ingrese a Projectb. Ingrese a la opción Add Module (Agregar módulo); le aparecerá la siguiente

pantalla:

Figura 8.8 

c. Presione el botón Abrir (open) y le aparecerá una pantalla en blanco; ya en estemomento el módulo ha sido creado.

Para salirse de esta pantalla en blanco presione clic derecho y del menú que le apareceseleccione Hide. 

Si usted nota, en la sección del explorer ya le aparece el módulo con el nombre: Module1

Page 71: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 71/192

 

Ya creado el módulo entramos a él (presione doble clic sobre el nombre del módulo: Module1)

Le aparece de nuevo la pantalla en blanco; escriba lo siguiente:

Option explicitPublic Env As rdoenvironmentPublic Con As rdoConnection

 Al escribir las instrucciones sálgase del módulo.

Explicaremos cada instrucción:

- Option Explicit

Esta instrucción le indica al visual Basic que cada vez que se desee crear una variable,sea definida con solo asignarle un valor. Para el caso si no usamos option Explicit, paracrear una variable numérica entera llamada Var1, tendríamos que hacer lo siguiente:

Dim Var1 as integer

Var1 = 0

 Al usar Option Explicit basta con escribir:

Var1 = 0

- Public Env As rdoenvironment

El nombre Env puede ser otro; esta variable nos ayuda a manejar los periféricos delsistema (dispositivos de lectura y otros). Es una variable para manejar el medio ambiente(del sistema)

- Public Con As rdoConnection

El nombre Con puede ser otro; esta variable nos ayuda a manejar la conexión con elODBC por medio de los periféricos que son controlados por la variable Env.

Page 72: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 72/192

 

5. Conexión a una base de datos

Después de crear las variables de conexión debemos hacer la conexión con la base dedatos; por ahora la conexión la haremos en el evento Load del formulario.

Evento Load del formulario

Si lo comparamos con la programación tradicional diríamos que es el inicio del programa;cuando se corre un formulario, lo primero que se ejecuta es lo que se encuentra en elevento Load del formulario.

Para entrar a este evento Load del formulario haga doble clic sobre un punto cualquieradel formulario (no sobre el Tabbed dialog u otro objeto); le aparece el siguiente bloque:

Escriba las siguientes instrucciones:

Set Env = rdoEnvironments(0)Set Con = Env.OpenConnection(“Sistema”,rddriverNoprompt) 

Lo que está entre comillas es el nombre del ODBC, no el nombre de la base de datos.

Estas instrucciones de conexión deben estar en cada formulario; en el caso nuestrodeben estar en el evento Load de los formularios Frmcli, Frmart y Frmfac.

Si ha escrito correctamente las instrucciones anteriores y corre su programa notará quese siente que se tarda un par de segundos, cosa que no sucedía antes; esto es debido aque al correr su aplicación invierte tiempo en conectarse al ODBC.

En este momento cabe decir que el concepto del ODBC no es fácil asimilarlo; y secomplica mas por el hecho que el proceso de conectarse al ODBC se una sola vez ynunca mas se repite, a menos que haga otra aplicación.

Page 73: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 73/192

 

Guía de trabajo Capítulo No. 8

1. Que es un ODBC

2. Qué significa ODBC

3. Cree un ODBC llamado Datos conectado a la base de datos Contabilidad quetambién se encuentra en el subdirectorio Winsystem

4. Cree un subdirectorio llamado Temp; dentro de este nuevo subdirectorio creenen Visual Basic un nuevo proyecto al que llamará Prueba; en este nuevoproyecto cree un formulario en blanco al que llamará PruebaODBC y conecteeste nuevo proyecto y formulario al ODBC Datos.

5. Qué es un módulo

6. Qué significa la instrucción: Option Explicit

7. Qué es el evento Load del formulario

8. Qué es una variable Global

9. Qué es una variable local

Page 74: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 74/192

 

Capítulo 9

Lectura de Tablas de Datos

I. Objetivo General Conocer el concepto de Lectura de Tablas de datos

II. Objetivos específicosLeer una tabla de datos y manipular sus datos dentro de un formulario

III. Contenido1. Lectura de una tabla (Intrucción Select)2. Variables RdoResultset3. Lectura de tablas usando parámetros

1.Lectura de una tabla (Intrucción Select)

El objetivo de crear un ODBC es para poder accesar las tablas de la base de datos a laque está conectado el ODBC; en nuestro caso la base de datos se llama SISTEMA; estabase de datos es un conjunto de tablas necesarias para la administración de una empresaen lo referente a sus datos; en este libro tenemos como objetivo crear los programas yreportes que controlen los siguientes aspectos: Recursos Humanos.

Con los conocimientos adquiridos en este curso usted debe ser capaz de hacer lasaplicaciones de Inventarios, Cuentas x Cobrar, Cuentas x Pagar, Contabiliad y Bancos, yde esa manera tener un sistema completo que incluso se puede mercadear

Entre las tablas de la base de datos tenemos las siguientes:

Empleados:

Page 75: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 75/192

 

Artículos:

Clientes:

Facturas:

En este curso aprenderemos instrucciones de SQL, que es el lenguaje de cualquier base

de datos.

La instrucción para leer los registros de una tabla es la instrucción Select. Para leer todoslos registros de la tabla empleados escribimos lo siguiente:

Select * from Empleados

Page 76: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 76/192

 

El asterisco indica que se están leyendo todas las columnas de la tabla. Tambiénpodemos leer de la tabla solo ciertas columnas:

Select codigo,nombre from empleados

En esta instrucción solo estamos leyendo de la tabla las columnas o campos: codigo y

nombre.

Si queremos leer los datos sólo del empleado con código 006 escribimos:

Select * from Empleados where codigo=‟006‟ 

Nosotros podemos usar estas instrucciones e incorporarlas en Visual Basic; paraconseguir tal objetivo debemos conocer las variables de tipo RdoResultset

2. Variables RdoResultset

Una variable de tipo RdoResultset es una variable que sirve para leer tablas de datos;este tipo de variables se crea de la siguiente manera:

Dim ZZ As RdoResultset

En donde ZZ es el nombre de la variable; una variable de tipo Rdoresultset es un arregloen dos dimensiones, columnas y filas; el No. de columnas que tendrá será de acuerdo alas columnas que ha leído de determinada tabla, y el No. filas dependerá de las filas oregistros leídos de la tabla.

Cómo indicamos qué tabla queremos que lea nuestra variable; para esto hacemos uso dela cláusula Set.

Si queremos que nuestra variable lea el codigo y nombre de la tabla empleadosescribimos lo siguiente:

Set ZZ = Con.Openresultset(“Select codigo,nombre from Empleados”, rdopenDynamic)

De esta instrucción debemos explicar varias cosas:

a. RdopenDynamic le indica al visual Basic que no abra la tabla de formaexclusiva, es decir, que otros usuarios puedan leer la tabla al mismo tiempo.Nuca lea una tabla sin esta instrucción; provocaría que el programa se le

trunque al otro usuario que trata de leer la misma tabla.

b. La instrucción Select debe ir entre comillas dobles

c. La instrucción Select es enviada al ODBC por medio de la variable Con, quecomo usted ya estudió en el capítulo anterior nos conecta con el ODBC. Luegoel ODBC envía la instrucción a la base de datos; cuando el ODBC recibe devuelta los resultados estos son guardados en la variable ZZ.

Page 77: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 77/192

 

En este momento cabe responder la siguiente pregunta: Cuántas columnas tiene lavariable ZZ; pues tiene el número de columnas que leyó con la instrucción Select (codigoy nombre). Cuántas filas tiene la variable ZZ; en este caso tiene como número de filas, elNo. de registros de la tabla Empleados.

Qué ocurre si la instrucción de lectura fuera la siguiente:

Set ZZ = Con.Openresultset(“Select codigo,nombre from Empleados where codigo=‟006‟ ”,rdopenDynamic)

Siempre tendría dos columnas, y si encontró datos del empleado 006 tendría una fila.

Para hacer referencia a una u otra columna lo hacemos de la siguiente manera:

ZZ!codigo  hace referencia al dato codigoZZ!Nombre  hace referencia al dato nombre

Podemos hacer una lectura y no recibir como respuesta información; para el caso en la

instrucción del Set anterior, si no hubiese ningún empleado con codigo 006, la variable ZZestaría vacía. Para preguntar si la variable ZZ está vacía (sin datos) lo haríamos de lasiguiente manera:

If ZZ.Eof Then

Otro aspecto muy importante es el hecho que al final de un proceso siempre hay quedejar cerrada una variable Rdoresultset, pues la cláusula Set la abre (Openresultset); paracerrar una variable de tipo Rdoresultset lo hacemos así:

ZZ.Close

3. Lectura de tablas usando parámetros

Notemos de nuevo la siguiente instrucción:

Set ZZ = Con.Openresultset(“Select codigo,nombre from Empleados where codigo=‟006‟ ”,rdopenDynamic)

Como dijimos anteriormente esta instrucción lee los datos del empleado con codigo 006.

 Ahora imagínese que tenemos un textbox llamado TXTCODIGO y otro llamado

TXTNOMBRE.

Queremos leer los datos del empleado cuyo codigo esté en el texbox TXTCODIGO; estosería una lectura parametrizada; la instrucción sería la siguiente:

Page 78: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 78/192

 

Set ZZ = Con.Openresultset(“Select codigo,nombre from Empleados where codigo=‟ “ &TXTCODIGO & “ ‟ ”, rdopenDynamic)

Pareciera que hay un espacio entre el apóstrofe (comilla simple) y la doble comilla, perono es así, tenga el cuidado de no dejar dicho espacio cuando le toque usar estainstrucción.

Dependiendo de lo que tenga el textbox TXTCODIGO, ese será el empleado leído.

Cuál sería la instrucción para asignar al textbox el dato del nombre desde la variable ZZ;al tener los datos del empleado cuyo codigo está en el textbox TXTCODIGO, laasignación del nombre en el textbox TXTNOMBRE sería de la siguiente manera:

TXTNOMBRE = ZZ!nombre

Esta instrucción anterior tiene un serio problema; si el empleado fue encontrado pero elnombre está vacío (sin datos), la instrucción anterior truncaría el programa; así que antes

de hacer la asignación debemos preguntar si ZZ!nombre está vacio (nulo); lo correcto eshacer la asignación de la siguiente manera:

If Not Isnull(ZZ!nombre) thenTXTNOMBRE = ZZ!nombre

End if

Lo anterior se explica de la siguiente manera:

Si ZZ!nombre no es nulo entonces asigne el nombre a txtnombre; en caso de queZZ!nombre es nulo la asignación no se haría.

Ya estamos listos para aplicar todo este conocimiento en un ejercicio práctico;programaremos en el formulario Frmemple, que al introducir el código del departamentoaparezca el nombre del departamento; si no encuentra el departamento debe aparecerleun rótulo que diga: NO EXISTE

Necesitamos que primero pegue un nuevo textbox (TXTNOMDEPARTAMENTO) a la pardel textbox TXTDEPARTAMENTO; debe quedarle de la siguiente manera:

Este textbox (TXTNOMDEPARTAMENTO) debe tener la propiedad Text en blanco, y lapropiedad Locked en True (por default la trae en false); con la propiedad Locked = true, eltextbox queda protegido, es decir, no se puede modificar; es un dato solo de consulta.

Page 79: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 79/192

 

 Antes de hacer la rutina que queremos es necesario conocer la estructura de la tablaDepartamentos:

Programaremos nuestra rutina en el evento Change de TXTDEPARTAMENTO; la razónde programar en este evento es porque el evento change se activa en el momento de quese introducen datos en la casilla, y precisamente lo que queremos es que en el momentoen que se introduzca el código del departamento se haga la búsqueda en la tablaDepartamentos; entre a este evento y escriba las siguientes instrucciones:

Dim ZZ As RdoResultsetSet ZZ = Con.Openresultset(“Select codigo,nombre from Departamentos where codigo=‟ “ &

TXTDEPARTAMENTO & “ ‟ ”, rdopenDynamic)If ZZ.EOF Then

TXTNOMDEPARTAMENTO = “NO EXISTE” ZZ.CLOSEExit Sub

End ifIf Not Isnull(ZZ!nombre) then

TXTNOMDEPARTAMENTO = ZZ!nombreEnd ifZZ.Close

Nota: La instrucción Set ZZ debe ir en una sola línea; por cuestión de espacio en nuestrotexto lo hacemos en dos líneas. Pero si usted desea hacerlo en dos líneas, debe indicar lacontinuación con el guión largo ( _ ) así:

Set ZZ = Con.Openresultset(“Select codigo,nombre from Departamentos where codigo=‟ “ & _ 

TXTDEPARTAMENTO & “ ‟ ”, rdopenDynamic)

Corra su programa e introduzca códigos de departamentos; pruebe con los siguientescódigos: 01, 02, 03, 04 y 05

Ejercicio:

Queremos que al introducir el código de la sucursal aparezca el nombre de la sucursal; sino encuentra la sucursal debe aparecerle un rótulo que diga: NO EXISTE

Necesitamos que primero pegue un nuevo textbox (TXTNOMSUCURSAL) a la par del

textbox TXTSUCURSAL; debe quedarle de la siguiente manera:

Page 80: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 80/192

 

Este textbox (TXTNOMSUCURSAL) debe tener la propiedad Text en blanco, y lapropiedad Locked en True (por default la trae en false); con la propiedad Locked = true, eltextbox queda protegido, es decir, no se puede modificar; es un dato solo de consulta.

 Antes de hacer la rutina que queremos es necesario conocer la estructura de la tablaSucursales: 

Programaremos nuestra rutina en el evento Change de TXTSUCURSAL; la razón deprogramar en este evento es porque el evento change se activa en el momento de que seintroducen datos en la casilla, y precisamente lo que queremos es que en el momento enque se introduzca el código de la sucursal se haga la búsqueda en la tabla Sucursales;entre a este evento y escriba las siguientes instrucciones:

Dim ZZ As RdoResultsetSet ZZ = Con.Openresultset(“Select codsuc,nomsuc from Sucursales where codsuc=‟ “ &

TXTSUCURSAL & “ ‟ ”, rdopenDynamic)If ZZ.EOF Then

TXTNOMSUCURSAL = “NO EXISTE” ZZ.CLOSEExit Sub

End ifIf Not Isnull(ZZ!nomsuc) then

TXTNOMSUCURSAL = ZZ!nomsucEnd ifZZ.Close

Nota: La instrucción Set ZZ debe ir en una sola línea; por cuestión de espacio en nuestro

texto lo hacemos en dos líneas. Pero si usted desea hacerlo en dos líneas, debe indicar lacontinuación con el guión largo ( _ ) así:

Set ZZ = Con.Openresultset(“Select codsuc,nomsuc from Sucursales where codsuc=‟ “ & _  TXTSUCURSAL & “ ‟ ”, rdopenDynamic)

Corra su programa e introduzca códigos de Sucursales; pruebe con los siguientescódigos: 01, 02, 03 y 04

Page 81: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 81/192

 

Guía de trabajo Capítulo No. 9

1. Qué hace la instrucción Select

2. Qué es una variable de tipo RdoResultset

3. Suponga que queremos crear una variable de tipo rdoresultset llamada dd;conteste las siguientes preguntas

a. Cómo se crearía la variable ddb. Cómo se asignaría la lectura de la tabla articulos a la variable ddc. Cómo se preguntaría si la variable dd esta vacía (sin datos)d. Cómo se cerraría la variable dd

4. En el formulario Frmcli haga que al introducir el código del vendedor aparezcael nombre del vendedor

5. En el formulario Frmart haga lo siguiente:

a. Que al introducir el código de la línea aparezca el nombre de la línea

b. Que al introducir el código de la unidad aparezca el nombre de la unidad

6. En el formulario Frmfac haga lo siguiente:

a. Que al introducir el código del cliente aparezca el nombre del cliente

b. Que al introducir el código del vendedor aparezca el nombre delvendedor

c. Que al introducir el código de la sucursal aparezca el nombre de lasucursal

Page 82: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 82/192

 

Capítulo 10

Subrutinas, Inicializar Datos y Agregar Registro

I. Objetivo General Conocer el concepto de Subrutinas y Agregar Registro en una Tabla de datos

II. Objetivos específicosCrear subrutinas; crear la subrutina para limpiar los datos de la pantalla decaptura de datos; programar el botón Cancelar y el botón Agregar de laaplicación de empleados

III. Contenido1. Crear subrutinas (Private Sub)2. Subrutina Inicializar datos3. Programación Botón Cancelar4. Programación Botón Agregar (Insert)5. Instrucción Con.Committrans 

1.- Crear subrutinas (Private Sub) 

En una aplicación es necesario la creación de subrutinas; una subrutina es un bloque deprogramación que puede ser llamado desde cualquier punto del programa.La razón de crear una subrutina es porque nos evita la repetición de un grupo deinstrucciones que se ejecutan en varias partes del programa; esto nos lleva al hecho deque una subrutina tiene el siguiente esquema:

Procedimiento convencional: Procedimiento con subrutinas:Linea programación Linea programaciónLinea programación Linea programación

 A= 2 Llamar subrutina B= 3 Linea programaciónC= 0 Linea programación

 A= (B+C)/2 Llamar subrutina Linea programación Linea programaciónLinea programación Linea programación

 A= 2B= 3 Inicio de SubrutinaC= 0 A=2

 A= (B+C)/2 B=3Linea programación C=0Linea programación A=(B+C)/2

Fin de subrutina

Page 83: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 83/192

 

La programación por medio de subrutinas es llamada programación estructurada; enVisual Basic las subrutinas tienen el siguiente formato:

Private Sub Nombre-de-subrutina()

End Sub En donde:

Private Sub : inddica el inicio

Nombre-de-subrutina() : es el nombre de la subrutina; el nombre no debe tener espaciosintercalados; si usa varias palabras para indicar el nombre de la subrutina, deben estarunidas por el guión largo o bajo ( _).

End Sub : Indica el fin de la subrutina

Cómo llamar una subrutinaPara llamar una subrutina desde cualquier punto del programa basta con escribir elnombre de la subrutina sin el doble paréntesis.

2. Subrutina Inicializar datos

Haremos una subrutina llamada DATOSINICIALES; esta subrutina tendrá como objetivolimpiar los datos de la pantalla de los datos de los empleados en el formulario Frmemple;en algunos casos no limpiará los datos, sino que le dará un valor inicial o por default ;para el caso, queremos que la casilla sexo de entrada tenga el valor „F‟ (Femenino); lacasilla del estado civil que tenga de entrada el valor „1‟ (Soltero); la casilla sindicado quetenga de entrada el valor „S‟. Las subrutinas se pueden escribir en cualquier punto de lapantalla de edición de código, pero sugerimos que se escriban al final del programa; hagadoble clic en cualquier punto del programa y presione la tecla Page Down (Avanzarpágina) hasta llegar al final de la página de edición de código y en un punto en blancoescriba lo siguiente:

Private Sub DATOSINICIALES( )

 Al presionar enter, Visual Basic automáticamente cierra la rutina:

Private Sub DATOSINICIALES( )

End Sub

Y le deja el espacio para escribir las instrucciones que desee; escriba las siguientesinstrucciones: (R001) 

Page 84: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 84/192

 

Txtnombre=emptyTxtDireccion=EmptyTxtFechaingreso=”__/__/____” TxtSueldo=EmptyTxtTelefono=EmptyTxtEstadoCivil=”1” 

TxtSexo=”M” TxtDepartamento=EmptyTxtNomDepartamento=EmptyTxtSucursal=EmptyTxtNomSucursal=EmptyTxtSindicato=”S” 

 Ahora sálgase de esta pantalla

En este momento cabe hacerse varias preguntas:

a.- Por qué TXTCODIGO no la incluimos en la rutina DATOSINICIALES

Porque los datos de la llave principal no se borran desde una rutina, sino en formaseparada. Aunque la razón práctica de no incluirlo en la rutina DATOSINICIALES se veráen el capítulo siguiente, cuando se mire la modificación de un registro o la eliminación delmismo.

b.-Por qué TXTESTADOCIVIL=”1” 

Porque de esta manera conseguimos que se ejecute el evento Change deTXTESTADOCIVIL, lo cual hará que en el combo COMBOESTADOCIVIL se ubique en elindex que dice: Soltero. Como regla general diremos lo siguiente: En un Textbox que estáamarrado a un combobox, siempre le daremos el valor que corresponda al primerelemento de la lista del combo.

1= Soltero, 2=Casado.........si usted quisiera que el combo muestre la palabra Soltero por default, qué haría?

c.-Por qué TXTSEXO= “M” 

Porque de esta manera conseguimos que se ejecute el evento Change de TXTSEXO, locual hará que cualquiera de los Optionbutton se active; en este caso se activará eloptionbutton que corresponde a Masculino. Como regla general diremos lo siguiente: En

un textbox que está amarrado a varios optionbutton, siempre daremos el valor quecorresponda a cualquiera de los optionbutton.M=Masculino, F=Femenino

Si usted quisiera que apareciera activo el optionbutton de Femenino por default, quéharía?

d.-Por qué TXTSINDICATO=”S” 

Page 85: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 85/192

 

Porque de esta manera conseguimos que se ejecute el evento change deTXTSINDICATO, lo cual hará que el checkbox aparezca marcado. Como regla generaldiremos lo siguiente: En un textbox que está amarrado a un checkbox siempre le daremosel valor “S” o “N” según sea su preferencia. S= Con la marca, N= Sin la marca

e. Por qué TxtFechaingreso=”__/__/____” 

Porque a una casilla que hemos definido como fecha, debemos limpiarla con el formatosegún la máscara hecha con el control Masked Edit.

Nota:  en este momento cabe comentar el siguiente hecho: es necesario que nuestracomputadora en la sección de configuración en el panel de control, específicamente enlas configuraciones regionales se defina la fecha como fecha larga: dd/MM/aaaa.

Para un usuario de visual Basic, es bastante incómodo ubicarse en una subrutina si no seconoce el procedimiento correcto; es decir si su programa ya es demasiado grande, esnecesario tener una forma rápida para ubicar una subrutina; siga estos pasos paraubicarse en la subrutina que desee:

a. Haga doble clic en cualquier punto de su pantalla;b. Le aparecerá la pantalla donde escribe el código de programación:c. Haga clic en el combo de la parte superior izquierda, y le aparecerá una lista de

nombres de variables y otros:

d. Debe ubicarse en el primer elemento de la lista y hacer clic sobre éle. Ambos combos deben quedarle de la siguiente manera:

Haga clic en el combo de la derecha (Declarations)

f. Le aparecerá una lista en la cual encontrará la rutina que usted busca:

Page 86: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 86/192

 

Haga clic sobre el nombre de la rutina donde desea ubicarse, e inmediatamente visualBasic lo ubica en la rutina seleccionada.

3. Programación Botón Cancelar

Hacer una rutina no tiene ningún sentido si no se le llama desde algún punto delprograma; un buen lugar para llamar la rutina es el botón cancelar; haga doble clic sobreel botón cancelar, y le aparecerá el espacio para programar:

Para llamar la rutina, simplemente escriba:

DATOSINICIALES

 Ahora sálgase de esta pantalla y siga los siguientes pasos;

a. Corra su aplicaciónb. Introduzca todos los datos que se le pidenc. Al llenar todas la casillas haga clic sobre el botón Cancelar  d. Note que nos queda el siguiente problema:

-  El código del empleado queda con datos-  El cursor debería regresar a la casilla del código del empleado

Para resolver estos dos puntos anteriores, haga clic de nuevo sobre el botón Cancelar, yagregue las siguientes instrucciones después de llamar la subrutina DATOSINICIALES:

TXTCODIGO = EMPTY

TXTCODIGO.SetFocus

Corra su aplicación y haga la prueba de nuevo

Explicaremos las instrucciones que fueron agregadas:

a. TXTCODIGO = EMPTY; limpia la casilla del código del empleado

Page 87: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 87/192

 

b. TXTCODIGO.SetFocus; SetFocus sirve para enviar el cursor a un determinadoobjeto, y cuando escribimos: TXTCODIGO.SetFocus le indicamos que envíeel cursor a ubicarse en la casilla TXTCODIGO.

Nota: Al correr su aplicación note que de entrada las casillas no aparecen inicializadas,aunque sí limpias; esto nos lleva a la conclusión que otro lugar donde se debe llamar la

rutina DATOSINICIALES es en el Form_load; entre al Form_load y agregue la siguienteinstrucción:

DATOSINICIALES

 Ahora corra su aplicación y notará que de entrada le aparecen inicializados todas lascasillas.

4. Programación Botón Agregar (Insert)

Para que una aplicación pueda funcionar en cualquier base de datos es necesario que lagrabación de la información sea hecha por medio de instrucciones de SQL; esto nos llevaa considerar el Comando de SQL llamado Insert;  este comando permite agregar unnuevo registro a una tabla de datos; la forma de usarlo es la siguiente:

Insert into Tabla-de-datos(lista-de-campos) values (lista-de-valores)

Lista-de-campos son los campos que recibirán datos en la grabación

Lista-de-valores son los valores que se grabarán en cada campo especificado en la listade campos, según el orden especificado; para el caso analicemos la siguiente instrucción:

Insert into empleados(codigo,nombre,fechaingreso,sueldo) values

('1002','Rosa Mayrena', '01/01/2003',12500)

Esta instrucción agregaría un registro a la tabla Empleados a los camposcodigo,nombre,fechaingreso y sueldo con los siguientes datos: 1002, Rosa Mayrena,01/01/2003 y 12500 respectivamente; consideremos los siguientes aspectos:

1002 lo colocamos entre apóstrofes o comillas simples porque en la tabla el campocodigo es alfanumérico (text).

Rosa Mayrena lo colocamos entre apóstrofes o comillas simples porque en la tabla el

campo nombre es alfanumérico (text).

12500 lo colocamos sin apóstrofes o comillas simples porque en la tabla el campo sueldoes numérico (text).

Page 88: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 88/192

 

01/01/2003 lo colocamos entre apóstrofes o comillas simples porque en la tabla el campofechaingreso  es fecha (datime) y tiene el mismo tratamiento que los campos de tipoalfanumérico (text).

 Ahora bien, si quisiéramos usar la instrucción anterior para grabar desde visual Basicharíamos un execute con el siguiente formato:

Con.execute(“instricción de SQL”) 

Lo cual sería lo siguiente (R002):

Con.execute (“Insert into empleados(codigo,nombre,fechaingreso,sueldo)

Values ('1002','Rosa Mayrena', '01/01/2003',12500)”) 

Haga doble clic sobre el botón Salvar y escriba la instrucción anterior y corra su aplicación

 Ahora entre a la base de datos (Access) y verifique que el registro se grabó; tambiénborre el registro grabado después de comprobada su grabación.

Otra forma de trabajar el proceso de grabación en Visual y Basic es hacerla por medio deuna variable de memoria; este será la forma de trabajar en este libro; es muy sencillo, setrabaja de la siguiente forma:

Mstrsql=”instrucción de SQL” Con.execute(mstrSql)

Siguiendo nuestro ejercicio sería de la siguiente manera (R003):

MstrSql=”Insert into empleados(codigo,nombre,fechaingreso,sueldo) Values ('1002' ,'RosaMayrena', '01/01/2003',12500)” 

Con.execute(MstrSql)

Entre al botón Salvar y sustituya las instrucciones que encuentre por las anteriores y corrasu aplicación:

 Ahora entre a la base de datos (Access) y verifique que el registro se grabó; tambiénborre el registro grabado después de comprobada su grabación.

 Ahora queremos grabar en la tabla los datos de la pantalla; hagamos una referencia a

cada dato:

1002 = TXTCODIGORosa Mayrena = TXTNOMBRE01/01/2003 = TXTFECHAINGRESO12500 = TXTSUELDO

Page 89: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 89/192

 

sería un grave error sencillamente sustituir los valores por las casillas, así:

MstrSql=”Insert into empleados(codigo,nombre,fechaingreso,sueldo) Values ('txtcodigo' ,'txtnombre', 'txtfechaingreso',txtsueldo)” 

Con.execute(MstrSql)

Lo que queremos hacer es grabación parametrisada; la instrucción correcta sería la

siguiente (R004):

MstrSql=”Insert into empleados(codigo,nombre,fechaingreso,sueldo) Values (“ _& “ „ “ & txtcodigo & “ ' ,” _ & “ „ “ & txtnombre & “ ' ,” _ & “ „ “ & txtfechaingreso & “ ' ,” _ & txtsueldo & “)”

Con.execute(MstrSql)

Entre al botón Salvar y sustituya las instrucciones que encuentre por las anteriores y corrasu aplicación: Introduzca los siguientes datos:1002 = TXTCODIGORosa Mayrena = TXTNOMBRE01/01/2003 = TXTFECHAINGRESO12500 = TXTSUELDO

Verifique que el registro se grabó; luego borre el registro grabado; le sugerimos que nuncaescriba instrucciones demasiado largas, mejor acórtelas; para el caso, cuando la lista decampos que recibirán información es muy larga, divida la instrucción en varias partes, así(R005):

MstrSql=”Insert into empleados(codigo,nombre,” _& “fechaingreso,sueldo) Values (“ _

& “ „ “ & txtcodigo & “ ' ,” _ & “ „ “ & txtnombre & “ ' ,” _ & “ „ “ & txtfechaingreso & “ ' ,” _ & txtsueldo & “)”

Con.execute(MstrSql)

Consideremos algunos aspectos de la instrucción para grabar datos:

a. Elementos para cada variable o casilla si no es el último dato a grabar

a.1 Si es una casilla Alfanumérica (text) o fecha

& “ „ “ & casilla & “ „,” _  

No va espacio entre la Doble comilla y el apóstrofe (comilla sencilla)o la coma

 Antes del guión de continuación va un espacio

 Antes y después del signo aspersan (&) va un espacio

Page 90: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 90/192

 

a.2 Si es una casilla numérica

& casilla & “,” _  

No va espacio entre la Doble colilla y la coma Antes del guión de continuación va un espacio

 Antes y después del signo aspersan (&) va un espacio

b. Elementos para cada variable o casilla si es el último dato a grabarb.1 Si es una casilla Alfanumérica (text) o fecha

& “ „ “ & casilla & “ „)”

No va espacio entre la Doble comilla y el apóstrofe (comilla sencilla)o el paréntesis derechoNo va del guión de continuación

 Antes y después del signo aspersan (&) va un espacio

b.2 Si es una casilla numérica

& casilla & “)”

No va espacio entre la Doble colilla y el paréntesis derechoNo va el guión de continuación

 Antes y después del signo aspersan (&) va un espacio

Con estas reglas anteriores puede hacer la grabación de cualquier registro de tabla dedatos; escribamos la instrucción donde se graba toda la información del empleado (R006):

MstrSql = "Insert into empleados(codigo,nombre,direccion,fechaingreso," _

& "sueldo,telefono,estadocivil,sexo,departamento,sucursal," _

& "sindicato) Values (" _

& " ' " & txtcodigo & " '," _

& " ' " & TXTNOMBRE & " '," _

& " ' " & TXTDIRECCION & " '," _

& " ' " & TXTFECHAINGRESO & " '," _

& TXTSUELDO & "," _

& " ' " & TXTTELEFONO & " '," _

& " ' " & TXTESTADOCIVIL & " '," _

& " ' " & TXTSEXO & " '," _& " ' " & TXTDEPARTAMENTO & " '," _& " ' " & TXTSUCURSAL & " '," _& " ' " & TXTSINDICATO & " ' )"

Con.Execute (MstrSql)Con.Committrans

Page 91: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 91/192

 

Corra su aplicación y grabe un Nuevo empleado de código = 032; los demás datosinvénteselos con el cuidado de introducir una fecha correcta.

Nos hace falta un detalle muy importante: después de grabar, la pantalla debe quedarlimpia y el cursor en la casilla del código del empleado; esto nos indica que al grabar elregistro hay que escribir las siguientes líneas:

DATOSINICIALESTXTCODIGO=EMPTYTXTCODIGO.SetFocus

Pero estas líneas se encuentran en la rutina del Botón cancelar:

Private Sub Cancelar_Click()

DATOSINICIALES

txtcodigo = Empty

txtcodigo.SetFocus

End Sub

Por lo tanto, para no repetir estas instrucciones podemos llamar la rutina: Cancelar_click 

Entre de nuevo al Botón Salvar y al final (antes de End Sub) escriba lo siguiente:

Cancelar_click 

Corra su aplicación y grabe un Nuevo empleado de código = 033; los demás datosinvénteselos con el cuidado de introducir una fecha correcta.

5. Instrucción Con.Committrans

Esta es una instrucción que le indica al Visual Basic que debe ejecutar la instruccióntambién en el proceso de trasladar las transacciones a la copia de espaldo automáticaque hace una base de datos robusta como Oracle, SQL Server y cualquier otra; en

 Access no existe esa copia de respaldo, así que la instrucción Con.Committrans no tieneningún efecto.

Page 92: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 92/192

 

Guía de trabajo Capítulo No. 10

1. Qué es una Subrutina

2. Cuál es la razón de trabajar con subrutinas

3. Cómo se le llama a la programación por medio de subrutinas

4. Cuál es el formato de una subrutina en Visual basic

5. Cómo se llama para ejecutar una subrutina desde cualquier punto delprograma

6. Cuál es el objetivo de hacer una subrutina de inicialización de datos(DATOSINICIALES)

7. En la subrutina DATOSINICIALES a qué se igualan los siguientes casos decasillas:

a. Fechasb. Textbox amarrado a un comboboxc. Textbox amarrado a un Option Buttond. Textbox amarrado a un checkboxe. Cualquier otro caso

8. En qué dos lugares del programa debe llamarse la rutina DATOSINICIALES

9. Qué instrucciones van en el botón Cancelar

10. Qué hace el comando Insert

11. Si tenemos la siguiente tabla: TABLA1

Nombre de campo TipoTarjeta TextFechatar FechaValortar NuméricoCodigopostal Text

Cuál sería la instrucción en SQL para agregar un registro con la siguienteInformación

Tarjeta 10-20Fechatar 20/01/2003Valortar 4700Codigopostal 02

Page 93: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 93/192

 

12. En el formulario Frmart haga lo siguiente:

a. La rutina DATOSINICIALES

b. Programar el botón Cancelar

c. Llamar la rutina DATOSINICIALES en el Form_load

d. Programar el botón Salvar (Agregar un nuevo artículo)

Tabla: Articulos

13. En el formulario Frmcli haga lo siguiente:

a. La rutina DATOSINICIALES

b. Programar el botón Cancelar

c. Llamar la rutina DATOSINICIALES en el Form_load

d. Programar el botón Salvar (Agregar un nuevo artículo)

Tabla Clientes

Page 94: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 94/192

 

14. En el formulario Frmfac haga lo siguiente:

a. La rutina DATOSINICIALES

b. Programar el botón Cancelar

c. Llamar la rutina DATOSINICIALES en el Form_load

d. Programar el botón Salvar (Agregar un nuevo artículo)

Tabla Facturas

Page 95: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 95/192

 

Capítulo 11

Datos numéricos, programación de teclas

Y validación de datos

I. Objetivo General Conocer el concepto de Datos numéricos, programación de teclas; Edición yModificación de datos

II. Objetivos específicosProgramar casillas numéricas; evento Keyprees para saltar a otra casilla con latecla enter; validación de datos de tipo texto, numéricos y fechas

III. Contenido

1. Casillas numéricas2. Salto de una casilla a otra con la tecla enter3. Validaciones4. Datos numéricos no pueden grabarse en blanco (empty)5. Datos numéricos no pueden grabarse con comas (,)6. Validar la repetición del registro a grabarse

1.- Casillas numéricas 

Corra su aplicación y verá que la casilla del Sueldo permite letras y otros caracteres queno son numéricos.

Las casillas numéricas se diseñan con un textbox, siendo necesario programar para que secomporten como tal; En una casilla numérica solo deben entrar los números del 0 al 9 y el puntodecimal (solo una vez); todo esto no es automático en Visual Basic, es necesario programarlo; ennuestro caso que estamos trabajando el formulario de los datos de los empleados, el sueldo es eldato que trabajaremos; la programación se hace en el evento Keypress; entre al evento Keypressde TXTSUELDO y agregue las siguientes instrucciones: (R007) 

If KeyAscii >= 32 ThenIf Not IsNumeric(Chr(KeyAscii)) Then

If Chr(KeyAscii) <> "." ThenKeyAscii = 0

Else

If (InStr(1, TXTSUELDO.Text, ".")) > 0 ThenKeyAscii = 0End If

End IfEnd If

End If

Page 96: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 96/192

 

Corra su aplicación y verá que la casilla del Sueldo ya no permite letras y otros caracteresque no son numéricos.

Explicaremos detalladamente la rutina en un capítulo mas adelante que trata sobrefunciones y teclas de función, pero daremos algunos detalles a continuación:

La idea de esta rutina es inhabilitar el teclado cuando se ha presionado determinada tecla;si se presiona cualquier letra o carácter especial, que se inhabilite el teclado; no así si sepresiona algunas teclas como enter, F1 – F10, Backspace,Delete, etc.pues estas podríanejecutar una rutina:

If KeyAscii >= 32 Then

Solo las teclas cuyo carácter ascii sea mayor o igual a 32 entrarán al proceso de inhabilitación deteclado (barra espaciadora = 32), antes del 32 tenemos por ejemplo backspace = 8, enter = 13,shift = 16, etc.; estas teclas no las queremos inhabilitar

If Not IsNumeric(Chr(KeyAscii)) Then

De las teclas cuyo código ascii son mayores de 32, entrarán al proceso de inhabilitación deteclado las que no son numéricas (0 –9)

If Chr(KeyAscii) <> "." Then

De las que no son numéricas y que a la vez no es el punto (110) queremosque queden inhabilitadas (Keyascii = 0)

KeyAscii = 0Else

 A esta parte del programa solo entra el punto

If (InStr(1, TXTSUELDO.Text, ".")) > 0 Then

Si es el punto, pero ya está en la casilla TXTSUELDO.TEXT entoncesinhabilite el teclado. La función InStr busca el punto(.) desde la posiciónprimera (1) de la casilla TXTSUELDO.TEXT; si no lo encuentra devuelve elvalor 0; si lo encuentra devuelve un valor arriba de cero

KeyAscii = 0End If

End IfEnd If

End If

Como le hemos dicho, mas adelante se explicará mas detalladamente esta rutina; por ahora usteddebe saber que debe escribirse en el evento Keypress de cualquier casilla numérica, y lo únicoque debe cambiar es el nombre de la casilla.

Page 97: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 97/192

 

2. Salto de una casilla a otra con la tecla enter

Por default Visual Basic salta de casilla en casilla con la tecla TAB tomando comoreferencia la propiedad TABINDEX de cada control u objeto de entrada de datos.

Pero se da el caso de que una de las razones por las cuales el usuario rechaza unsistema es porque desea que el salto lo haga presionando la tecla Enter. Por ejemplo siqueremos saltar de la casilla TXTCODIGO a la casilla TXTNOMBRE al presionar la teclaenter haga lo siguiente:

a. Ubíquese en la casilla TXTCODIGO y entre al evento Keypressb. Agregue la siguiente programación

if Keyascii=13 ThenTXTNOMBRE.Set.focus

End If

Explicaremos este código de programación:

if Keyascii=13 Then

La tecla enter es el caracter ascii 13; esta tecla no está inhabilitada en loscasos cuando se trata de una casilla numérica; si estando en la casillaTXTCODIGO se ha presionado la tecla enter, entonces enviamos el cursor a lacasilla TXTNOMBRE.

TXTNOMBRE.Set.focusEnd If

Después de hacer la programación anterior en su aplicación córrala y notará el cambio.

Si queremos que al estar en la casilla TXTNOMBRE al presionar la tecla enter, salte a lacasilla TXTDIRECCION hacemos lo siguiente:

a. Ubíquese en la casilla TXTNOMBRE y entre al evento Keypressb. Agregue la siguiente programación

if Keyascii=13 ThenTXTDIRECCION.Set.focus

End If

En nuestro curso trabajaremos con el entendido que el salto de una casilla a otra se hagacon la tecla enter (siempre queda habilitado que se salte con la tecla Tab tomando comobase la propiedad Tabindex)

Ejercicio:

Page 98: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 98/192

 

Programe el salto de las otras casillas del formulario Frmemp

3. Validaciones

Se le llama validaciones al hecho de no permitir que se graben en la tabla datosincorrectos; las validaciones deben ir antes de que el registro se grabe en la tabla lo cual

nos lleva al inicio del evento clic del botón a SALVAR.

La idea es que si intentamos grabar un dato incorrecto, podamos detener la grabación y ala vez enviar un mensaje de advertencia al usuario. Antes veremos un nuevo comando:

MSGBOX

Sirve para enviar un mensaje por pantalla; este comando detiene el procedimiento yespera que el usuario presione cualquier tecla; la sintaxis es la siguiente:

MSGBOX “Mensaje en el cuerpo de la pantalla”, SIGNO DE EXPRESIÓN, “Mensaje en la partesuperior de la pantalla” 

Notemos lo que haría la siguiente instrucción

MsgBox “Dato incorrecto”,vbcritical, “Error....” 

Vbcritical genera el círculo rojo con la equis blanca, que es el convencional de Windows cuandose ha producido un error; otros signos de expresión serían los siguientes:

Vbexclamation

Vbinformation 

Vbquestion

Page 99: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 99/192

 

Existen otros que usted puede investigar mas adelante. Al hacer las validacionescomprenderemos mejor el uso de la función Msgbox. Programaremos las siguientesvalidaciones:

a. El nombre no debe ir en blanco

If Txtnombre=Empty Then

Msgbox “Nombre del Empleado no debe ir en blanco”, vbcritical, “ERROR”  Txtnombre.setfocusExit Sub

End If

Escriba esta validación va al inicio del evento clic del botón SALVAR; corra su aplicación ypresione el botón Salvar sin escribir el nombre del empleado

Explicaremos el bloque de programación

If Txtnombre=Empty Then

Se pregunta si TXTNOMBRE está en blanco (empty)

Msgbox “Nombre del Empleado no debe ir en blanco”, vbcritical, “ERROR”  

Si la respuesta es afirmativa se envía el mensaje correspondiente en unapequeña pantalla y se espera a que el usuario presione cualquier tecla:

Txtnombre.setfocus

 Al presionar el usuario cualquier tecla se envía el cursor a la casillaTXTNOMBRE, pues allí se detectó el errorExit Sub

El programa se sale de la rutina Salvar_clic para que no continúe con las

subsiguientes instruccionesEnd If

b. El sueldo no debe ser menor de 1500

Page 100: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 100/192

 

Txtsueldo= format(txtsueldo, “######.00”) If val(txtsueldo)<1500 then

Msgbox”Sueldo incorrecto, no debe ser menor de 1500”, vbcritical, “ERROR”  Txtsueldo.setfocusExit sub

End If

Escriba esta validación al inicio del evento clic del botón SALVAR antes de la validación del

nombre; corra su aplicación y presione el botón Salvar escribiendo un sueldo como 1300.

Explicaremos las instrucciones adicionales en este caso de una validación de una casillanumérica.

Txtsueldo= format(txtsueldo, “######.00”) 

Esta línea es muy importante cuando se trata de una casilla numérica; format  es unafunción que establece un formato (el que está entre comillas); este formato (“#####.00”)lo que hace es quitarle comas (,) si la casilla viniera con comas (mas adelante veremosque así será), la evaluación de la función Val (convertir a numérico) no es exacta; para el

caso si TXTSUELDO tiene el valor 1,500.00, la función Val lo convierte en uno (1), puesevalúa hasta donde encuentra un carácter extraño.

If val(txtsueldo)<1500 then

Se usa val para convertir a numérico, ya que todo textbox es de tipo texto.

c. El nombre del departamento no debe ir en blanco o debe existir en la tabladepartamentos

If txtnomdepartamento=empty or txtnomdepartamento=”NO EXISTE” then  Msgbox”Departamento incorrecto”, vbcritial, “error” 

Txtdepartamento.setfocusExit sub

End If

Esta validación es de mucha importancia y no debe ser dejada sin comentar en forma especial; deno hacerla se corre el riesgo de tener registros de empleados sin departamento donde trabaja, oun departamento que no existe.

Escriba esta validación al inicio del evento clic del botón SALVAR antes de la validación delsueldo; corra su aplicación y presione el botón Salvar escribiendo un departamento incorrecto(10).

 Ahora pruebe grabar un registro sin departamento

d. El nombre de la sucursal no debe ir en blanco o debe existir en la tablaSucursales

Page 101: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 101/192

 

If txtnomsucursal=empty or txtnomsucursal=”NO EXISTE” then Msgbox “Sucursal Incorrecta”, vbcritical, “ERROR” Txtsucursal.setfocusExit sub

End If

Escriba esta validación al inicio del evento clic del botón SALVAR antes de la validación delDepartamento; corra su aplicación y presione el botón Salvar escribiendo una sucursal incorrecta(10).

 Ahora pruebe grabar un registro sin sucursal

e. La fecha debe ser correcta

If Not isdate(txtfechaingreso) thenMsgbox “Fecha de Ingreso Incorrecta”, vbcritical, “ERROR”  Txtfechaingreso.setfocusExit sub

End If

Explicaremos lo extraño o nuevo de esta validación; es especial para casillas de fechas

If Not isdate(txtfechaingreso) then

La función Isdate() convierte a fecha según el formato que su computadora estémanejando.

La pregunta se hace en forma negativa, pues lo que interesa saber es si la casillaTXTFECHA no es un fecha correcta

Escriba esta validación al inicio del evento clic del botón SALVAR antes de la validación de la

sucursal; corra su aplicación y presione el botón Salvar escribiendo una fechaincorrecta(30/02/2003).

 Ahora nos presentamos ante un problema; la validación anterior referente a la fecha está bienpara aquellos casos cuando se requiera grabar obligatoriamente una fecha; pero podría darse elcaso de que se desea grabar un registro sin fecha;

Intente Grabar un empleado sin fecha de nacimiento en este momento:

La nueva validación de la fecha nos debe permitir identificar dos casos:

a. Si se introdujo una fecha, que se valide si es correcta o no

b. Si la fecha está vacía que no haga la validación y que grabe la fecha nulla

Esto nos lleva a modificar la rutina de validación de fecha por la siguiente:(R008) 

Page 102: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 102/192

 

If TXTFECHAINGRESO = "__/__/____" ThenTXTFECHAINGRESO2 = "Null"

ElseIf Not IsDate(TXTFECHAINGRESO) Then

MsgBox "Fecha de Ingreso Incorrecta", vbCritical, "ERROR"TXTFECHAINGRESO.SetFocusExit Sub

End If

TXTFECHAINGRESO2 = TXTFECHAINGRESOEnd If

Haga en este momento la sustitución de la rutina de validación de fecha y prueba la nuevavalidación ingresando un empleado con fecha vacía.

Explicaremos los aspectos nuevos de la validación:

If TXTFECHAINGRESO = "__/__/____" Then

Preguntamos si la casilla TXTFECHAINGRESO está vacíaTXTFECHAINGRESO2 = "Null"

Si la casilla TXTFECHAINGRESO está vacía se crea una variable con el valor

Nulo (TXTFECHAINGRESO2 = "Null") Else

En caso de que la casilla TXTFECHAINGRESO no esté vacía que haga elproceso de la validación se hará normalmente:

If Not IsDate(TXTFECHAINGRESO) ThenMsgBox "Fecha de Ingreso Incorrecta", vbCritical, "ERROR"TXTFECHAINGRESO.SetFocusExit Sub

End If

 Antes de salir de la validación tenemos que asignar a la variableTXTFECHAINGRESO2 el contenido de la casilla TXTFECHAINGRESO.TXTFECHAINGRESO2 = TXTFECHAINGRESO

End IfTermina la validación

Lo anterior significa que lo que se grabará en la tabla ya no será TXTFECHAINGRESO, sinoTXTFECHAINGRESO2, lo provocaría el siguiente cambio en la rutina de grabación del registro:

MstrSql = "Insert into empleados(codigo,nombre,direccion,fechaingreso," _

& "sueldo,telefono,estadocivil,sexo,departamento,sucursal," _

& "sindicato) Values (" _

& " ' " & txtcodigo & " '," _

& " ' " & TXTNOMBRE & " '," _

& " ' " & TXTDIRECCION & " '," _

& TXTFECHAINGRESO2 & " ," _

& TXTSUELDO & "," _

& " ' " & TXTTELEFONO & " '," _

Page 103: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 103/192

 

& " ' " & TXTESTADOCIVIL & " '," _

& " ' " & TXTSEXO & " '," _

& " ' " & TXTDEPARTAMENTO & " '," _

& " ' " & TXTSUCURSAL & " '," _

& " ' " & TXTSINDICATO & " ' )"

Con.Execute (MstrSql)

Haga usted este cambio a su programa, pues esta rutina fue hecha en el capítulo anterior:

4. Datos numéricos no pueden grabarse en blanco (empty)

Un detalle muy importante a la hora de grabar información es el hecho de que hay que asegurarsede que si un dato numérico está en blanco (empty) debe transformarse en cero antes de grabarse,pues no es posible grabar un dato en blanco en un capo numérico; en nuestro caso el dato al quequeremos aplicar este principio es TXTSUELDO (sueldo del empleado); las instrucciones paratransformar un dato numérico que está en blanco, a cero es el siguiente:

If Txtsueldo = empty thenTxtsueldo = 0

End if

Incluya estas instrucciones exactamente antes de la grabación del registro (Insert)

En este caso del formulario Frmemple solo tenemos un dato numérico, el sueldo, pero es claroque por cada casilla numérica debe hacerse el proceso de verificación si el dato viene en blanco;para el caso en su ejercicio del formulario de artículos Frmart existen varias casillas numéricas:TXTEXISTENCIA, TXTMAXIMO, TXTMINIMO, TXTPRECIO y TXTCOSTO, estas serían lasinstrucciones para trasformar cada casilla a cero en caso de que estén en blanco:

If Txtexistencia = empty thenTxtexistencia = 0

End if

If Txtmaximo = empty thenTxtmaximo = 0

End ifIf Txtminimo = empty then

Txtminimo = 0End ifIf Txtprecio = empty then

Txtprecio = 0

End if

If Txtcosto = empty thenTxtcosto = 0

End if

Page 104: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 104/192

 

5. Datos numéricos no pueden grabarse con comas (,)

Otro detalle muy importante a la hora de grabar información es el hecho de que hay queasegurarse de que si un dato numérico está con comas, debe quitárselas. Antes de grabar elregistro debe escribir la siguiente instrucción:

TXTSUELDO = FORMAT(TXTSUELDO,”#######.00”) 

Con estas instrucciones se graba el dato con un formato que no tiene comas; esto debe hacersepara todas las casillas numéricas.

6. Validar la repetición del registro a grabarseNos queda un último aspecto por tratar en relación con una validación especial, y es queantes de grabar el registro preguntemos si otro usuario no lo ha grabado en el procesosimultáneo de grabación. No debe confundirse este proceso con el proceso que se veráen el siguiente capítulo donde desde la introducción del código del empleado secomprueba si existe o no en la tabla.

 Antes de la rutina de grabación y después de la última validación haremos losiguiente:(R009) 

Dim ZZ As rdoResultsetSet ZZ = Con.Openresultset(“Select codigo from Empleados where codigo=‟ “ &

TXTCODIGO & “ ‟ ”, rdopenDynamic)

Select Case ZZ.eofCase True

MstrSql = "Insert into empleados(codigo,nombre,direccion,fechaingreso," _& "sueldo,telefono,estadocivil,sexo,departamento,sucursal," _& "sindicato) Values (" _& " ' " & txtcodigo & " '," _

& " ' " & TXTNOMBRE & " '," _& " ' " & TXTDIRECCION & " '," _& TXTFECHAINGRESO2 & " ," _& TXTSUELDO & "," _& " ' " & TXTTELEFONO & " '," _& " ' " & TXTESTADOCIVIL & " '," _& " ' " & TXTSEXO & " '," _& " ' " & TXTDEPARTAMENTO & " '," _& " ' " & TXTSUCURSAL & " '," _& " ' " & TXTSINDICATO & " ' )"

Con.Execute (MstrSql)

Case False

MsgBox "Este código acaba de ser ingr. por otro usuario", vbCritical, "ERROR"TXTNOMBRE.SetFocusExit Sub

End Select

Sustituya la rutina de grabación por esta nueva rutina y trate de grabar un empleado queya existe (Código=001)

Page 105: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 105/192

 

Guía de trabajo Capítulo No. 11

1. En qué evento de una casilla numérica se debe trabajar para indicar que soloacepte datos numéricos

2. Qué teclas tienen un código ascii menos de 32

3. Qué instrucción en el evento Keypress inhabilita el teclado

4. Qué hace la función InStr en la rutina para aceptar solo datos numéricos

5. Con qué tecla se salta de una casilla a otra por default en un programa en VisualBasic 6.0

6. En qué evento se trabaja para indicar que se salte a otra casilla con la teclaenter

7. Si de la casilla TXTFECHA se desea saltar a la casilla TXTTELEFONO con latecla enter qué instrucciones irían en el evento Keypress de la casillaTXTFECHA

8. Qué hace la función MsgBox

9. En el formulario Frmart haga lo siguiente:

a. Programe la rutina de datos numéricos en la siguientes casillas:

TXTEXISTENCIA, TXTMAXIMO, TXTMINIMO, TXTPRECIOTXTCOSTO

b. Programe que todas las casillas salten de una a otra con la tecla enterc. Haga las siguientes validaciones

c.1 El Nombre no debe ir en blancoc.2 La fecha debe ser correcta, pero puede estar vacía (nula)c.3 Ninguna de las siguientes casillas debe ser negativa (<0)

TXTEXISTENCIA, TXTMAXIMO, TXTMINIMO, TXTPRECIOTXTCOSTO

c.4 El código de la unidad debe existir en la tabla de unidadesc.5 El código de la línea debe existir en la tabla de Líneas

d. Validar la repetición del registro a grabare. Que los datos numéricos no se graben en blancog. Que los datos numéricos no se graben con comas

Page 106: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 106/192

 

Tabla: Articulos

10. En el formulario Frmcli haga lo siguiente:

a. Programe la rutina de datos numéricos en la siguientes casillas:

TXTCREDITOMAX

b. Programe que todas las casillas salten de una a otra con la tecla enterc. Haga las siguientes validaciones

c.1 El Nombre del cliente no debe ir en blancoc.2 El Nombre del contacto no debe ir en blancoc.3 La dirección no debe ir en blancoc.4 La fecha debe ser correcta y no debe estar vacía (nula)c.3 Ninguna de las siguientes casillas debe ser negativa (<0)

TXTCREDITOMAXc.4 El código del vendedor debe existir en la tabla de vendedores

d. Validar la repetición del registro a grabare. Que los datos numéricos no se graben en blancog. Que los datos numéricos no se graben con comas

Tabla Clientes

Page 107: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 107/192

 

11. En el formulario Frmfac haga lo siguiente:a. Programe la rutina de datos numéricos en la siguientes casillas:

TXTSUBTOTAL, TXTDESCUENTO, TXTIMPUESTO,TXTTOTALNETO,TXTPLAZO

b. Programe que todas las casillas salten de una a otra con la tecla enterc. Haga las siguientes validaciones

c.1 La fecha debe ser correcta y no debe estar vacía (nula)c.2 Ninguna de las siguientes casillas debe ser negativa (<0)

TXTSUBTOTAL, TXTDESCUENTO, TXTIMPUESTO,TXTTOTALNETO,TXTPLAZO

c.3 El código del vendedor debe existir en la tabla de vendedoresc.4 El código del cliente debe existir en la tabla de clientesc.5 El código de la sucursal debe existir en la tabla de sucursales

d. Validar la repetición del registro a grabare. Que los datos numéricos no se graben en blancog. Que los datos numéricos no se graben con comas

Tabla Facturas

Page 108: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 108/192

 

Capítulo 12

Edición de datos, Eliminación y Modificación

I. Objetivo General Manipulación de los datos

II. Objetivos específicosProgramar los programas para editar datos, eliminar registros de las tablas ymodificar su información

III. Contenido1. Edición de datos2. Eliminación de registro

3. Modificación de registro

1. Edición de datos

Editar datos es la acción de ir a la tabla a buscar un registro y mostrarlo por pantalla; elconcepto que manejaremos será el siguiente:

a. Introducimos el código del empleado

b. Si el código del empleado existe en la tabla, el resto de sus datos se debenmostrar por pantalla.

c. Si el código del empleado no existe en la tabla, nos debe dejar lista la pantalla (limpia)para agregar el empleado.

Usaremos una forma dinámica de trabajar, por lo tanto trabajaremos en el evento changedel código del empleado. Antiguamente se procedía a pedir por pantalla el código delregistro a buscar; si se encontraba mostraba los datos; si el registro no se encontraba seenviaba por pantalla un mensaje de que no se encontraba el registro buscado; pero estoya no se estila.

 A partir de este momento manejaremos el concepto siguiente: Solo uno de los botones,

SALVAR o MODIFICAR debe estar habilitado (Enabled = true) ya que no es posible hacerlas dos actividades al mismo tiempo; de entrada el botón SALVAR debe estar habilitado yel botón Modificar debe estar Inhabilitad (Enabled = False)

Entre al evento Change del código del empleado (TXTCODIGO) y escriba la siguienterutina (R010):

Page 109: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 109/192

 

Dim ZZ As rdoResultsetSet ZZ = Con.OpenResultset("Select * from Empleados where codigo=' " & txtcodigo & " ' ", rdOpenDynamic)

Select Case ZZ.EOFCase True

Salvar.Enabled = TrueModificar.Enabled = FalseEliminar.Enabled = False

DATOSINICIALEStxtcodigo.SetFocus

Case FalseSalvar.Enabled = FalseModificar.Enabled = TrueEliminar.Enabled = TrueDATOSINICIALESIf Not IsNull(ZZ!nombre) Then

TXTNOMBRE = ZZ!nombreEnd If

End Select

Corra su programa y luego trabajemos explicando la rutina; llame el empleado con código001

La mayoría de los elementos individuales de esta rutina ya se han considerado en estetexto:

Dim ZZ As rdoResultsetSet ZZ = Con.OpenResultset("Select * from Empleados where codigo=' " & txtcodigo & " ' ", rdOpenDynamic)

Creamos una variable de tipo rdoresultset y le asignamos la lectura de la tabla Empleadosbuscando el empleado cuyo código es el de la casilla TXTCODIGO; debe tener el cuidadode considerar que tres cosas pueden cambiar a la hora de hacer la asignación de lalectura a la variable ZZ cuando se lea otra tabla:

a. El nombre de la tabla (Empleados, Articulos, Clientes, Facturas)b. El nombre del campo llave de la tabla:

Empleados Codigo Articulos CodigoClientes CodcliFacturas Factura

c. El nombre del textbox correspondiente al dato de la llave según el formulario detrabajo

Frmemple TXTCODIGOFrmart TXTCODIGOFrmcli TXTCODCLIFrmfac TXTFACTURA

Page 110: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 110/192

 

Tomando en cuenta estos tres puntos anteriores, cual sería la asignación a la variable ZZen el caso de la aplicación de clientes:

Respuesta:

Set ZZ = Con.OpenResultset("Select * from clientes where codcli=' " & txtcodcli & " ' ", rdOpenDynamic)

Cual sería la asignación a la variable ZZ en el caso de la aplicación de Facturas:

Respuesta:

Set ZZ = Con.OpenResultset("Select * from Facturas where Factura=' " & txtfactura & " ' ", rdOpenDynamic)

 A la hora de hacer los ejercicios de este capítulo debe considerar estos aspectosanteriores

Select Case ZZ.EOF

 Abrimos una estructura Case para considerar el Fin de archivo (ZZ.EOF)

Case True

Si el registro no fue encontrado entonces ZZ estará vacío, y por lo tanto estamos en el finde archivo.

Salvar.Enabled = TrueModificar.Enabled = FalseEliminar.Enabled = FalseDATOSINICIALES

En caso de fin de archivo haremos lo siguiente:

Habilitamos el botón Salvar (Salvar.Enabled = True)InHabilitamos el botón Modificar (Modificar.Enabled = False)InHabilitamos el botón Eliminar (Eliminar.Enabled = False)Inicializamos las casillas de la pantalla (DATOSINICIALES) 

Todo esto se hace pues se trata de un empleado nuevo; después el programa pasa aejecutar lo que está después  de la instrucción: End Select, lo cual es el fin de la rutina.

Case False

Si el registro fue encontrado entonces ZZ no estará vacío, y por lo tanto es falso queestamos en el fin de archivo.Salvar.Enabled = FalseModificar.Enabled = TrueEliminar.Enabled = TrueDATOSINICIALES TXTNOMBRE.SetFocus

Page 111: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 111/192

 

En caso de no ser fin de archivo haremos lo siguiente:

InHabilitamos el botón Salvar (Salvar.Enabled = False)Habilitamos el botón Modificar (Modificar.Enabled = True)Habilitamos el botón Eliminar (Eliminar.Enabled = True)Inicializamos las casillas de la pantalla (DATOSINICIALES) 

Si editamos el registro, podríamos querer hacer cambios a los datos o eliminar alempleado de la tabla; por eso habilitamos los botones de Modificar y Eliminar

If Not IsNull(ZZ!nombre) ThenTXTNOMBRE = ZZ!nombre

End If

En este momento los datos del empleado están disponibles, así que procedemos a hacerla asignación de los datos de la tabla a las casillas del formulario; en este caso solohemos hecho la asignación del nombre del empleado.

Después el programa pasa a ejecutar lo que está después   de la instrucción: End Select,lo cual es fin de la rutina.

End Select

 Ahora solo resta completar la edición de datos; para poder completar la edición de datosdebemos estar bien seguros de los nombres de los campos en la tabla de datos, así comolos nombres de las casillas en el formulario; es en este momento que cabe recordar queen capítulos anteriores, se recomendó que en los nombres de las casillas en el formulario,tuviesen el mismo nombre que el de la tabla de datos con el agregado TXTanteponiéndolo al nombre, para facilitar la tarea de la edición del dato; echemos una

mirada a la estructura de la tabla:

 Agreguemos a nuestra rutina de edición la edición de la dirección:

If Not IsNull(ZZ!Direccion) ThenTXTDireccion = ZZ!Direccion

End If

Corra su programa con este nuevo agregado

 Ahora editemos la fecha de ingreso:

Page 112: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 112/192

 

If Not IsNull(ZZ!Fechaingreso) ThenTXTFechaingreso = ZZ!Fechaingreso

End If

 Al editar un campo fecha se debe tener muy en cuenta la siguiente situación:

El formato de la casilla Fechaingreso (Masked Edit) es el siguiente:

## / ## / ####

Si en su sistema no tiene un formato de fecha de la misma manera (## / ## / ## porejemplo), se producirá un error en la asignación.

Corra su programa para su verificación

Haga usted el resto de asignaciones para completar el proceso edición de datos

Nota:  Es en este momento donde aclaramos lo siguiente: El dato de la llave(TXTCODIGO) no debe incluirse en la rutina DATOSINICIALES. Por favor incluyaTXTCODIGO=EMPTY en la rutina DATOSINICIALES y note lo que sucede.

Note que no es posible continuar trabajando; así que recalcaremos el concepto de que enla rutina DATOSINICIALES nunca se deben incluir las casillas que correspondan a losdatos de llave de la tabla. Finalmente quite la instrucción TXTCODIGO=EMPTY de larutina DATOSINICIALES.

2. Eliminación de registro

En el botón Eliminar se programa la rutina que tiene como objetivo eliminar de la tabla dedatos el registro cuya información se ve por pantalla; antes de eliminar un empleado de latabla de empleados se le debe hacer una pregunta al usuario donde se le pregunte sirealmente desea eliminar el registro.

 Agreguemos un empleado con el siguiente Código: 9999-99;  el resto de datosinvénteselos.

 Ahora vaya al evento clic del botón ELIMINAR y escriba lo siguiente (R010b) 

If Msgbox(“Seguro que quiere Eliminar”, vbQuestion + vbYesNo)= vbYes ThenCon.Execute(“Delete from EMPLEADOS where CODIGO=‟ “ & TXTCODIGO &”  „ ”)Con.Committrans

End IfCANCELAR_Click

Corra su aplicación y llame el empleado 9999-99; al ver la información en pantallapresione el botón Eliminar; le aparece lo siguiente:

Page 113: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 113/192

 

Conteste No.

Corra su aplicación y llame de nuevo el empleado 9999-99; al ver la información enpantalla presione de nuevo el botón Eliminar; cuando le aparezca la pregunta si deseaEliminar el registro conteste afirmativamente.

 Al tratar de llamar de nuevo el empleado de código 9999-99 notará que ya no aparece,pues el registro ha sido eliminado.

 Ahora explicaremos las instrucciones de Eliminación de registro:

If Msgbox(“Seguro que quiere Eliminar”, vbQuestion + vbYesNo)= vbYes Then

Msgbox como hemos visto es para enviar un mensaje a pantalla por medio de un cuadro dediálogo; en este cuadro de diálogo o pequeña pantalla debe aparecer el signo de interrogación(Vbquestion) y los botones Yes y No (VbyesNo); pero aquí tenemos una nueva modalidad, y esevaluar de un solo la posible respuesta, y en nuestro caso lo que queremos es evaluar si larespuesta es Yes.

Con.Execute(“Delete from EMPLEADOS where CODIGO=‟ “ & TXTCODIGO &” „ ”)

Con.Committrans

Elimina de la tabla Empleados el empleado cuyo campo Codigo sea igual al dato que seintrodujo en la casilla TTXTCODIGO. De un solo lo elimina de los datos de respaldo encaso de que estemos trabajando con una base de datos que maneje copias de respaldo(Oracle, SQL Server, etc.)

Debe tenerse el cuidado de saber qué cambiar cuando se trata de otra tabla; para el caso,si la rutina se aplicara a la tabla clientes, la instrucción de eliminación sería la siguiente:

Con.Execute(“Delete from Clientes where CODcli=‟ “ & TXTCODcli &” „ ”)

End If

Fin de rutina

CANCELAR_Click

Page 114: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 114/192

 

Después de eliminar queremos que la pantalla quede en blanco, y que el codigo delempleado quede limpio con el cursor posicionado en él; las instrucciones que hacen estastareas están en el botón Cancelar .

3. Modificación de registro

En una aplicación seria debe existir la posibilidad de modificar datos que han sidograbados. La rutina de modificación la haremos en el botón Modificar.

En este botón programamos la rutina para salvar los datos del registro que vemos enpantalla; antes debemos decir que las mismas validaciones que están en el botón Salvar ,deben estar en el botón Modificar, así como las instrucciones para trasformar datosnuméricos de blanco a cero, y las instrucciones para cambiar el formato de los datosnuméricos; así que copiaremos estas instrucciones del botón Salvar al botón modificar.

 Antes de conocer la instrucción para modificar un registro queremos hablar un poco sobrela instrucción Update de Sql.

La instrucción Update de SQL modifica un registro o conjunto de registros; su formato esel siguiente:

Update Tabla set campo1=dato1,campo2=dato2

Si queremos que en la tabla Empleados se modifique un dato en bloque como el hecho deque a todos los empleados se le modifique el campo sindicato y se le grabe en este datola letra “N”; lo hacemos así:

Update Empleados set sindicato =‟N‟ 

Pero si lo que queremos es modificar el sindicato solo del empleado de código 006, lohacemos de la siguiente manera:

Update Empleados set sindicato =‟N‟ where codigo=‟006‟ 

Probemos con una modificación a mas de un campo de la tabla; modificar el nombre porel nombre Juan García, el sueldo por 8600, la fecha de ingreso por 01/10/2003 y eldepartamento por 02 siempre del empleado de código 006; la instrucción la haremos envarias líneas para una mayor comprensión:

Update Empleados set nombre=‟Juan García‟, Sueldo = 8600,Fechaingreso=‟01/10/2003‟, Departamento=‟02‟where codigo=‟006‟ 

Page 115: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 115/192

 

Si tuviésemos que hacer la modificación usando las casillas del formulario comoparámetros , metiendo toda la instrucción Update en una variable (MstrSql) lo haríamosde la siguiente manera:

MstrSql=”Update Empleados set nombre=‟ “ & TXTNOMBRE & “ ‟,” _ & “Sueldo = “ & TXTSUELDO & “, “ _ & “Fechaingreso=‟ “ & TXTFECHAINGRESO & “ ‟,” _ 

& “Departamento=‟ “ & TXTDEPARTAMENTO & “ ‟ ” _& “ where codigo=‟” & TXTCODIGO & “ ‟ ” 

En esta rutina queremos que tengan en cuenta los siguientes puntos:-  Después de la palabra SET debe ir un espacio-  Antes de la palabra WHERE debe ir un espacio-  El ultimo dato que se modifica (antes de la palabra WHERE) no lleva coma al final

(,).

Hagamos la rutina completa; entre al botón Modificar y escriba las siguientesinstrucciones:(R011) 

MstrSql = "Update Empleados set nombre=' " & TXTNOMBRE & " '," _& "Direccion=' " & TXTDIRECCION & " '," _& "Fechaingreso=' " & TXTFECHAINGRESO & " '," _& "Sueldo = " & TXTSUELDO & ", " _& "Telefono=' " & TXTTELEFONO & " '," _& "estadocivil=' " & TXTESTADOCIVIL & " '," _& "sexo=' " & TXTSEXO & " '," _& "departamento=' " & TXTDEPARTAMENTO & " '," _& "sucursal=' " & TXTSUCURSAL & " '," _& "sindicato=' " & TXTSINDICATO & " ' " _& " where codigo=' " & txtcodigo & " ' "

Con.Execute (MstrSql)Con.Committrans

Debe recordar el punto que hemos visto en capítulos anteriores, y es que entre elapóstrofe (comillas simples) y las comillas dobles no va espacio, y que antes y despuésdel símbolo Aspersan (&) debe ir espacio.

Corra su aplicación y modifique los datos de varios empleados.

Un detalle mas para este capítulo; en los tres botones de Salvar,Modificar y Eliminaragregaremos unas instrucciones que controlen lo siguiente: solo se pueda entrar a estasrutinas si se ha introducido un código de empleado; entre a estos botones y agregue lassiguientes instrucciones:

IF TXTCODIGO=EMPTY THENEXIT SUB

END IF

Page 116: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 116/192

 

Guía de trabajo Capítulo No. 12

1. A qué se le llama Editar datos

2. En qué evento se trabaja para editar los datos de un registro

3. Al buscar un registro en la tabla al haber introducido su código qué sucede enlos siguientes casos:

a. Qué sucede con los botones Salvar, Modificar y Eliminar si el registro no esencontrado

b. Qué sucede con los botones Salvar, Modificar y Eliminar si el registro esencontrado

4. Qué debe tomar en cuenta para que la edición de fechas no presente conflicto

5. Qué tienen en común los botones de Salvar y Modificar

6. En el formulario Frmart haga lo siguiente:

a. Programe la rutina de Edición de datosb. Programe la rutina de Eliminación de registroc. Programe la rutina de Modificación

7. En el formulario Frmcli haga lo siguiente:

b. Programe la rutina de Edición de datosb. Programe la rutina de Eliminación de registroc. Programe la rutina de Modificación

8. En el formulario Frmfac haga lo siguiente:

c. Programe la rutina de Edición de datosb. Programe la rutina de Eliminación de registroc. Programe la rutina de Modificación

Page 117: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 117/192

 

Capítulo 13

Navegación en una Tabla de datos

I. Objetivo General Conocer el concepto de navegación

II. Objetivos específicosProgramar en los formularios los botones Ir a primer registro, Siguiente, últimoregistro y anterior

III. Contenido1. Navegación2. Primer Registro3. Ultimo registro4. Siguiente Registro5. Registro Anterior

1. Navegación

Se le llama navegación dentro de una tabla a la actividad de poder ir hacia el registroadelante, al registro anterior, al inicio o al final.

Este mecanismo le permite al usuario poder examinar los datos de una manera dinámica,pues pude ver la información de un empleado sin tener que estar introduciendo cada vezel código del empleado.

Para poder trabajar con estos conceptos le pedimos que cree cuatro botones a los cualesllamará de la siguiente manera:

InicioSiguiente

 AnteriorUltimo

 A cada uno de estos botones debe pegarle una imagen con el mismo nombre; estasimágenes las puede encontrar en la carpeta c:\winsystem\imagenes

Estos botones deben estar dispuestos en la parte inferior de su Tabbed Dialog (tabla) dela siguiente forma:

Page 118: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 118/192

 

2. Primer Registro

Programaremos que al presionar el botón inicio le aparezca por pantalla el primer registrode la tabla (primer código según sea el orden). Entre a este botón al evento clic y escribala siguiente rutina: (R012) 

Dim ZZ As rdoResultsetSet ZZ = Con.OpenResultset("SELECT * FROM EMPLEADOS ORDER BY CODIGO", rdOpenDynamic)ZZ.MoveFirstIf ZZ.EOF ThenElse

txtcodigo = ZZ!CODIGOEnd If

Corra su programa y compruebe que al presionar el botón inicio le aparece el primerregistro

Explicaremos la rutina:

Dim ZZ As rdoResultsetSet ZZ = Con.OpenResultset("SELECT * FROM EMPLEADOS ORDER BY CODIGO", rdOpenDynamic)

En una variable ZZ de tipo rdoResultset leemos la tabla empleados con toda su

información ordenada por codigo; al ordenarla por codigo tenemos la seguridad que elprimer registro será el de menor código según sea el orden:

ZZ.MoveFirst

Nos ubicamos en el primer registro de los que se leyeron

If ZZ.EOF Then

Preguntamos si hay registros leídos , es decir si ZZ esta vacía (ZZ.EOF); si está vacío nohabría registro qué presentar

Else

txtcodigo = ZZ!CODIGO

Si hay información el programa entrará a esta parte, exactamente al primer registro, portanto hacemos la asignación del dato codigo a la casilla TXTCODIGO, que a la vezllamará el resto de datos por la programación que hicimos en su evento Change.

End If

Page 119: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 119/192

 

2. Ultimo Registro

Programaremos que al presionar el botón ultimo le aparezca por pantalla el último registrode la tabla (último código según sea el orden). Entre a este botón al evento clic y escriba

la siguiente rutina: (R013) 

Dim ZZ As rdoResultsetSet ZZ = Con.OpenResultset("SELECT * FROM EMPLEADOS ORDER BY CODIGO", rdOpenDynamic)ZZ.MovelastIf ZZ.EOF ThenElse

txtcodigo = ZZ!CODIGOEnd If

Corra su programa y compruebe que al presionar el botón inicio le aparece el últimoregistro

Explicaremos la rutina:

Dim ZZ As rdoResultsetSet ZZ = Con.OpenResultset("SELECT * FROM EMPLEADOS ORDER BY CODIGO", rdOpenDynamic)

En una variable ZZ de tipo rdoResultset leemos la tabla empleados con toda suinformación ordenada por codigo; al ordenarla por codigo tenemos la seguridad que elúltimo registro será el de mayor código según sea el orden:

ZZ.Movelast

Nos ubicamos en el último registro de los que se leyeron

If ZZ.EOF Then

Preguntamos si hay registros leídos , es decir si ZZ esta vacía (ZZ.EOF); si está vacío nohabría registro qué presentar

Else

txtcodigo = ZZ!CODIGO

Si hay información el programa entrará a esta parte, exactamente al último registro, portanto hacemos la asignación del dato codigo a la casilla TXTCODIGO, que a la vezllamará el resto de datos por la programación que hicimos en su evento Change.

End If

Page 120: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 120/192

 

3. Registro anterior

Programaremos que al presionar el botón “anterior” le aparezca por pantalla el registro

anterior del que mira por pantalla. No tiene sentido hacer este procedimiento (registroanterior) si no tenemos por pantalla los datos de un empleado; por tal razónprogramaremos en este botón que si no existe un empleado por pantalla que no ejecutenada, simplemente que se salga. Entre a este botón al evento clic y escriba la siguienterutina:

If txtcodigo = empty thenExit sub

End if  

 A continuación escriba la siguiente rutina: (R014) 

Dim ZZ As rdoResultset

Set ZZ = Con.OpenResultset("SELECT * FROM EMPLEADOS WHERE CODIGO<' " & _txtcodigo & " ' ORDER BY CODIGO", rdOpenDynamic)

ZZ.MoveLastIf ZZ.EOF ThenElse

txtcodigo = ZZ!CODIGOEnd If

Corra su programa y ubíquese en el último registro, y a partir del último registro presioneel botón “anterior”

Explicaremos la rutina:

Dim ZZ As rdoResultset

Set ZZ = Con.OpenResultset("SELECT * FROM EMPLEADOS WHERE CODIGO<' " & _txtcodigo & " ' ORDER BY CODIGO", rdOpenDynamic)

En una variable ZZ de tipo rdoResultset leemos la tabla empleados con la informaciónordenada por codigo pero de los registros cuyo código es menor del que está en pantalla;al ordenarla por codigo tenemos la seguridad de que el último registro de los que fueronleídos será el anterior al registro que está en pantalla

ZZ.Movelast

Nos ubicamos en el último registro de los que se leyeron

If ZZ.EOF Then

Preguntamos si hay registros leídos , es decir si ZZ esta vacía (ZZ.EOF); si está vacío nohabría registro qué presentar

Page 121: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 121/192

 

Else

txtcodigo = ZZ!CODIGO

Si hay información el programa entrará a esta parte, exactamente al último registro, portanto hacemos la asignación del dato codigo a la casilla TXTCODIGO, que a la vezllamará el resto de datos por la programación que hicimos en su evento Change.

End If

4. Registro Siguiente

Programaremos que al presionar el botón “siguiente” le aparezca por pantalla el registrosiguiente del que mira por pantalla. No tiene sentido hacer este procedimiento (registrosiguiente) si no tenemos por pantalla los datos de un empleado; por tal razónprogramaremos en este botón que si no existe un empleado por pantalla que no ejecute

nada, simplemente que se salga. Entre a este botón al evento clic y escriba la siguienterutina:

If txtcodigo = empty thenExit sub

End if  

 A continuación escriba la siguiente rutina: (R015) 

Dim ZZ As rdoResultset

Set ZZ = Con.OpenResultset("SELECT * FROM EMPLEADOS WHERE CODIGO>' " & _txtcodigo & " ' ORDER BY CODIGO", rdOpenDynamic)

ZZ.MovefirstIf ZZ.EOF ThenElse

txtcodigo = ZZ!CODIGOEnd If

Corra su programa y ubíquese en el primer registro, y a partir del primer registro presioneel botón “siguiente”

Explicaremos la rutina:

Dim ZZ As rdoResultset

Set ZZ = Con.OpenResultset("SELECT * FROM EMPLEADOS WHERE CODIGO>' " & _txtcodigo & " ' ORDER BY CODIGO", rdOpenDynamic)

En una variable ZZ de tipo rdoResultset leemos la tabla empleados con la informaciónordenada por codigo pero de los registros cuyo código es mayor del que está en pantalla;al ordenarla por codigo tenemos la seguridad de que el primer registro de los que fueronleídos será el siguiente al registro que está en pantalla

Page 122: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 122/192

 

ZZ.Movefirst

Nos ubicamos en el primer registro de los que se leyeron

If ZZ.EOF Then

Preguntamos si hay registros leídos , es decir si ZZ esta vacía (ZZ.EOF); si está vacío no

habría registro qué presentarElse

txtcodigo = ZZ!CODIGO

Si hay información el programa entrará a esta parte, exactamente al primer registro, portanto hacemos la asignación del dato codigo a la casilla TXTCODIGO, que a la vezllamará el resto de datos por la programación que hicimos en su evento Change.

End If

Page 123: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 123/192

 

Guía de trabajo Capítulo No. 13

1. En el formulario Frmart haga lo siguiente:

d. Programe la rutina de ir al primer registrob. Programe la rutina de ir al registro siguiente

c. Programe la rutina de ir al último registroe. Programe la rutina de ir al registro anterior

2. En el formulario Frmcli haga lo siguiente:

e. Programe la rutina de ir al primer registrob. Programe la rutina de ir al registro siguientec. Programe la rutina de ir al último registroe. Programe la rutina de ir al registro anterior

3. En el formulario Frmfac haga lo siguiente:

f. Programe la rutina de ir al primer registrob. Programe la rutina de ir al registro siguientec. Programe la rutina de ir al último registroe. Programe la rutina de ir al registro anterior

Page 124: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 124/192

 

Capítulo 14

Presentación de Datos por Columnas

I. Objetivo General Conocer el concepto de Consulta Global de Datos

II. Objetivos específicosConocer el control VsFlexGrid y Remote Data Control, y la Interface entre SQLy Visual Basic

III. Contenido1. Consulta de datos2. Control VsFlexGrid3. Control Remote Data Control4. Conexión entre el VsFlexGrid y el Remote Data Control5. Seleccionando un registro de la Pantalla de Datos en columnas6. Títulos y Anchuras de columnas

1. Consulta de datos

En este capítulo manejaremos por primera vez el concepto de presentación de datos enforma de columnas; una de las ventajas que tienen programas como Excel es que nospermite ver la información total en diferentes columnas, y de esa manera tener una visiónde varios registros a la vez.

En Visual Basic podemos tener una presentación de los datos en una pantalla dondepodamos ver también un conjunto de registros, y a la vez poder seleccionar entre ellosuno, al cual podamos dar un tratamiento individual.

2. Control VsFlexGrid

Para poder hacer una presentación de los datos en columnas necesitamos de dos nuevoscomponentes: VsFlexGrid y Remote Data Control; estos componentes no estándisponibles en la sección de controles de Visual Basic, así que tendrá que integrarlos a lasección de controles; pero antes debe entender que la presentación de datos encolumnas la haremos en la guía o tabulador de su tabbed dialog (tabla) denominada:

Consulta. 

 Agregue el control VideoSoft Vsflex 6.0 Control (DAO); no lo busque por ordenalfabético, lo encontrará al inicio de la lista de componente del cuadro de componentes;este control le generará varias figuras, pero el que usaremos será el siguiente:

Page 125: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 125/192

 

Pegue un VsFlexGrig en el tabbed dialog de tal manera que cubra todo el espacio de laguía o tabulador Consulta; debe quedarle así:

Trabajaremos las siguientes propiedades de este control:

a. Name: Vsb. Fiexed Cols: 0 (para que la primera columna (color gris) no

quede fija)

3. Control Remote Data Control 

 Agregue el control Microsoft Remote Data Control 6.0 ; este control le generará lasiguiente figura:

No debe confundir este control con uno llamado Data:

Page 126: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 126/192

 

Pegue un Remote Data Control (MSRDC) en el tabbed dialog de tal manera que quedepor debajo del VsFlexGrid; debe quedarle de la siguiente manera:

Trabajaremos las siguientes propiedades de este control:

a. Name: Datos

b. DataSourceName:

En esta propiedad le indicaremos con qué ODBC trabajaremos; vaya a esta propiedad yabra el combo que usted verá; le aparecerá una lista con varios ODBC:

Seleccione el ODBC llamado Sistema. 

c. Sql:

En esta propiedades indicaremos qué tabla de datos queremos leer; vaya a estapropiedad y escriba lo siguiente: Select * From Empleados 

4. Conexión entre el VsFlexGrid y el Remote Data Control

Para poder presentar los datos en pantalla es necesario hacer una conexión entre elVsflexGrid y el MSRDC; tal conexión la haremos siguiendo estos pasos:

a. Haga clic sobre el Vsflexgrid (Vs) pues éste debe estar seleccionado para hacer

la conexiónb. Vaya a la propiedad DataSource y abra el combo que le aparece:

Page 127: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 127/192

 

Note que le aparece el nombre del MSRDC que hemos hecho en pantalla (Datos); debeseleccionarlo

c. Vaya a la propiedad Datamode y abra el combo que le aparece:

Debe seleccionar la opción: 1 – flexDMBound 

Esto permitirá ver el desplazamiento en la pantalla entre las celdas

 Antes de correr su aplicación haga clic en la guía o tabulador Datos Generales 

Corra su aplicación

5. Seleccionando un registro de la Pantalla de Datos en columnas

Entraremos a un detalle muy interesante, y es el hecho de poder seleccionar un registrode la pantalla que presenta los datos en columnas; al seleccionarlo, presentaremos susdatos individualmente en la pantalla de datos generales; siga estos pasos:

a. Pegue un botón en la parte inferior derecha del tabbed dialog, por debajo delVsflexgrid; este botón debe llamarse Seleccionar, y en la propiedad captionDebe tener el rótulo: Seleccionar; debe quedarle así:

b. Ahora entre al evento clic del botón Seleccionar y escriba lo siguiente:

Vs.Col =0TXTCODIGO=Vs.TextTabla.Tab=0

Corra su aplicación y pruebe seleccionar un registro de la pantalla donde se le presentanlos datos en columnas.

Explicaremos la tres instrucciones anteriores:

Vs.Col =0

Ubica el cursor en la columna 0 del VsFlexgrid; en la columna cero (0) se encuentra eldato del código del empleado

Page 128: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 128/192

 

TXTCODIGO=Vs.Text

 Asignamos a la casilla TXTCODIGO, el texto de la columna cero (0) que es el código delempleado

Tabla.Tab=0

Nos ubicamos en la guía o tabulador Cero del tabbed dialog, que es donde está la partede los datos generales; recuerde que nuestro tabbed dialog tiene dos guías o tabuladores:

Tab=0  Datos GeneralesTab=1 Consulta

 Aquí cabe solucionar un problema que se ha dado al trabajar la parte de Consulta deltabbed dialog, y es el hecho de que si al correr su aplicación usted en la pantalla está enla parte del tabbed dialog de Consulta, le aparece de entrada la pantalla de Consulta, y laque siempre debe salir es la parte de: Datos Generales; esto lo solucionamos agregandoa la rutina: DATOSINICIALES la instrucción:

Tabla.Tab = 0

Haga este último cambio y corra su aplicación:

6. Títulos y Anchuras de columnas

En este inciso trabajaremos en la definición de títulos y anchura de las columnas de laconsulta; de entrada usted puede notar que los títulos de las columnas en la consulta sonlos nombres de los campos de la tabla de datos, y que la anchura no corresponde al datoque aparece, para el caso, la anchura de la dirección es muy pequeña.

Para definir títulos y columnas lo haremos en el evento clic del tabbed dialog; haga dobleclic sobre cualquiera de las guías del tabbed dialog (Datos personales o Consulta); leaparecerá el evento Dobleclic:

Private Sub tabla_DblClick()

End Sub

 Abra el evento Clic y escriba la siguiente rutina:(R016)

Select Case tabla.TabCase 1

Datos.RefreshWith Vs

.Row = 0

Page 129: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 129/192

 

.Col = 0

.Text = "Código"

.Col = 1

.Text = "Nombre del Empleado"

.Col = 2

.Text = "Direccion"

.Col = 3.Text = "Fecha"

.Col = 4

.Text = "Sueldo"

.Col = 5

.Text = "Telefono"

.Col = 6

.Text = "Est.Civil"

.Col = 7

.Text = "Sexo"

.Col = 8

.Text = "Depto."

.Col = 9

.Text = "Sucursal"

.Col = 10

.Text = "Sindicato"

.ColWidth(0) = 800

.ColWidth(1) = 2300

.ColWidth(2) = 4200

.ColWidth(3) = 1000

.ColWidth(4) = 1200

.ColWidth(5) = 800

.ColWidth(6) = 800

.ColWidth(7) = 800

.ColWidth(8) = 800

.ColWidth(9) = 800

.ColWidth(10) = 800End WithVs.SetFocus

End Select

Escriba esta rutina en el lugar que se le ha indicado y corra su aplicación:

Explicaremos esta rutina:

Select Case tabla.TabCase 1

Esta rutina solo se ejecutará cuando se haga clic en la guía No. 1 del tabded dialog(Consulta)

Page 130: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 130/192

 

Datos.Refresh

Esta instrucción actualiza cualquier cambio que se haya hecho a la tabla de datos; esto esmuy importante, pues si no usamos esta instrucción se dará el siguiente fenómeno: siusted agrega un nuevo registro, no lo verá en la consulta a menos que vuelva a correr suaplicación.

With Vs

End With 

Esto indica que todo lo se haga entre la instrucción With Vs y la instrucción End With debe agregarse el nombre Vs; para el caso note las siguientes instrucciones:

.Row = 0

.Col = 0

.Text = "Código"

Estas tres instrucciones deberían escribirse de la siguiente manera:

Vs.Row = 0Vs.Col = 0Vs.Text = "Código"

Esta forma anterior se abrevia utilizando With Vs y End With

.Row = 0

Ubica el cursor en la Fila 0

.Col = 0

.Text = "Código"

Ubica el cursor en la columna 0 y escribe como texto el rótulo: Código

.Col = 1

.Text = "Nombre del Empleado"

Ubica el cursor en la columna 1 y escribe como texto el rótulo: Nombre del Empleado.

Nota: se está trabajando siempre en la Fila 0

Los otros rótulos siguen la misma explicación.

.ColWidth(0) = 800

.ColWidth(1) = 2300

Page 131: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 131/192

 

Se le da a la columna 0 la anchura de 800 pixelesSe le da a la columna 1 la anchura de 2300 pixeles

Las otras instrucciones sobre la anchura de columnas siguen la misma explicación.

Nota: no se puede decir el No. de pixeles que debe usarse en cada caso; debe hacerlo a

prueba y ver cómo le parece en cada caso.

Vs.SetFocus

Finalmente nos aseguramos que el cursor quede ubicado en la pantalla de los datos(VsFlexgrid)

Page 132: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 132/192

 

Guía de trabajo Capítulo No. 14

1. En qué propiedad del VsFlexGrid se indica si se desea o no tener columnasfijas

2. En qué propiedad del Remote Data Control se indica a qué ODBC se conectará

3. En qué propiedad del Remote Data Control se indica qué de datos se leerá

4. En qué propiedad del VsFlexGrid se conecta con el Remote Data Control

5. En qué propiedad del VsFlexGrid se indica que el movimiento del cursor se mireal desplazarse por los datos

6. En el formulario Frmart haga la consulta de datos por columnas

7. En el formulario Frmcli haga la consulta de datos por columnas

8. En el formulario Frmfac haga la consulta de datos por columnas

Page 133: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 133/192

 

Capítulo 15

Pantallas de ayuda para enlace con Tablas

1. Objetivo General Conocer el concepto de Formularios de ayuda

II. Objetivos específicosCrear un sistema de que permita llamar una lista de elementos de donde sepueda seleccionar un determinado registro no conociendo su código

III. Contenido 1. Creando formulario de ayuda

1. Creando un formulario de ayuda

En este capítulo queremos agregar un concepto nuevo: Pantallas de ayuda; en elformulario Frmemple usted tiene el punto que al introducir el código del departamento leaparece el nombre del departamento, así como también lo relativo a la sucursal; sería demucha ayuda que al presionar sobre un botón apareciera la lista de departamentos, y deesa lista poder seleccionar el departamento que se desea, y a eso nos dedicaremos eneste capítulo.

Siga los siguientes pasos:a. Crearemos un nuevo formulario al que llamaremos Frmlis con el siguiente título

Centre el formulario en la pantalla.

b. Pegue un VsFlexGrid en el formulario de tal manera que cubra casi el total del

Page 134: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 134/192

 

espacio del formulario; pegue un Remote Data Control en la parte inferior de supantalla, de igual manera como se hizo para la consulta de datos en el capítuloanterior.

Debe trabajar las siguientes propiedades del Remote Data Control:

Name: DataDataSourceName: conéctelo a su ODBC (Sistema)

Debe trabajar las siguientes propiedades del VsflexGrid (Vs):

Name: VsFixedCols: 0Datasource: DataDatamode: 1 – flexDMbound

Debe tener lo siguiente:

c. Pegue un textbox en la parte superior del Vsflexgrid y llámelo: Busqued. Pegue un botón en la parte inferior derecha del Vsflexgrid y llámelo:

Seleccionare. Cree tres variables de módulo de tipo string: Mstexto, Mstexto2 y ListaSql 

Public Mstexto as StringPublic Mstexto2 as StringPublic ListaSql as String

Page 135: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 135/192

 

f. Entre al evento clic del botón Seleccionar y escriba lo siguiente:

Vs.col=0Mstexto=Vs.textVs.col=1Mstexto2=Vs.text

Unload me

g. Vaya al form_load y escriba:

Frmlis.Caption=TituloformData.Sql=ListaSqlData.Refresh

h. Estando en el form_load abra un Nuevo evento del formulario llamado: Activate y escriba lo siguiente: (R1400)

With Vs.Row = 0.Col = 0.Text =”Código” .Col = 1.Text =”Descripción” 

.ColWidth(0)=1000

.ColWidth(1)=8000

End With

If Vs.Rows=1 thenMsgbox “No hay datos en la tabla” Unload me

ElseVs.SetfocusVs.Row = 1Vs.col = 0

End if

i. Entre al evento Keypress del textbox Busque y escriba lo siguiente: (R1401)

If KeyAscii = 13 ThenLar = Trim(Busque.Text)SQL = ListaSql + " Where " & Cadena & " Like '%" & Lar & "%'"DATA.SQL = SQLDATA.Refresh

End If

Page 136: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 136/192

 

With Vs.Row = 0.Col = 0.Text = "Código".Col = 1.Text = "Descripción"

.ColWidth(0) = 1000

.ColWidth(1) = 8000

End With

 j. Ahora vaya al formularario Frmemplek. Si la anchura de su textbox es pequeña, ampliar un poco mas, así:

l. Haga un pequeño botón incrustado en el textbox txtdepartamento, al cualllamará: boton1; el caption de este botón debe tener tres puntos (...), así:

Nota:  para que el botón quede bien incrustado dentro de la casilla auxíliese de laspropiedades Heigth, Top , Width y Left

m. Entre al evento clic del botón Boton1 y escriba lo siguiente: (R1402)

ListaSql=”Select codigo,nombre from departamentos” Cadena=”Nombre”

 Tituloform=”Lista de Departamentos” Mstexto=emptyMstexto2=emptyFrmlis.Show 1If Mstexto=empty thenElse

Txtdepartamento=MstextoTxtnomdepartamento=Mstexto2

End if

n. Cree a nivel de módulo las siguientes variables de tipo String: cadena,TituloformPublic Cadena as StringPublic Tituloform as String

Estamos listos para probar nuestra aplicación; el formulario que debe correr es Frmemple.Pregunta:

Qué tenemos que hacer para que funcione para sucursal

Page 137: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 137/192

 

a. Haga un pequeño botón incrustado en el textbox txtsucursal, al cualllamará: boton2; el caption de este botón debe tener tres puntos (...), así:

Nota: para que el botón quede bien incrustado dentro de la casilla auxíliese de las

propiedades Heigth, Top , Width y Left

b. Entre al evento clic del botón Boton2 y escriba lo siguiente:

ListaSql=”Select codsuc,nomsuc from sucursales” Cadena=”Nomsuc” Tituloform=”Lista de Sucursales” Mstexto=emptyMstexto2=emptyFrmlis.Show 1If Mstexto=empty then

ElseTxtsucursal=MstextoTxtnomsucursal=Mstexto2

End if

Page 138: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 138/192

 

Guía de trabajo Capítulo No. 15

1. En el formulario Frmart haga el sistema de ayuda para la línea y la unidad demedida

2. En el formulario Frmcli haga el sistema de ayuda para el vendedor

3. En el formulario Frmfac haga el sistema de ayuda para la sucursal, vendedor ycliente

Page 139: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 139/192

 

Capítulo 16

Manejo de Fotografía

I. Objetivo General Conocer el concepto de Manejo de imágenes

II. Objetivos específicosCrear un sistema de que permita llamar buscar un imagen y grabarla en elregistro de un empleado; control PictureBox

III. Contenido 

1. Agregar un campo (textbox) a la captura de datos2. Sistema buscador de fotografía

Nota: Asegurarse de tener los siguientes subdirectorios:

C:\Winsystem\FotosEmp con fotos de empleadosC:\Winsystem\FotosCli con fotos de clientesC:\Winsystem\FotosArt con fotos de artículos

1. Agregar un campo (textbox) a la captura de datos

Trabajaremos en el formulario Frmemple; queremos agregar un nuevo dato a la captura de datos:Fotografía (TXTFOTOGRAFIA); agregue este textbox en un espacio de su formulario; debe

quedarle de la siguiente manera:

Page 140: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 140/192

 

La casilla TXTFOTOGRAFIA debe tener una longitud máxima de 250; ahora vaya a la base dedatos y en la tabla Empleados agregue un campo llamado Fotografia,tipo text y una longitud 250; recuerde que en access debe indicar que permita longitud cero (0).

 Ahora debe incluir este nuevo textbox en la programación de los siguientes lugares:

a. Rutina Datosiniciales

TXTFOFOGRAFIA=EMPTY

b. Botón Salvar (lo que está en negrita es lo que debe agregar a la instrucción Insert)

MSTRSQL = "Insert into empleados(fotografia,codigo,nombre,direccion,fechaingreso," _& "sueldo,telefono,estadocivil,sexo,departamento,sucursal," _& "sindicato) Values (" _

& "'" & TXTFOTOGRAFIA & "'," _

& "'" & txtcodigo & "'," _

c. Botón modificar (lo que está en negrita es lo que debe agregar a la instrucción Update)

MSTRSQL = "Update Empleados set nombre='" & TXTNOMBRE & " '," _

& "fotografia='" & TXTFOTOGRAFIA & "'," _

& "Direccion='" & TXTDIRECCION & "'," _

C. Evento Change del textbox TXTCODIGO (lo que está en negrita es lo que debeagregar )

If Not IsNull(ZZ!sindicato) ThenTXTSINDICATO = ZZ!sindicato

End If

If Not IsNull(ZZ!FOTOGRAFIA) ThenTXTFOTOGRAFIA = ZZ!FOTOGRAFIA

End If

End Select

d. Agregarle a TXTFOTOGRAFIA en el evento Gotfocus la instrucción SendKey

Para probar si todo está correcto le pedimos que grabe un empleado nuevo con códigoXXX, con datos inventados, y en el dato de la fotografía escriba: FOTO1.

Después de agregar el empleado, llámelo de nuevo y modifique cualquier dato, menos eldato de la fotografía:

Page 141: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 141/192

 

2. Sistema buscador de fotografía

 Ahora agregaremos un sistema que permita buscar la fotografía del empleado entre un grupo defotografías.

Pegue un Picture box ( ) por encima del TXTFOTOGRAFIA, así:

Lo que sigue es preparar un sistema que nos permita ver las fotografías de los empleados en unalista y a la vez poder seleccionar una fotografía de esta lista:

Siga con mucho cuidado los siguientes pasos:

a. Haga un nuevo formulario llamado: Frmlisd (centrado en pantalla)

b. Pegue un DriverListbox ( )y llamarlo: CONTROL1

Page 142: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 142/192

 

C. Por debajo deL driverListbox CONTROL1, pegue un Dirlistbox ( ) y llamarloCONTROL2

d. Por la derecha del Dirlistbox CONTROL2 pegue un FileListbox ( ) y llamarlo:CONTROL3

e. Por debajo de CONTROL2 y CONTROL3 pegue un label al cual debe llamarRUTA (caption en blanco)

Page 143: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 143/192

 

f. Por la derecha de CONTROL3 pegue un Picture box y llamarlo cuadro

g. Por debajo del Picture box CUADRO pegue un botón y llamarlo SELECCIONAR

El montaje finalmente debe quedarle de la siguiente manera:

h. Entre al evento Change de CONTROL1 y escriba:

CONTROL2.path = CONTROL1.Drive

i. Entre al evento Change de CONTROL2 y escriba:

CONTROL3.path = CONTROL2.path

 j. Entre al evento clic de CONTROL3 y escriba lo siguiente:

If Mid$(Control3.Path, Len(Control3.Path), 1)=”\” Then RUTA=CONTROL3.Path + CONTROL3.FileName

ElseRUTA=CONTROL3.Path + “\” +CONTROL3.FileName 

End If

CUADRO.Picture = LoadPicture(RUTA)

Page 144: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 144/192

 

k. Entre al evento Keyup de CONTROL3 y escriba lo siguiente: (la misma rutinaanterior)

If Mid$(Control3.Path, Len(Control3.Path), 1)=”\” Then RUTA=CONTROL3.Path + CONTROL3.FileName

Else

RUTA=CONTROL3.Path + “\” +CONTROL3.FileName End If

CUADRO.Picture = LoadPicture(RUTA)

l. Crear una variable a nivel de módulo de tipo string llamado MSFILEPublic MSFILE as String

m. Entre al evento clic del botón Seleccionar y escriba lo siguiente:

Msfile = RUTAUnload me

n. Ahora regrese al formulario Frmemple y pegue un botón por debajo deTXTFOTOGRAFIA y llamarlo LLAMARFILE; en la propiedad caption escriba:

Buscar fotografía

o. Entre al evento clic del botón LLAMARFILE y escriba lo siguiente:

MSFILE=EmptyFrmlisd.Show 1TXTFOTOGRAFIA = MSFILEDim FOTO As StringFOTO = TXTFOTOGRAFIA

MX = Dir(FOTO)If MX <> “” Then 

CUADRO.Picture = LoadPicture(FOTO)Else

CUADRO.Picture = LoadPicture()End if

Page 145: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 145/192

 

Nos hace falta un último detalle muy importante; entre al evento Change de TXTCODIGOubíquese en la parte que donde está el siguiente bloque:

If Not IsNull(ZZ!FOTOGRAFIA) ThenTXTFOTOGRAFIA = ZZ!FOTOGRAFIA

End If

Sustituya este bloque por el siguiente:

If Not IsNull(ZZ!FOTOGRAFIA) Then

TXTFOTOGRAFIA = ZZ!FOTOGRAFIADim FOTO As StringFOTO = TXTFOTOGRAFIAMX = Dir(FOTO)If MX <> “” Then 

CUADRO.Picture = LoadPicture(FOTO)ElseCUADRO.Picture = LoadPicture()

End if

ElseCUADRO.Picture = LoadPicture()

End If

 Además debe agregar en la rutina DATOSINICIALES la siguiente instrucción:

CUADRO.Picture = LoadPicture()

Corra su aplicación

Esta rutina presenta el gran problema que cuando selecciona un archivo que no es unaimagen se trunca; para solucionar este problema vaya a la propiedad Pattern delFileListBox llamado CONTROL3 y usted encontrará lo siguiente:

*.*Borre y escriba esto: *.BMP; *.JPG; *.GIF

No deje espacios intercalados

Corra su aplicación

Guía de trabajo Capítulo No. 16

1. En el formulario Frmart implemente el sistema de fotografia de artículos

2. En el formulario Frmcli implemente el sistema de fotografia de clientes

Page 146: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 146/192

 

Capítulo 17

Mejorando la consulta

I. Objetivo General Crear un ambiente de consulta mas dinámico

II. Objetivos específicosPoder buscar dentro de la tabla cualquier dato en cualquier campo;ordenamiento de los datos e interface entre Visual Basic y SQL

III. Contenido 

1. Busca de datos en la consulta2. Ordenar datos3. Interface entre Visual Basic y SQL

1. Busca de datos en la Consulta

En este capítulo le daremos a la consulta de datos, 4 aspectos que harán de nuestraconsulta una actividad mas dinámica para el usuario.

Para iniciar pegue un textbox en la parte superior del Vsflexgrid y llámelo: Busquetal y como lo hizo en el capítulo No. 15; debe quedarle así:

Entre al evento Keypress del textbox Busque y escriba lo siguiente: (R1701a)

ListaSql = "Select * from empleados"Cadena = ComboList.TextIf KeyAscii = 13 Then

Lar = Trim(Busque.Text)

SQL = ListaSql + " Where " & Cadena & " Like '%" & Lar & "%'"Datos.SQL = SQLDatos.RefreshCargarconsulta

End If

Page 147: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 147/192

 

 Ahora haga una rutina llamada Cargarconsulta y que tenga las siguientes instrucciones:(R1701)

With Vs.Row = 0.Col = 0.Text = "Código"

.Col = 1.Text = "Nombre del Empleado"

.Col = 2

.Text = "Direccion"

.Col = 3

.Text = "Fecha"

.Col = 4

.Text = "Sueldo"

.Col = 5

.Text = "Telefono"

.Col = 6

.Text = "Est.Civil"

.Col = 7

.Text = "Sexo"

.Col = 8

.Text = "Depto."

.Col = 9

.Text = "Sucursal"

.Col = 10

.Text = "Sindicato"

.ColWidth(0) = 800

.ColWidth(1) = 2300

.ColWidth(2) = 4200

.ColWidth(3) = 1000

.ColWidth(4) = 1200

.ColWidth(5) = 800

.ColWidth(6) = 800

.ColWidth(7) = 800

.ColWidth(8) = 800

.ColWidth(9) = 800

.ColWidth(10) = 800End WithVs.SetFocus

 Ahora pegue por debajo de su Vsflexgrid un combobox al que llamaremos ComboList;este combo debe tener las propiedades de siempre y en la lista de elementos debe tenertodos los campos de la tabla Empleados (el primer elemento de la lista que sea el camponombre):

Page 148: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 148/192

 

Debe verse de la siguiente manera:

Entre al evento clic del tabbed dialog (tabla) y agregue la siguiente instrucción:ComboLIst.ListIndex = 0 (inmediatamente después de la instrucción: Datos.refresh 

 Ahora corra su aplicación y haga las pruebas de consulta variando los campos donde sedesea consultar.

2. Ordenar datos

 Ahora haremos una rutina que nos permita poder ordenar los dataos de consulta porcualquier campo de la tabla. Pegue por debajo de su Vsflexgrid un combobox al quellamaremos ComboOrdenar; este combo debe tener las propiedades de siempre y en lalista de elementos debe tener todos los campos de la tabla Empleados (el primerelemento de la lista que sea el campo Codigo):

Debe verse de la siguiente manera:

 Ahora cree una variable a nivel de módulo de string llamada Ordenar:Public Ordenar as String

Entre de nuevo al evento keypress del textbox Busque y note los cambios que debe hacer

a la rutina:ListaSql = "Select * from empleados"Cadena = ComboList.TextOrdenar = ComboOrdenar.TextIf KeyAscii = 13 Then

Lar = Trim(Busque.Text)SQL = ListaSql + " Where " & Cadena & " Like '%" & Lar & "%' order by " & Ordenar

Datos.SQL = SQL

Page 149: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 149/192

 

Datos.RefreshCargarconsulta

End If

 Ahora entre al evento clic del combobox ComboOrdenar y escriba lo siguiente:Ordenar = ComboOrdenar.Text

ListaSql = "Select * from empleados order by " & OrdenarDatos.SQL = ListaSqlDatos.RefreshCargarconsulta

Entre al evento clic del tabbed dialog (tabla) y agregue la siguiente instrucción:Comboordenar.ListIndex = 0 (inmediatamente después de la instrucción:Datos.refresh; corra su aplicación y ordene la consulta por los capos que desee

3. Interface entre Visual Basic y SQL

 Ahora le daremos a nuestra consulta una de las herramientas mas poderosas en todaconsulta, y es hacer una interface con Sql, es decir, que nos permita ejecutarinstrucciones de SQL desde Visual Basic; claro está que esta herramienta solo le serviráal usuario que conoce de SQL.

Cuando tenemos necesidad de hacer una consulta por medio del lenguaje SQLusualmente entramos a la base de datos (Access, Oracle, Sql Server u otra) y desde allíejecutamos las instrucciones; esto resulta a veces molesto pues se tiene que cambiar deambiente; lo mejor es poder hacer esta tarea desde el ambiente de Visual Basic.

Pegue por debajo del Tabbed dialog (Tabla) en la parte de consulta un textbox al cualllamaremos: TextSQL; debe quedarle de la siguiente manera:

Este textbox debe tener programado que no se puedan introducir las camillas dobles,

pero si los apóstrofes; entre al evento keypress y escriba lo siguiente:

If KeyAscii = 34 ThenKeyAscii = 0

End If

En este mismo evento agregue la siguiente programación: (R1702)

Page 150: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 150/192

 

If KeyAscii = 13 ThenIf UCase(Mid(TextSql, 1, 6)) <> "SELECT" Then

MsgBox "Solo se aceptan sentencia SELECT; REVISE", vbCriticalExit Sub

End IfOn Error GoTo Errores

Datos.SQL = TextSqlDatos.RefreshExit Sub

Errores:MsgBox "Existe un error en su sentencia SQL; REVISE", vbCriticalTextSql.SetFocus

End If

Para probar esta nueva rutina pruebe con las siguientes instrucciones de SQL:a. Select codigo,nombre from empleados

Muestra la información del codigo y el nombre del empleado

b. Select count(codigo) from empleados

Muestra el No. registros en la tabla Empleados

c. select departamento,sum(sueldo) as Sueldos from empleados group by departamento

Muestra la sumatoria de salarios por departamento

Corra su aplicación

Insistimos en que esta herramienta solo le servirá al usuario que conoce de SQL.

Esta herramienta presenta un serio problema; después de hacer cualquiera de lasconsultas de Sql propuestas, regrese a la pantalla de Datos generales y vuelva a lapantalla de Consulta; qué problema nota?

Entre al evento clic del Tabbed dialog (tabla) y antes de la instrucción: Datos.Refresh escriba: Datos.Sql=”Select * from Empleados” 

 A continuación explicaremos la rutina de interface de SQL:

If UCase(Mid(TextSql, 1, 6)) <> "SELECT" Then

Solo debemos permitir al usuario hacer consultas; el usuario no debe eliminar datos(Delete), ni modificar datos (Update); note que todos estos commandos tienen 6 letras; lafunción Mid nos ayuda a extraer un determinado string a partir de una determinadaposición; en ente caso queremos saber si el usuario en las primeras 6 letras ha escritoalgo diferente a la palabra Select (SELECT)

Page 151: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 151/192

 

MsgBox "Solo se aceptan sentencia SELECT; REVISE", vbCriticalExit Sub

Si el usuario introdujo una frase diferente a SELECT debe enviarle un mensaje indicandoque solo puede usar el commando Select y a la vez sacar al usuario (Exit)

End If

Si se llegó a este punto es que se trata de una instrucción Select; ahora el trabajoconsistirá en detectar si la instrucción tiene algún Error.

On Error GoTo Errores

En caso de que se detecte algún error lo enviamos a ejecutar las instrucciones que seencuentran en la etiqueta Errores (ver mas abajo)

Datos.SQL = TextSqlDatos.RefreshExit Sub

Mientras no haya errores enviamos la instrucción SQL (TextSQL) al control Remote DataControl para que la ejecute y a la vez refresque los datos y siempre hay que hacer unasalida, o de lo contrario el programa entraría a ejecutar las instrucciones de la etiquetaErrores.

Errores:

El programa entra a la etiqueta de Errores cuando se ha detectado un error en lainstrucción SQL. Lo importante de programar esta rutina es que de no hacerlo elprograma se truncaría al detectarse un error.

MsgBox "Existe un error en su sentencia SQL; REVISE", vbCriticalTextSql.SetFocus

Para probar la rutina de error ejecute las siguientes instrucciones:

a. Select codigo,nombre from empleadoEl error en esta instrucción es que la tabla se llama Empleados noEmpleado

b. Select codigo nombre from empleadosEl error es que entre cada campo debe ir coma (,)

Guía de trabajo Capítulo No. 17

1. En el formulario Frmart implemte el sistema de Búsqueda, Ordenar datos y lainsterface con SQL

2. En el formulario Frmcli implemte el sistema de Búsqueda, Ordenar datos y lainsterface con SQL

Page 152: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 152/192

 

Capítulo 18

Programa Menú

I. Objetivo General Crear un Menú

II. Objetivos específicosPoder crear los diferentes menús de la aplicación; barra de estado del menú,hora dinámica en el menú; correr programas desde un menú

III. Contenido 1. Programa Menú2. Hora dinámica en un menu3. Menu Editor4. Comando Shell

1. Programa Menú

 Ahora haremos un programa menú, el cual nos permitirá integrar las diferentes opcionesde una aplicación. Iniciaremos con el menú de Recursos Humanos; necesitamos agregarun nuevo formulario al que llamaremos: MENUREC

Por favor ampliar este formulario tanto a la derecha como hacia abajo hasta llegar al limite. Porahora el programa que queremos correr es Menupr, haga lo pertinente para que éste sea elprograma que se corra cuando presione Control + F5

 A este formulario aplique el concepto de no permitir que se mueva ni que se puedaminimizar o maximizar tal y como se aprendió en el capítulo No. 2.

En este formulario vaya a la propiedad WindowState y seleccione la opción Maximize

En la propiedad caption escriba: Menú de Recursos humanos 

Haga una barra de estado y llámela: BARRAESTADO; la barra de estado debe tener tres paneles;de entrada solo le aparece un panel; para agregar mas paneles debe presionar el botón InsertPanel cuando entre a las propiedades del Status bar; el primer panels debe tener una anchura de9000; los otros dos paneles déjelos con la anchura que se asigna por default.

 Al correr su programa debe verse de la siguiente manera:

Page 153: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 153/192

 

Entre al form_load y escriba lo siguiente:

BARRAESTADO. Panels(2)=date

2. Hora dinámica en un menu

Se le llama hora dinámica la que no es estática, es decir, va cambiando la hora, minutos ysegundos. Siga los siguientes pasos:

a. Pegue en cualquier parte de su formulario un control que llamado TIMER (reloj)

b. El nombre de este control nos parece bien, no lo cambie; vaya a la propiedadinterval y escriba el No. 2 (esto indicará que haga el cambio de hora cadasegundo)

c. Haga doble clic sobre el control TIMER y le aparecerá lo siguiente:

Private sub Timer1_timer ()

End Sub

Escriba lo siguiente: BARRAESTADO. PANELS (3)= TIME

Corra su programa

Debe verse de la siguiente manera

Page 154: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 154/192

 

3. Menu Editor

Para crear un menú y sus diferentes opciones entraremos al menu editor de Visual Basic;en cualquier punto del formulario presione el clic derecho; le aparecerá una pantalla convarias opciones:

Seleccione Menu editor; le aparecerá la siguiente pantalla:

Page 155: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 155/192

 

Escriba en la casilla que dice Caption lo siguiente: GeneralesEscriba en la casilla que dice Name lo siguiente: M1Presione el boton NextLo que hemos hecho con los pasos anteriores es crear la primera opción del menú;primero crearemos las opciones horizontales de nuestro menú:

Repita los pasos anteriores con los siguientes datos para las otras opciones quenecesitamos: Caption Name

Mivimientos M2Tablas M3Reporte M4

Su menu editor debe quedarle de la siguiente manera:

 Ahora presione el botón OK, Corra su programa

Note que ha creado un menú horizontal de 4 opciones

Creando opciones ( verticales o colgantes) 

Queremos que debajo de la opción Generales aparezcan las siguientes opcionesCalculadoraExellWordSalir

Page 156: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 156/192

 

Entre de nuevo al menu editorSiga estos pasos:

a. Haga clic sobre la palabra: Movimiento b. Presione el botón Insert c. Note que le abre un espacio en la línea anterior

d. Escriba en la casilla que dice Caption lo siguiente.Calculadora e. escriba en la casilla que dice Name lo siguiente: M11 f. Presione el siguiente botón

Esto indicará dependencia y le provocará lo siguiente:

g.- Repita los pasos 1,2,3,4,5,6 con los siguientes datos:

Caption Name

Exell M12Word M13Salirse M14

h.- al terminar el ejercicio presione el boton OK

Corra su programa

Queremos que complete el ejercicio del menú con lo siguiente:Debajo de la opción Movimientos deben aparecer las siguientes opciones

Caption Name

Datos de empleados M21

Planilla M22

Page 157: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 157/192

 

Debajo de la opción Tablas deben aparecer las siguientes opciones

Caption Name

Departamentos M31

Sucursales M32

Debajo de la opción Reportes deben aparecer las siguientes opcionesCaption Name

Lista de Empleados M41

Sueldos por departamento M42

Sueldos por sucursal M43

Planilla M44

Libro de Sueldos y Salario M45

Listado de Departamentos M46

Listado de Sucursales M47

Sueldos Anuales M48

Lista de empleados por sexo M49

Corra su programaQueremos complicar un poquito mas nuestro menú:Debajo de la opción Listado de Empleados debe aparecer las siguientes opciones.

Caption Name

Ordenado por Código M411Ordenado por Nombre M412Por de Fecha de Ingreso M413

Debajo de la opción Sueldos por Departamento debe aparecer las siguientes opciones.Caption Name

Detallado M421Totalizado o agrupado M422Gráfica M423Por Departamento específico M424

Debajo de la opción Sueldo por Sucursal debe aparecer las siguientes opcionesCaption Name

Detallado M431Totalizado o agrupado M432Gráfica M433Por Sucursal específica M434

Nota: Recuerde el concepto de dependencia

Page 158: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 158/192

 

El picture en un menú

Se acostumbra que el menú debe tener un picture o figura, usualmente es el logo de laempresa.

Busque un control que se llama PictureBox y péguelo en el centro del formulario

MENUREC; cambie el nombre del Picturebox por: LOGO

Vaya a la propiedad Picture y asigne cualquier imagen que encuentre.

Amarrar un programa en un menú

Finalmente queremos que desde el menú podamos correr el programa FRMEMPLE.

Siga estos pasos:a. Haga clic en la opción de su menú que dice: Movimientob. Haga clic en Datos de Empleadosc. Le aparecerá lo siguiente:

Private sub M21_clic()

End sub

Escriba lo siguiente:

Frmemple.show 1

Corra su programa y desde el menú entre al programa de Datos de Empleados

El uno (1) indica la modalidad de bloqueo a lo que queda atrás

4. Comando Shell

Con el comando Shell ejecutamos desde Visual Basic cualquier archivo con extensiónExe o Com.

En nuestra pantalla de Menurec entre a la opción Generales – Word; le aparecerá losiguiente:

Private Sub M12_Click()

End Sub

Escriba lo siguiente

File = "C:\Archivos de programa\Microsoft Office\Office\winword.exe"MX = Dir(File)

Page 159: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 159/192

 

If MX <> "" ThenRetVal = Shell(File, 1)

End If

Corra su programa

Toda la rutina anterior no es nueva para usted, pues ya la hemos trabajado en este libro;la única instrucción nueva es la siguiente:

RetVal = Shell(File, 1)Retval puede ser un nombre cualquiera; para ejecutar el commando Shell es necesariocorrerlo desde una variable; el no. 1 es la modalidad, concepto que ya hemos tocado eneste mismo capítulo

Para la opción que permita correr excel, escriba la siguiente rutina:

File = "C:\Archivos de programa\Microsoft Office\Office\excel.exe"MX = Dir(File)If MX <> "" Then

RetVal = Shell(File, 1)End If

Para la opción que permita correr la calculadora, escriba la siguiente rutina:

File = "C:\WINDOWS\CALC.EXE"MX = Dir(File)If MX <> "" Then

RetVal = Shell(File, 1)End If

Nota: las direcciones pueden variar de un Windows a otro

Programe la opción Salirse del menú (Unload me)

Page 160: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 160/192

 

Guía de trabajo Capítulo No. 18

1. Haga el siguiente menú: Menuinv

Este menú debe tener las mismas características del menú Menurec, solo que lassiguientes opciones:

Generales Movimientos Tablas Reportes

Calculadora Datos Artículos Sucursales Lista de ArtículosWord Datos Clientes Vendedores Ordenado por códigoExcel Facturación Ordenado por nombreSalirse Compras Lista de Clientes

Ordenado por códigoOrdenado por nombre

Lista de SucursalesLista de VendedoresLista de LíneasLista de Unidades de medidaLista de productos CosteadosListados de Ventas

Listado General de VentasVentas por Sucursal y rango de fecha

Detalladas AgrupadasPor Sucursal EspecíficaGráfica

Ventas por Vendedor y rango de fechaDetalladas

 AgrupadasPor Vendedor EspecíficoGráfica

Ventas por Cliente y rango de fechaDetalladas

 AgrupadasPor Cliente Específico

Ventas por Tipo factura (Co-Cr), rango de fechaDetalladas

 AgrupadasPor Tipo EspecíficoGráfica

Listado de clientes por categoría

Page 161: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 161/192

 

Capítulo 19

Cristal report Parte I

I. Objetivo General 

Crear reportes de una sola tabla

II. Objetivos específicosConocer los conceptos básicos de Cristal Report para generar reportessencillos

III. Contenido 1. Qué es Cristal Report2. Generando nuestro primer reporte

1. Qué es Cristal Report

Cristal Report es un generador de reportes de bases de datos; de los diferentesgeneradores de reportes que existen en el mercado, Cristal Report es de los mejores. Laversión con la que trabajaremos en este libro es la versión 7.0. Cristal report le puedegenerar reportes de cualquier base de datos como Access, Oracle, Sql Server, DB2 del

 AS 400, etc.

2. Generando nuestro primer reporte

En este capítulo trabajaremos generando reportes de una sola tabla; a la vezconoceremos gran parte de las opciones de Cristal report.

Cómo entramos a Cristal Report

Siga los siguientes pasos:a. \Inicio-Windows \ Programas \ Seagate Cristal Report \ 32-bit Cristal Repor Designer

b. Le aparecerá una pantalla donde le pide registrarse; presione el botón que dice:Register later

c. Le aparece una pantalla dándole la bienvenida; presione el botón Cancel

Cómo crear un Reporte nuevo

Estando en la pantalla de trabajo de Cristal report, siga estos pasos:

a. \File \ New

Le aparecerá la siguiente pantalla:

Page 162: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 162/192

 

b. En este libro trabajaremos con reportes de tipo standard; seleccione Standardc. Le aparece una pantalla indicando con qué tipos de datos se trabajará; en

nuestro caso trabajaremos con datos por medio de ODBC; seleccioneSQL/ODBC

d. Le aparece una pantalla con los diferentes ODBC que existen; busque suODBC (Sistema); al encontrarlo haga clic sobre él y presione el botón OK

e. Le aparecerá una pantalla con las diferentes tablas de la base de datos a lacual está conectado el ODBC Sistema.

Haremos un reporte de la tabla Departamentos; en el cuadro de diálogo de la izquierdabusque la tabla Departamentos, luego presione el botón Add; como trabajaremos porahora con una sola tabla presionaremos el botón Done.

f. Regresamos a la pantalla que tiene los siguientes tabuladores

Haga clic en el tabulador Fields 

g. Pasará a la siguiente pantalla:

Page 163: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 163/192

 

Usted debe seleccionar los campos que desea aparezcan en el reporte; haga clic sobre elcampo que desee seleccionar y presione el botón Add; repita el proceso para cadacampo que desee seleccionar.h. Ahora presione en esta misma pantalla el botón Preview report (ver parte

inferior)

i. Finalmente llegamos a la pantalla de trabajo de Cristal report; usted verá elreporte que se genera; haga clic en el tabulador Design

Design es la modalidad de diseño, donde podemos hacer cambios al reporte; en estamodalidad usted verá su diseño de la siguiente manera:

Secciones de la pantalla de diseño

La pantalla de diseño está dividida en varias secciones:

Report HeaderTodo lo que se diseñe en esta parte solo saldrá en la primera página de su reporte

Page HeaderTodo lo que se diseñe en esta parte saldrá en la parte superior de todas las páginas delreporte; en esta parte normalmente se diseñan los títulos y encabezados , aunquetambién podría tener datos de la tabla.

Details

Esta sección está reservada para los datos de las tablas, aunque también podría tenertextos así como en la sección Page Header.

Report FooderEsta sección puede contener datos y textos; saldrá impreso inmediatamente después dela última línea de detalle; generalmente en esta sección se diseñan los totales del reporte

Page 164: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 164/192

 

Page FooterTodo lo que se diseñe en esta sección saldrá al pie de página de todas las páginas delreporte

Sección del diseñoEs la pantalla donde se diseña propiamente

Barra de botonesPor debajo de las opciones del menú tenemos la barra de botones de acceso rápido, lacual es la siguiente:

Continuaremos con este capítulo estudiando algunos de estos botones

Text:

Con este botón creamos textos en el reporte; para hacer un texto en el reporte presioneeste botón y soltando el clic del mouse haga clic en el lugar donde desea escribir el texto;en dicho lugar le queda una pequeña casilla donde debe escribir el texto; finalmente hagaclic en otro lugar de la pantalla. Escriba el siguiente texto: Listado de Departamentos;debe quedarle de la siguiente manera:

Si desea corregir el texto haga doble clic sobre el texto; si desea seleccionar el texto hagaclic una vez; seleccione el texto que acaba de hacer

Botones para tratamiento de textos

Son una serie de botones y listas de opciones que permiten dar propiedades al texto aligual que cualquier programa de manejo de texto como Word de Microsoft; estos botonesson los siguientes:

Dele al texto las siguientes propiedades: Letra Arial, tamaño 14, negrita y subrayado; alcambiar tamaño posiblemente tendrá que estirar los límites de la casilla del texto; ahoratenemos lo siguiente:

Page 165: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 165/192

 

Agregando líneas en una sección

 Agregaremos dos líneas a la sección de Page Header; posicione el cursor sobre la frasePage Hedaer y presione el clic derecho del mouse; le aparecerá un menú del cual debeseleccionar la opción que dice: Insert line; debe repetir el procedimiento para insertar otralínea.

Mueva los subtítulos CODIGO y NOMBRE hacia abajo de tal manera que le queden de lamisma forma en que estaban. De igual manera mueva hacia abajo el texto: Listado deDepartamentos para que por encima haga el siguiente texto:

Empresa BDA System Net S de R.L.

Que tenga las mismas propiedades del texto anterior; los subtítulos CODIGO y NOMBRE debenser modificados por los siguientes: Código y Nombre de Departamento; haga doble clic en cadauno de ellos para modificarlos; debe quitar el subrayado y asignarles letra Arial; usted debe tenerlo siguiente:

Fechas y No. de PáginaTodo reporte debe tener Fecha y No. de página, así que Cristal Report ya los establecesin que el usuario lo diseñe; puede quitarlos si desea, pero no es conveniente. Por laizquierda de la fecha (PrintDate) haga el siguiente texto: Fecha; por la izquierda del No.de página (Pagenumber) haga el siguiente texto: No. de Página; debe quedarle así:

Page 166: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 166/192

 

Correr un reporte

Para correr un reporte para ver cómo se verá al imprimirlo haga clic en el tabulador quedice Preview (a la par de Design); usted tendrá el siguiente resultado:

Guardar un reporte

 Antes de dar el proceso para guardar un reporte le pedimos que cree el subdirectorio

Reportes, dentro del subdirectorio Winsystem. Ya creado el subdirectorio Reportes siga estos pasos:a. \menu-file \ Save as; le aparece un cuadro de diálogo para indicar el

subdirectorio donde desea guardar su reporte (ubíquese en C:\winsystem\Reportes)

b. Indique el nombre del reporte: REPO-01 ; luego presione OK

 A partir de este momento cada vez que desee guardar solo presione el botón que tiene la

figura de un diskette

Líneas y BoxPara insertar líneas que le permitan subrayar los subtítulos por ejemplo active el Line

(línea); \menu-insert \ line; si desea usar un box (caja) en lugar de una línea entoncesactive el box; \menu-insert \box

Save data with reportEsta es una opción que debe ser desactivada; en la opción menú  –  file desactive estaopción; indica que el reporte debe guardarse con los datos que se tenga en ese momento,lo cual es contraproducente pues las tablas están cambiando a cada momento.

Guía de trabajo Capítulo No. 19

1. Haga un reporte de la tabla Sucursales y llámelo REPO-02

2. Haga un reporte de la tabla Líneas y llámelo REPO-033. Haga un reporte de la tabla Unidades (unidades de medida) y llámelo REPO-034. Haga un reporte de la tabla Vendedores (solo deben aparecer los datos del

codigo,nombre y telefono) y llámelo REPO-04

Page 167: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 167/192

 

Capítulo 20

Cristal report Parte II

I. Objetivo General 

Interface entre Cristal report y Visual Basic; crear reportes con mas de una tabla

II. Objetivos específicosConocer los comandos de Visual Basic para correr un reporte de Cristal report;subtotales en reportes; Condicionales

III. Contenido 1. Cómo correr un reporte de Cristal Report desde Visual basic2. Reportes con mas de una tabla3. Variables y Cálculos4. Condicionales simples

5. Condicionales anidados

1. Cómo correr un reporte de Cristal Report desde Visual basic Antes de poder correr un reporte de cristal report en Visual Basic es necesario insertar unnuevo control: Cristal report Control; le generará la siguiente imagen:

Pegue un cristal report control en cualquier punto del formulario; vaya a la propiedadaName y cambie el nombre por: CRTREPORTE. Para correr un reporte de cristal report envisual Basic se requieren de varias líneas de instrucciones. Entre a Visual Basic ytrabajemos con el formulario Menurec; haga clic en la opción: Reportes  –  Listado dedepartamentos; le aparece lo siguiente:

Private Sub M46_Click()

End Sub

Escriba las siguientes instrucciones:(R2001)CRTREPORTE.WindowState = crptMaximizedCRTREPORTE.Destination = crptToWindowCRTREPORTE.ReportFileName = "C:\WINSYSTEM\REPORTES\REPO-01.RPT"

CRTREPORTE.DiscardSavedData = 1CRTREPORTE.Action = 1

Corra su programa menú y ejecute la opción: Reportes – Listado de Departamentos

Explicaremos las instrucciones anterioresCRTREPORTE.WindowState = crptMaximizedIndica que el reporte se vea con la pantalla maximizada (toda la pnatalla)

Page 168: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 168/192

 

CRTREPORTE.Destination = crptToWindowIndica que el reporte debe ir a Pantalla, desde donde usted podrá enviarlo a la impresora

CRTREPORTE.ReportFileName = "C:\WINSYSTEM\REPORTES\REPO-01.RPT"

Indica el nombre y la ubicación del reporte

CRTREPORTE.DiscardSavedData = 1CRTREPORTE.Action = 1Estas dos últimas instrucciones son necesarias para ejecutar las tres primerasinstrucciones

Ejercicios: Según donde vayan en los diferentes programas menús (Menurec o Menuinv)haga lo pertinente para correr los siguientes reportes: Sucursales (REPO-02), Líneas(REPO-03), Unidades (REPO-04) y Vendedores (REPO-04)

2. Reportes con mas de una tabla

Si hablamos de un reporte con varias tablas estamos hablando de relaciones entre tablas;haremos un reporte de los datos de la tabla empleados; queremos que aparezca elnombre de la sucursal en la trabaja el empleado, así que habrá una relación de la tablaEmpleados y la tabla Sucursales; lo mismo sucede con el nombre del departamentodonde trabaja el empleado, de donde habrá una relación de la tabla Empleados y la tablaDepartamentos.

Haga los pasos para crear un nuevo reporte hasta llagar a la siguiente pantalla:

 A diferencia del reporte que se hizo en el capítulo anterior, usted debe agregar tres tablas:Empleados, Departamentos y Sucursales; haga clic en cada una de estas tablas ypresione el botón Add; cuando ya estén seleccionadas las tres tablas presione el botónDone y le aparecerá la siguiente pantalla:

Page 169: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 169/192

 

Primero debe borrar cualquier relación que le aparezca (haga clic sobre las líneas dedirección negras y presione la tecla Delete). Para hacer la relación de la tabla Empleadosa la tabla Departamentos haga clic en el campo departamento de la tabla Empleados y sinsoltar el botón del mouse arrastre el mouse hasta estar sobre el campo Codigo de la tablaDepartamentos. Para hacer la relación de la tabla Empleados a la tabla Sucursales hagaclic en el campo Sucursal de la tabla Empleados y sin soltar el botón del mouse arrastre el

mouse hasta estar sobre el campo Codsuc de la tabla Sucursales; debe quedarle de lasiguiente manera:

 Ahora haga clic sobre el tabulador Fields:

Seleccione los siguientes campos:Codigo , Nombre y Fechaingreso de la tabla Empleados; Nombre de la tablaDepartamentos; NomSuc de la tabla Sucursales y Sueldo de la tabla Empleados; luegopresione el botón Preview report

Con los conocimientos adquiridos en el capítulo anterior haga que el reporte tenga la

siguiente apariencia: (no olvide el No. de página)

Guarde este reporte con el nombre REPO-05

Totales

En este reporte tenemos una columna numérica a la cual le podemos sacar un total;estando en la modalidad de diseño haga clic sobre el detalle del sueldo:

Page 170: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 170/192

 

 Ahora Presione clic derecho y seleccione la opción que dice: Insert Grand Total; leaparece una pantalla donde por default le dice que sacará una sumatoria, pero ustedpuede cambiar para sacar un promedio, valor mínimo o valor máximo; debe presionar elbotón Aceptar; obtendrá lo siguiente:

Note que el total le aparece en la sección Report Footer; con sus conocimientos hastaeste momento queremos que consiga lo siguiente en la seccin Report Footer:

Ordenando datos en el reporte

Para ordenar el reporte por Codigo del empleado seleccione esta combinación: \menu  – report \ Sort Records ; le aparecerá la siguiente pantalla:

Haga clic en el campo: Empleados.Codigo y luego presione el botón Add; en este casoordenaremos los datos por un solo campo, pero usted puede ordenar por mas de uncampo; también puede indicar si desea un ordenamiento Ascendente o Descendente;finalmente debe presionar el botón OK.

 Al correr su reporte notará los resultados; salve el reporte

Este mismo reporte usted puede salvarlo con otro nombre: \menu-file \ Save as; de hechosálvelo con otro nombre: REPO-06.

Ya con otro nombre haga los siguientes dos cambios:a. El subtítulo debe decir: Listado de Empleados Ordenado por Nombreb. Cambie el ordenamiento que está por codigo a ordenamiento por nombre

Haremos un paréntesis para que entre a Visual Basic y enlace los reportes REPO-05(Ordenado por codigo) y REPO-06 (ordenado por nombre) en el programa Menurec.

Page 171: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 171/192

 

3. Variables y Cálculos

Una de las necesidades mas grandes en los reportes es hacer cálculos en la línea dedetalle; se necesitan hacer cálculos en los casos cuando no se dispone del dato en latabla. Para ilustrar este tema le pedimos que llame el reporte REPO-05. Aplique lossiguientes cambios:

a. Guárdelo con el nombre: REPO-07b. Agregue un subtítulo que diga: Sueldos anualesc. Agregue un texto de columna que diga: Sueldo anualDebe verse así:

Necesitamos hacer el siguiente cálculo: Sueldo anual = sueldo * 12; crearemos unavariable llamada Sanual; para crear una variable siga los siguientes pasos:

a. \menu – insert \ Formula fields ; le aparecerá la siguiente pantalla:

b. Presione el botón Newc. En una pequeña pantalla se le pide el nombre de la variable; escriba Sanual,

luego presione el botón OKd. Le aparecerá la siguiente pantalla:

Page 172: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 172/192

 

Esta pantalla tiene básicamente 4 secciones:

a. Tablas y variables; es el cuadro de diálogo de la izquierdab. Funciones; es el cuadro de diálogo del centroc. Operadores; es el cuadro de diálogo de la derechad. Pantalla resultado; pantalla blanca debajo de los cuadros de diálogos

Nuestra fórmula es la siguiente: Sueldo anual = Sueldo * 12; en el cuadro de diálogo delas tablas y variables busque el campo Sueldo (Empleados.sueldo); al encontrarlo hagadoble clic sobre él y notara que pasa a la pantalla de resultados; los nombres de loscampos no se escriben, se seleccionan; ahora teclee lo siguiente : * 12 (multiplicar por12); debe verse así:

 Ahora salve la fórmula: ; sálgase de esta pantalla; usted regresa a la pantalla anterior,pero con la variable que acaba de hacer:

Con el mouse arratre la variable hasta dejarla ubicada en la línea de detalle a la par delsueldo; tendrá que borrar el nombre de la variable, que se le asigna como título de lacolumna, pues ya habíamos puesto como título de la columna el texto: Sueldo anual. De

la misma forma que definimos un total para el sueldo, obtenga el total del Sueldo Anual; Amarre este reporte en el programa Menurec.

4. Condicionales simplesOtra de las necesidades en un reporte es poder construir condicionales que permitanconvertir código en descripciones; para el caso, tenemos un listado de los empleados porsexo; en la tabla lo que tenemos es F o M como sexo, pero nosotros queremos un reportecon la descripción del sexo; de la tabla de Empleados prepare el siguiente reporte:

Page 173: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 173/192

 

Haremos una variable llamada NOMSEXO; haga lo necesario para crear esta variablehasta llegar a la pantalla donde se escribe la fórmula:

En el tercer cuadro de diálogo hacia la derecha (ver parte superior), haga clic en el signomas (+) del operador Other  y tendrá lo siguiente:

Haga doble clic en la línea que dice: if x then y else z; le aparece en la pantalla deresultados (pantalla blanca) lo siguiente:

; ahora en el cuadro de diálogo de la izquierda haga clic en el signomas (+) de la tabla empleados para que le aparezcan los campos de la tabla y luego hagadoble clic sobre el campo sexo; obtendrá lo siguiente:

; usted debe agregarle lo siguiente:

Guarde la variable y ubíquela a la par de la columna del teléfono; al correr su reportedebe quedarle de la siguiente manera:

Haga lo necesario para ordenar el reporte por Sexo y Nombre; guarde este reporte con elnombre REPOSEXO; amarre este reporte en el programa Menurec.

5. Condicionales anidadosEl condicional que hemos hecho en el inciso anterior tiene solo dos opciones; cuando setrata de un condicional con mas de dos opciones la situación se complica; siempre en elmismo reporte REPOSEXO, agregaremos otra columna: Est. Civil; crearemos unavariable a la que llamaremos NOMCIVIL; conforme a lo que ha aprendido haga lonecesario para crear la variable mencionada; al llegar a la pantalla de resultados (pantalla

blanca) debe armar su condicional considerando lo siguiente:Estadocivil = „1‟ (Soltero) Estadocivil = „2‟ (Casado) Estadocivil = „3‟ (Divorciado) Estadocivil = „4‟ (Viudo) Estadocivil = „5‟ (Otro) 

Seguiremos la siguiente regla; el No. de condicionales ser igual al No. de opciones  – 1;esto significa que necesitamos 4 condicionales; el primer condicional quedaría así:

Page 174: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 174/192

 

If {Empleados.estadocivil} = „1‟ then „Soltero‟ Else; después del else construímos el otrocondicional; podemos sacar una copia de las instrucciones; con el segundo condicional lainstrucción quedaría de la siguiente manera:

If {Empleados.estadocivil} = „1‟ then „Soltero‟ Else If {Empleados.estadocivil} = „2‟ then „Casado‟ Else; conel tercer condicional tendríamos lo siguiente: 

If {Empleados.estadocivil} = „1‟ then „Soltero‟ Else If {Empleados.estadocivil} = „2‟ then „Casado‟ Else If

{Empleados.estadocivil} = „3‟ then „Divorciado‟ Else; con el cuarto condicional cubrimos las otrasdos opciones y tendríamos lo siguiente:

If {Empleados.estadocivil} = „1‟ then „Soltero‟ Else If {Empleados.estadocivil} = „2‟ then „Casado‟ Else If{Empleados.estadocivil} = „3‟ then „Divorciado‟ Else If {Empleados.estadocivil} = „4‟ then „Viudo‟ Else „Otro‟ 

Haga el proceso completo hasta ubicar el estado civil a la par de la columna del sexo; elresultado debería ser el siguiente:

Guía de trabajo Capítulo No. 20

1. Haga un reporte de artículos y llamarlo REPO-08; ordenado por código; que

aparezcan los datos de Codigo, Nombre de artículo , Línea (nombre),Unidad demedida (Nombre), existencia y costo unitario; este mismo reporte debe producirle elreporte REPO-09 (ordenado por Nombre de artículo); siga los mismos conceptos delreporte REPO-05

2. Haga un reporte de Clientes y llamarlo REPO-10; ordenado por código; queaparezcan los datos de Codigo, Nombre de cliente , Vendedor (nombre), Créditomáximo; debe tener un total de Crédito máximo,este mismo reporte debe producirle elreporte REPO-11 (ordenado por Nombre de Cliente); siga los mismos conceptos delreporte REPO-05

3. Haga un reporte de artículos Costeados y llámelo REPO-12; tome como base elreporte REPO-08 y agregue como columna el siguiente cálculo: Valor = Existencia *Costo; la columna valor debe tener total

4. Haga un reporte de Clientes por categoría (Codigo,Nombre y Categoría) y llámeloREPO-13; los condicionales deben trabajar en base a las siguientes opciones: A =Excelente; B = Promedio ; C = Malo

Page 175: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 175/192

 

Capítulo 20

Cristal report Parte III

I. Objetivo General Subtotales y gráficas

II. Objetivos específicosConocer en cristal report las formas de hacer reportes de rupturas de control yocultar líneas de detalle para reportes totalizados o de sumatorias; conocer elbotón insert char (gráficas); gráficas de barra y pie (pastel)

III. Contenido 1. Subtotales y rupturas de control; reportes agrupados2. Reportes totalizados3. Gráficas

1. Subtotales y rupturas de control; reportes agrupados

En este inciso manejaremos uno de los aspectos de mayor necesidad a la hora de hacerreportes, y es lo que se conoce con el nombre de subtotales por grupos o rupturas decontrol; se requiere saber de valores agrupados por determinado item, para el caso lossueldos; nos gustaría saber los subtotales de los sueldos por sucursal o pordepartamento; en el caso de las ventas igual, nos gustaría saber el subtotal de ventas porsucursal o por vendedor.

Crearemos el reporte de Sueldos por departamento; para conseguir nuestro objetivo lepedimos abrir el reporte REPO-05:

 Además de la gerencia, hay empleados del departamento de administración y ventas;guarde este reporte con el nombre REPOGRU1 (Reporte agrupado). Haremos unoscambios a este reporte; quite el subtítulo de Listado de Empleados ordenado por codigo ycámbielo por el siguiente: Sueldos por Departamento Detallado.  Otro cambio queharemos será eliminar el dato de la sucursal.

Page 176: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 176/192

 

Quite tanto el título de la columna, así como el detalle de la columna; ajuste cualquierespacio; debe quedarle de la siguiente manera:

 Ahora haga clic sobre el detalle del sueldo, tal y como se mira en la figura anterior;presione clic derecho y de las opciones que le aparecen seleccione Insert subtotal; leaparecerá la siguiente pantalla:

Debe entrar a la lista de campos y seleccionar el campo Departamentos.nombre luegopresione el botón Aceptar.

Corra su reporte

Note usted que le parecieron dos secciones mas en el diseño del reporte: Group Header yGroup Footer; en el Group Header le aparece el nombre del departamento y en el GroupFooter le aparece el subtotal del departamento; usted puede cambiar de ubicación tanto elnombre del departamento así como el subtotal si lo desea. En la línea donde tenemos el

subtotal escriba el siguiente texto: Subtotal, y además haga una línea por arriba y porabajo del subtotal; debe ver se así:

Guarde su reporte

Page 177: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 177/192

 

Ejercicio: Haga el reporte de Sueldos por sucursal detallado; tome como base siempre elreporte REPO-05; este nuevo reporte debe llamarse REPOGRU2; siga los mismosconceptos vistos en el reporte anterior.

2. Reportes totalizados

Hemos visto la forma de hacer reportes con subtotales; pero se da el caso de que a nivelgerencial interesa ver datos de subtotales sin los detalles; en nuestro caso estamoshablando de un reporte que muestre los saldos por departamento sin el detalle de losempleados; esto es lo que llamamos un reporte totalizado.

 Abra el reporte REPOGRU1; guarde este reporte con el nombre REPOTOT1 y haga lossiguientes cambios:

a. Quite el subtítulo de Sueldos por Departamento Detallado y cámbielo por elsiguiente: Sueldos por Departamento Totalizado o Agrupado

b. Oculte la línea de detalle; sobreponga el cursor sobre la palabra Details ypresione el clic derecho; le aparecerá un menú del cual debe seleccionar Hide

Corra su reporte para los resultados

c. El nombre del grupo (Group # 1 name) cámbielo de ubicación; bájelo a la mismalínea donde está el valor del subtotal.

d. Borre la palabra subtotal, así como la línea que está por arriba del valor delsubtotal , al igual que la línea que está por debajo.

e. De los subtítulos de las columnas solo deje Departamento y Sueldof. Ajuste los espacios y debería quedarle de la siguiente manera

Salve el reporte

Page 178: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 178/192

 

Ejercicio: Haga el reporte de Sueldos por Sucursal Totalizado y llámelo REPOTOT2; paraeste reporte debe tomar como base REPOGRU2; siga los mismos conceptos vistos en elreporte anterior.

 Antes de continuar haga el trabajo de amarrar los cuatro reportes que hemos hecho alprograma Menurec de Visual Basic

REPOGRU1 (Sueldos por Departamento Detallado)REPOTOT1 (Sueldos por Departamento Totalizado)REPOGRU2 (Sueldos por Sucursal Detallado)REPOTOT2 (Sueldos por Sucursal Totalizado)

3. Gráficas

Cristal report nos ofrece la opción de poder hacer nuestras gráficas; maneja un buendesarrollador de gráficas, donde podemos optar a varios tipo de gráficas; para poderhacer una gráfica primero debemos hacer un reporte totalizado de los datos que se deseagraficar; en este caso haremos la gráfica de sueldos por departamento; abra el reporteREPOTOT1; guarde este reporte con el nombre REPOGRA1.

Haga Clic sobre el botón Insert Char: ; le aparecerá la siguiente pantalla:

Por la izquierda tiene los tipos de gráficas que puede seleccionar y por la derecha lasvariaciones por gráfica; cualquiera sea la gráfica que use recomendamos usar la variación3D y no la plana; en el caso de la figura anterior la gráfica por default es la gráfica debarras con su variación plana; haga clic en el botón por debajo de la variación plana paratrabajar en variación 3D.

Tabulador Data

Es necesario que haga clic en esta opción para que se activen las otras opciones quenecesitamos

Tabulador Text

Este tabulador nos lleva a la siguiente pantalla:

Page 179: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 179/192

 

En la casilla Title escriba: Gráfica de Sueldos por Departamentos; en la casilla Subtitleescriba : Valores en Lempiras; en la casilla Footer escriba : Departamentos

Tabulador OptionsEn esta opción activaremos la siguiente:

; para que los valores aparezcan en cada barra

Haga clic en el tabulador Type y presione el botón Aceptar; el resultado será el siguiente:

La gráfica de barras es una gráfica de valores; se acostumbra tener en el mismo reporte

de gráficas en la gráfica llamada Pie para indicarnos valores porcentuales; arrastre lagráfica de barras hacia abajo para dejar espacio para la otra gráfica. Entre de nuevo a lasgráficas y seleccione la gráfica tipo Pie; que sea siempre la gráfica 3D; como título de lagráfica escriba: Distribución porcentual de Salarios; en la casilla Subtitle escriba : Valoresen Lempiras; en la casilla Footer escriba : Departamentos y siempre active el Show value.

Page 180: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 180/192

 

Corra su reporteEjercicio: haga la gráfica de Sueldos por sucursales y llámela REPOGRA2; aplique losmismos conceptos de la gráfica anterior. Haga el trabajo de amarrar las dos gráficas quehemos hecho al programa Menurec de Visual Basic

Guía de trabajo del Capítulo No. 21

1. Haga el Reporte General de Ventas con el siguiente modelo:BDA System Net

Departamentos de VentasListado General de Ventas

No. Factura Fecha Tipo Sucursal Vendedor Cliente Valor

Xxxxxxxxxx xxxxxxxxx xxxxxx xxxxxxxx xxxxxxxxxxx xxxxxxxx xxxxxxXxxxxxxxxx xxxxxxxxx xxxxxx xxxxxxxx xxxxxxxxxxx xxxxxxxx xxxxxx

---------------------------------------Total General xxxxxxx---------------------------------------

Para el Tipo trabaje con un condicional: Tipo= „CO‟ Contado, „CR‟ Crédito Las tablas que se necesitan son: Facturas, Sucursales,Vendedores y Clientes; estastablas deben relacionarse para que aparezca el Nombre de la sucursal, Vendedor yCliente. El nombre del Reporte será: VENTAS

2. Del reporte VENTAS saque el Reporte por Sucursal detallado (subtotales porsucursal) y llamarlo VENGRU1.Del Reporte VENGRU1 saque el reporte Totalizado y llamarlo VENTOT1Del Reporte VENTOT1 saque la gráfica x Sucursal y llamarlo VENGRA1

3. Del reporte VENTAS saque el Reporte por Vendedor detallado (subtotales por

vendedor) y llamarlo VENGRU2.Del Reporte VENGRU2 saque el reporte Totalizado y llamarlo VENTOT2Del Reporte VENTOT2 saque la gráfica x vendedor y llamarlo VENGRA2

4. Del reporte VENTAS saque el Reporte por Cliente detallado (subtotales porCliente) y llamarlo VENGRU3.Del Reporte VENGRU3 saque el reporte Totalizado y llamarlo VENTOT3Del Reporte VENTOT3 saque la gráfica x cliente y llamarlo VENGRA3

5. Del reporte VENTAS saque el Reporte por Tipo detallado (subtotales porTipo de venta) y llamarlo VENGRU4.

Del Reporte VENGRU4 saque el reporte Totalizado y llamarlo VENTOT4Del Reporte VENTOT4 saque la gráfica x Tipo y llamarlo VENGRA4

Page 181: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 181/192

 

Capítulo 20

Cristal report Parte IV

I. Objetivo General Filtros y Parémetros

II. Objetivos específicosCómo filtar datos en reportes de cristal report desde Visual Basic; comandoInputbox para crear filtros de datos; parámetros desde Visual Basic hacia cristalreport.

III. Contenido 1. Inputbox2. Parámetros3. Rangos de Fecha

1. Inputbox

El comando inputbox nos proporciona la opción de poder introducir por pantalla un valorcon el cual podemos fltrar datos por medio de un reporte; analicemos un caso bienpráctico; en el programa Menurec tenemos el reporte de Sueldos por departamentoespecífico; lo que queremos es el mismo reporte detallado, solo que en lugar de salirtodos los departamentos, queremos los de un departamento específico, así que usaremosel mismo reporte REPOGRU1.

Con el comando inputbox pediremos por pantalla que el usuario introduzca el Código deldepartamento del cual desea los datos; entre en el programa Menurec a la opción

Reportes – Sueldos por departamento – Departamento específico y escriba lo siguiente:

Msdepartamento = InputBox("Introduzca el Código del departamento", "Pantalla de parámetros")

Corra su programa, y al entrar a la opción Reportes  –  Sueldos por departamento  – Departamento específico le aparecerá lo siguiente:

Explicaremos la instrucción

Page 182: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 182/192

 

Como usted pudo comprobar, el comando inputbox le permite introducir por pantalla unstring o valor y a la vez lo almacena en una variable llamada Msdepartamento.

 Ahora solo necesitamos indicar en cristal report que ejecute el reporte pero con elsiguiente filtro: Empleados.departamento = Msdepartamento, es decir, que aparezcan losdatos de los empleados que en el campo departamento tenga el mismo valor de

msdepartamento.

Su rutina del reporte debe quedar de la siguiente manera:

MSDEPARTAMENTO = InputBox("Introduzca el Código del departamento", "Pantalla de parámetros")CRTREPORTE.WindowState = crptMaximizedCRTREPORTE.Destination = crptToWindowCRTREPORTE.SelectionFormula = "{EMPLEADOS.DEPARTAMENTO}= ' " & MSDEPARTAMENTO & " ' "CRTREPORTE.ReportFileName = "C:\WINSYSTEM\REPORTES\REPOGRU1.RPT"CRTREPORTE.DiscardSavedData = 1CRTREPORTE.Action = 1CRTREPORTE.SelectionFormula = " "

Corra su programa y saque el reporte por cada departamento

Porqué es necesario la siguiente instrucción:

CRTREPORTE.SelectionFormula = " "

Porque el control CRTREPORTE es el mismo para los otros reportes; de no limpiarse lafórmula, actuaría para el siguiente reporte que se corra aunque no se exprese como partede las instrucciones, lo cual provocaría un error.

Ejercicio:  Cuáles serían las instrucciones para el reporte de Sueldos por Sucursalespecífica.

2. Parámetros

En muchos casos necesitaremos enviar parámetros desde Visual Basic a cristal report;para el caso, REPOGRU1 es un reporte que puede correrse desde dos lugares: Sueldospor Departamento Detallado y Sueldos por Departamento Específico; cuando se corra através de la opción Reportes por Departamento Específico queremos que aparezca unrótulo que diga: Por departamento Específico; este rótulo no debe aparecer en el casode que el reporte se corra a través de la opción Sueldos por Departamento Detallado;entre a la opción Reportes – Sueldos por Departamento – Por Departamento Específico yagregue las instrucciones que usted mire de más en el siguiente bloque:

Rotulo= “Por Departamentpo Específico” 

MSDEPARTAMENTO = InputBox("Introduzca el Código del departamento", "Pantalla de parámetros")CRTREPORTE.WindowState = crptMaximizedCRTREPORTE.Destination = crptToWindowCRTREPORTE.Formulas(0) = "XX = " + " ' " + ROTULO + " ' "

CRTREPORTE.SelectionFormula = "{EMPLEADOS.DEPARTAMENTO}= ' " & MSDEPARTAMENTO & " ' "CRTREPORTE.ReportFileName = "C:\WINSYSTEM\REPORTES\REPOGRU1.RPT"

Page 183: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 183/192

 

CRTREPORTE.DiscardSavedData = 1CRTREPORTE.Action = 1CRTREPORTE.SelectionFormula = " "CRTREPORTE.Formulas(0) = " "

Todavía no es posible correr el reporte; explicaremos las tres nuevas instrucciones:

Rotulo= “Por Departamentpo Específico” 

Creamos una variable llamada Rotulo con el string “Por Departamento Específico” comovalor.

CRTREPORTE.Formulas(0) = "XX = " + " ' " + ROTULO + " ' "

Enviamos desde Visual Basic el valor de la variable Rotulo, a una variable de cristal reportllamada xx. Esto implica que debe crearse en el reporte REPOGRU1 una variable llamadaxx; esta variable debe crearse vacía.

CRTREPORTE.Formulas(0) = " "

El control CRTREPORTE es el mismo para los otros reportes; de no limpiarse la fórmula,actuaría para el siguiente reporte que se corra aunque no se exprese como parte de las

instrucciones, lo cual provocaría un error.

Creación de la variable xx (vacía)

 Ahora entre a cristal report y llame el reporte REPOGRU1 y cree una variable llamada xx;cuando llegue a la pantalla donde se define la fórmula deje la pantalla en blanco y guardela variable sin datos; regresará a esta pantalla:

 Arrastre la variable xx hacia el espacio de la izquierda del título: Sueldos por

Departamento Detallado, y quedará de la siguiente manera:

Page 184: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 184/192

 

 Asegúrese de que la variable xx esté en negrita; guarde su reporte y corra el reportedesde Visual Basic; el resultado será el siguiente:

3. Rangos de Fecha

En cualquier sistema es bastante requerido reportes por rango de fecha; por ejemplo losreportes de ventas siempre se pedirán por rango de fecha. En el programa tenemos lasiguiente opción: Reportes – Listado de Empleados - Por Fecha de Ingreso; para obtenereste reporte el usuario tendrá que introducir por pantalla un rango de fecha (Fecha inicial

y Fecha final) y deben salir los empleados que ingresaron entre las fechas especificadas.El reporte que se correrá en esta opción es el reporte REPO-05.

 Antes diseñaremos el siguiente formulario:

Le daremos las especificaciones para que lo haga:Nombre del formulario: FrmFechasFecha inicial: TXTFECHA1 (Masketedit)Fecha final: TXTFECHA2 (Masketedit)Botón Aceptar; Botón Cancelar

Debe crear a nivel de módulo las siguientes variables de tipo string: MSFECHA1,MSFECHA2,MSFECH12 y MSFECHA22

Entre al botón Aceptar y escriba lo siguiente:

MSFECHA12 = TXTFECHA1MSFECHA22 = TXTFECHA2MSFECHA1 = Mid(TXTFECHA1, 7, 4) + "," + Mid(TXTFECHA1, 4, 2) + "," + Mid(TXTFECHA1, 1, 2)MSFECHA2 = Mid(TXTFECHA2, 7, 4) + "," + Mid(TXTFECHA2, 4, 2) + "," + Mid(TXTFECHA2, 1, 2)Unload Me

Page 185: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 185/192

 

Explicaremos las instrucciones:

MSFECHA1 = Mid(TXTFECHA1, 7, 4) + "," + Mid(TXTFECHA1, 4, 2) + "," + Mid(TXTFECHA1, 1, 2)

La función Mid sirve para extraer parte del contenido de TXTFECHA1; la Instrucción loque dice es que la variable msfecha1 será igual a los caracteres de TXTFECHA1 desde laposición 7, 4 caracteres mas una coma, mas los caracteres de TXTFECHA1 desde la

posición 4, 2 caracteres mas una coma, mas los caracteres de TXTFECHA1 desde laposición 1, 2 caracteres; esto implicaría que si TXTFECHA1 =10/02/2003, MSFECHA1 =2003,02,10

Esta conversión es necesaria pues cristal report maneja las fechas en el formato:año,mes,día.

En el botón Cancelar escriba:

MSFECHA1 = EmptyMSFECHA2 = Empty

Unload Me

 Ahora Entre a la opción del programa Menurec: Reportes – Listado de Empleados  – PorFecha de Ingreso y escriba lo siguiente:(R2201)

frmfechas.Show 1If msfecha1 = Empty Or msfecha2 = Empty Then

Exit SubEnd IfROTULO = "Del " + msfecha12 + " al " + msfecha22CRTREPORTE.WindowState = crptMaximizedCRTREPORTE.Destination = crptToWindowCRTREPORTE.Formulas(0) = "XX = " + " ' " + ROTULO + " ' "CRTREPORTE.SelectionFormula = "{Empleados.Fechaingreso}>=datetime(" & msfecha1 & ") AND

{Empleados.Fechaingreso}<=datetime(" & msfecha2 & ")"CRTREPORTE.ReportFileName = "C:\WINSYSTEM\REPORTES\REPO-05.RPT"CRTREPORTE.DiscardSavedData = 1CRTREPORTE.Action = 1CRTREPORTE.SelectionFormula = " "CRTREPORTE.Formulas(0) = " " 

 Ahora debe ir a cristal report y en el reporte REPO-05 haga una variable vacía llamada xx.

Corra su reporte y saque los empleados que ingresaron entre el 01/01/2003 al31/12/2003.

Guía de trabajo del Capítulo No. 22

1. Del programa Menuinv haga los reportes de ventas específicas2. Todos los reportes de ventas deben sacarse con rango de fechas incluso el reporte

general de ventas.

Page 186: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 186/192

 

Capítulo 20  

Tablas con mas de un campo como llave principal

I. Objetivo General 

Crear un sistema de planilla; la captura de datos y los reportes de Planilla,Libros de Sueldos y Salarios, Horas extras y Boleta de pagos

II. Objetivos específicosConocer los conceptos de captura de datos de una tabla cuyo índice o llaveprimaria está formada por mas de un campo.

III. Contenido 1. Captación básica de planilla2. Modificaciones al módulo básico de planilla

1. Captación Básica de Planilla

Para hacer el sistema de planilla hemos preparado un programa de captación comoconcepto básico; este programa se llama Frmplani y usted debe tenerlo en elsubdirectorio C:\winsystem; inserte este formulario al resto de formularios de su proyecto;para insertar un formulario que ya existe siga los siguientes pasos:

\menu-project \ Addform ; cuando le aparezca la pantalla para insertar un nuevo formulariohaga clic en el tabulador Existing (existente); si es necesario cambiarse al subdirectorioC:\winsystem hágalo; entre los formularios existente debe aparecerle uno llamadoFrmplani; haga doble clic sobre el formulario frmplani, y le aparecerá en la sección del

explorador del Visual Basic.

Este formulario está listo para captar datos, tomando en cuenta que la llave principal de latabla Planilla es el campo Noplanilla (Número de planilla); mas adelante en este mismocapítulo veremos que la llave no puede ser solamente este campo. La tabla Planilla tienela siguiente estructura de campos

NOPLANILLA TEXT 10 DIARIO NUM.EMPLEADO TEXT 10 IMPTORENTA NUM.FECHA DATE IHSS NUM.SUELDO NUM. COOPERATIVA NUM.

DEVENGADO NUM. FOSOVI NUM.EXTRA NUM. ADELANTOS NUM.COMISIONES NUM. PRESTAMOS NUM.OTROSING NUM. OTRASDEDUC NUM.INGRESOS NUM. DEDUCCIONES NUM.DIAS NUM. NETO NUM.

Page 187: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 187/192

 

Corra el formulario Frmplani y grabe un registro con los siguientes datos: no. planilla = 01;No. de empleado=001; el resto de datos debe inventarlos; después de grabarlo llámelo ymodifique algunos datos para probar la rutina del botón modificar; luego debe llamar denuevo los datos para finalmente eliminarlo.

2. Modificaciones al módulo básico de planilla

Ya probado que el programa funciona en lo que se refiere al mantenimiento de la tablaplanilla, haremos algunos cambios; en primer lugar notamos que este programa se prestapara hacer una rutina de cálculos; los cálculos que necesitamos en este programa son lossiguientes:

Total ingresos = Devengado + Extra + Comisiones + Otros ingresosTotal deducciones = Imp./ Renta + IHSS + Cooperativa + FOSOVI + Adelantos

+ Prestamos + Otras deduccionesSueldo neto = Total ingreso – Total deducciones

Entre al evento change de los datos numéricos y escriba: CALCULOS (no lo haga en:Total ingresos, ni en Total Deducciones ni en Sueldo Neto). Ahora haga una rutina a laque debe llamar: CALCULOS, con las siguientes instrucciones: (R2301)

VAR1 = Format(TXTDEVENGADO, "########.00")VAR2 = Format(TXTEXTRA, "########.00")VAR3 = Format(TXTCOMISIONES, "########.00")VAR4 = Format(TXTOTROSING, "########.00")

TXTINGRESOS = Val(VAR1) + Val(VAR2) + Val(VAR3) + Val(VAR4)

VAR1 = Format(TXTIHSS, "########.00")VAR2 = Format(TXTIMPTORENTA, "########.00")VAR3 = Format(TXTCOOPERATIVA, "########.00")VAR4 = Format(TXTFOSOVI, "########.00")VAR5 = Format(TXTADELANTOS, "########.00")VAR6 = Format(TXTPRESTAMOS, "########.00")VAR7 = Format(TXTOTRASDEDUC, "########.00")

TXTDEDUCCIONES = Val(VAR1)+Val(VAR2)+Val(VAR3)+ Val(VAR4) + Val(VAR5) + Val(VAR6) + Val(VAR7)

TXTNETO = Val(TXTINGRESOS) - Val(TXTDEDUCCIONES)

TXTINGRESOS = Format(TXTINGRESOS, "##,###,###.00")TXTDEDUCCIONES = Format(TXTDEDUCCIONES, "##,###,###.00")TXTNETO = Format(TXTNETO, "##,###,###.00")

Corra su formulario

Existen algunos datos del formulario que deben ser protegidos como el sueldo mensual,sueldo devengado, sueldo diario,total ingresos, total deducciones y

Page 188: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 188/192

 

sueldo neto; vaya a la propiedad locked de estos textbox y cambie el valor a true(protegido). Antes de continuar pruebe que estas casillas están protegidas.

 Ahora queremos que así como aparece el nombre del empleado cuando introduce sucódigo, también aparezca su sueldo, el cálculo del IHSS, el cálculo del FOSOVI y elcálculo del sueldo diario. Entre al evento change de TXTEMPLEADO, y antes de la

instrucción ZZ.close que está al final del evento change escriba lo siguiente:

If Not IsNull(ZZ!sueldo) ThenTXTSUELDO = ZZ!sueldo

End If

If Not IsNull(ZZ!sueldo) ThenIf ZZ!sueldo > 600 Then

TXTIHSS = 21Else

TXTIHSS = ZZ!sueldo * 0.035End If

End If

If Not IsNull(ZZ!sueldo) ThenTXTFOSOVI = ZZ!sueldo * 0.015

End If

If Not IsNull(ZZ!sueldo) ThenTXTDIARIO = Format(ZZ!sueldo / 30, "######.00")

End If

Corra su formulario

Si tenemos el sueldo diario, es posible calcular el sueldo devengado al introducir los díastrabajados; entre a la rutina CALCULOS y al inicio escriba las siguientes instrucciones:

VAR1 = Format(TXTSUELDO, "########.00")If Val(TXTDIAS) = 15 Then

TXTDEVENGADO = Val(VAR1) / 2Else

If Val(TXTDIAS) = 30 ThenTXTDEVENGADO = Val(VAR1)

ElseTXTDEVENGADO = Val(TXTDIAS) * Val(TXTDIARIO)

End IfEnd If

Corra el formulario Frmplani y grabe un registro con los siguientes datos: no. planilla = 01;No. de empleado=001; el resto de datos debe inventarlos.

Page 189: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 189/192

 

 Ahora trate de grabar un registro con el mismo No. de planilla y con No. de empleado =002.

Note que este programa no nos permite grabar otros empleados de la misma planilla (01),debido a que este programa es apto para captar datos a una tabla cuya llave principalestá formada por un solo campo; para que podamos grabar varios empleados de la

misma planilla, debemos cambiar el modelo de captación a un modelo para una tablacuya llave principal esté formada por mas de un campo; en nuestro caso la llave principaldebe ser la combinación de los campos Noplanilla y Empleado, pues con estos doscampos tenemos un registro único. Entre a Access y defina como llave principal de latabla planilla los campos Noplanilla+Empleado.

Lo siguiente que debe hacer es quitar de la rutina DATOSINICIALES la siguienteinstrucción:

TXTEMPLEADO = EMPTY

Lo anterior es porque en la rutina DATOSINICIALES no se limpian los datos de la llave;dónde debemos limpiar entonces TXTEMPLEADO?

Busque los diferentes lugares donde se limpia TXTNOPLANILLA y habrá encontrado ellugar donde se debe limpiar TXTEMPLEADO (en el botón CANCELAR).

Si TXTEMPLEADO es parte de la llave, entonces debe ejecutar en el evento change lasmismas instrucciones del evento change de TXTNOPLANILLA que también es parte de lallave; eso significa copiar un bloque grande de instrucciones; para evitar copiar tal bloque,haremos referencia al lugar donde están dichas instrucciones; entre al evento change deTXTEMPLEADO y como primera instrucción inserte la siguiente:

TXTNOPLANILLA_CHANGE

Comente ampliamente con su maestro este principio anterior

El siguiente paso es el mas complicado y decisivo; entre al evento change deTXTNOPLANILLA, y haga la lectura a la tabla PLANILLA tomando en cuenta no solo elcampo NOPLANILLA con el textbox TXTNOPLANILLA, sino también con el campoEMPLEADO y el textbox TXTEMPLEADO.

Usted debe tener lo siguiente:

Set ZZ = Con.OpenResultset("Select * from planilla where noplanilla=' " & txtnoplanilla & " ' ", _

rdOpenDynamic)

Sustitúyalo por lo siguiente: (R2302)

Page 190: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 190/192

 

Set ZZ=Con.OpenResultset("Select * from planilla where noplanilla=' " & txtnoplanilla & " ' and empleado=' " & TXTEMPLEADO & " ' ", _

rdOpenDynamic)

Comente ampliamente con su maestro este principio anterior

El siguiente paso es ir a todos los lugares donde se hace alguna transacción a la tabla

planilla y agregar el filtro por No. de empleado. Existen tres lugares donde se debetrabajar:

a. Botón Salvar

En este botón usted debe tener antes de insertar los datos en la planilla la siguientelectura:

Set ZZ = Con.OpenResultset("Select noplanilla from planilla where noplanilla=' " & txtnoplanilla & " ' ", rdOpenDynamic)

Debe sustituírla por la siguiente: (R2303)

Set ZZ = Con.OpenResultset("Select noplanilla from planilla where noplanilla='" & txtnoplanilla & "' and empleado='" &TXTEMPLEADO & "'", rdOpenDynamic)

b. Boton Eliminar

En este botón usted tiene la siguiente instrucción:

Con.Execute ("Delete from planilla where noplanilla='" & txtnoplanilla & "'")

Debe sustituírla por la siguiente: (R2304)

Con.Execute ("Delete from planilla where noplanilla=' " & txtnoplanilla & " ' and empleado=' " & TXTEMPLEADO & " ' ")

c. Botón Modificar

En este botón usted tiene la siguiente línea:

& " where noplanilla='" & txtnoplanilla & "'"

Debe sustituirla por la siguiente: (R2305)

& " where noplanilla=' " & txtnoplanilla & " ' and empleado=' " & TXTEMPLEADO & " ' "

 Ahora trate de grabar un registro con el mismo No. de planilla (01) y con No. de empleado= 002; invente el resto de datos

 Ahora trate de llamar en forma independiente los registros que ha grabado; notará que elprograma identifica los registros por separado.

 Ahora haga cualquier modificación a cada registro grabado, y compruebe que los cambiosse efectuaron.

Page 191: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 191/192

 

 Ahora elimine los datos del empleado 002; debe comprobar que se eliminó el empleado002 y que el empleado 001 no fue eliminado.

 Ahora tenemos un detalle muy importante: en la consulta debemos capturar además delNo. de planilla el No. de Empleado; entre al botón Seleccionar  en el tabulador Consulta yencontrará lo siguiente:

Vs.Col = 0txtnoplanilla = Vs.Texttabla.Tab = 0

usted debe agregar lo siguiente:

Vs.Col = 1txtempleado = Vs.Text

 Ahora nos queda la programación de los botones de navegación en la tabla de datos.

Botón Inicio

Si entra a este botón usted encontrará lo siguiente:

Dim ZZ As rdoResultsetSet ZZ = Con.OpenResultset("SELECT * FROM planilla ORDER BY noplanilla", rdOpenDynamic)

ZZ.MoveFirstIf ZZ.EOF ThenElse

txtnoplanilla = ZZ!noplanillaEnd If

Como la llave de la tabla es el No. de planilla y el No. de empleado, se debe hacer elordenamiento por ambos campos y de igual manera la asignación en sus casillascorrespondientes; la programación de este botón debe estar de la siguiente manera:

Dim ZZ As rdoResultsetSet ZZ = Con.OpenResultset("SELECT * FROM planilla ORDER BY noplanilla,empleado", rdOpenDynamic)

ZZ.MoveFirstIf ZZ.EOF ThenElse

txtnoplanilla = ZZ!noplanilla

TXTEMPLEADO = ZZ!empleadoEnd If

Botón Ultimo

Page 192: Herramienta VBasic

7/23/2019 Herramienta VBasic

http://slidepdf.com/reader/full/herramienta-vbasic 192/192

 

La programación de este botón debe estar de la siguiente manera:

Dim ZZ As rdoResultsetSet ZZ = Con.OpenResultset("SELECT * FROM planilla ORDER BY noplanilla,empleado", rdOpenDynamic)

ZZ.MoveLastIf ZZ.EOF ThenElse

txtnoplanilla = ZZ!noplanillaTXTEMPLEADO = ZZ!empleado

End If

Botón Siguiente

La programación de este botón debe estar de la siguiente manera:

Dim ZZ As rdoResultsetSet ZZ = Con.OpenResultset("SELECT * FROM planilla WHERE noplanilla+empleado>'" & _

txtnoplanilla + TXTEMPLEADO & "' ORDER BY noplanilla", rdOpenDynamic)ZZ.MoveFirstIf ZZ.EOF ThenElse

txtnoplanilla = ZZ!noplanilla