Curso Visual Basic Práctico

Entrega Nº 4

2 de Noviembre de 1998

Autor: Mario Rosas León

Para: Web del Programador

Primero.

            Disculpas a todos los que esperabais esta entrega ya que ha salido un poco tarde, ya sabeis, el resfriado, el trabajo, en fin, mucho estres.

           Además tambien quiero aclarar un problema que hubo en la entrega anterior sobre el control Data. Algunas personas han preguntado cual es el control Data, así que es el que tiene este iconito en la barra de herramientas:

wpe3.jpg (25232 bytes)

Anterior:

           En la anterior entrega creamos el primer formulario de entrada de datos, ahora realizaremos otro formulario para modificar, eliminar y ver los datos que tenemos introducidos. Yo lo llamo Mantenimiento de los Datos.

           Preparados porque comenzamos 10 ... 9 ... 8 ... 7 ... 6 ... 5 ... 4 ... 3 ... 2 ... 1 ... Lanzamiento (por eso de Pedro Duque).

Opción: Mantenimiento de Datos.

           En este formulario, como he dicho antes, podremos ver, modificar y eliminar los datos que ya tenemos introducidos.

          Así que, como en la entrega anterior, comenzaremos realizando el formulario. Venga, pulsad en el icono de VB y comenzamos.

           Cargad el proyecto del organizador multimedia y seguiremos.

           Como ya dije en la entrega anterior, creamos un formulario nuevo y ponemos las siguientes propiedades:

frmMantenimiento
Propiedad Valor Descripción
Name frmMantenimiento Nombre del formulario, para referirnos a él.
BorderStyle 3 - Fixed Dialog Como dije en la Entrega 1
Caption Mantenimiento de Datos Título del formulario
StartUpPosition 2 - Center Screen Posición del formulario cuando se carga.

           Ya hemos creado el formulario, establecemos el ancho y alto según las necesidades y continuamos.

           Creamos, tal y como dije en la entrega anterior, las mismas etiquetas y cajas de texto que en el formulario de entrada de datos. Podeis utilizar Copiar y Pegar si quereis.

           Una vez con todas las etiquetas y cajas de texto añadiremos el control DBGrid. Si no lo tenemos en la barra de herramientas debemos hacer lo siguiente: Proyecto - Componentes. Una vez dentro seleccionar el control Microsoft Data Bound Grid como indica la imagen.

wpe4.jpg (32546 bytes) wpe5.jpg (9678 bytes)

            Añadimos tres botones, Modificar, Eliminar y Volver.

           Ahora vamos a poner el control data (antes que el DBGrid) para poder modificar, ver y eliminar los datos. El objetivo será que, al pulsar en una fila del DBGrid se muestren los datos en las cajas de texto y en ese momento poder modificarlo o eliminarlo.

           Añadimos el control Data y cambiamos las propiedades por:

dbMul
Propiedad Valor Descripción
Name dbMul Nombre del control Data
Caption dbMul Ponemos el nombre que nosotros vemos en diseño
DataBaseName Ruta de la Base de Datos Pues eso
RecordSource Multimedia Tabla que vamos a utilizar
Visible False Que en ejecución no se vea

           Ya tenemos la base de datos enlazada y podemos añadir el DBGrid. Este control va a mostrar los datos del control Data por líneas (un registro en cada línea y un campo en cada columna).

           Lo ponemos y tendremos algo así:

wpe6.jpg (23195 bytes)

           Ahora cambiaremos las propiedades del control DBGrid.

dbgMalla
Propiedad Valor Descripción
Name dbgMallal Nombre del control DBGrid
DataSource dbMul El control data con el que enlazamos

           Eso es lo que pondremos, ahora cargamos los campos a mostrar de la siguiente forma:

           Nos colocamos encima del control DBGrid con el ratón y pulsamos el botón derecho. Escogemos la opción Recuperar Campos y, fijate, obtendremos los siguiente:

wpe7.jpg (26455 bytes)

           Si queremos podemos cambiar el ancho de las columnas con el comando Editar (pulsando el botón derecho del ratón encima del DBGrid) o cambiar las propiedades del control.

           Ahora enlazaremos las cajas de texto y los combo box con la base de datos de la siguiente forma:

           El primero será el txtFecha, lo enlazaremos con el campo Fecha del control data. Cambiaremos las siguientes propiedades de la caja de texto txtFecha:

           DataSource=dbMul

           DataField=fecha

           La semana pasada cambie a VB6, este te permite otra propiedad que es el formato (la cual no está en VB5).

           El campo txtFecha ya está enlazado, haremos lo mismo para los demás pero cambiando los campos por los correspondientes.

           Una vez terminado podemos ver el resultado (bueno antes hay que llamar a este formulario desde el menú principal, pero eso sabeis ya como se hace, o no?).

           Probad a ejecutar la aplicación y vereis el resultado (pero antes debeis introducir algunos datos).

           Ahora, debemos continuar con el código que pondremos, primero empezaremos por el evento Load del formulario. Pulsamos doble en el formulario (no en cualquier control sino en el fondo, en el formulario) y aparecerá la ventana de código y el primer evento del formulario que es el Load (que suerte no?). Pues empezaremos con él con el siguiente código:

Private Sub Form_Load()

' añadimos las categorías y tipos
comTipo.AddItem "CD-Música"
comTipo.AddItem "CD-ROM"
comTipo.AddItem "CD-I"
comTipo.AddItem "Video-CD"
comTipo.AddItem "DVD"
comTipo.AddItem "Cassette"
comTipo.AddItem "Vinilo"
comTipo.AddItem "VHS"
comTipo.AddItem "BETA"
comTipo.AddItem "Diskette 3 1/2"
comTipo.AddItem "Diskette 5 1/4"
comTipo.AddItem "Disco ZIP 100"
comTipo.AddItem "Disco ZIP 50"
comTipo.AddItem "Backup"

comContenido.AddItem "Pop"
comContenido.AddItem "Rock"
comContenido.AddItem "New Age"
comContenido.AddItem "B.S.O."
comContenido.AddItem "Música Otros"
comContenido.AddItem "Aventura"
comContenido.AddItem "Arcade"
comContenido.AddItem "Emuladores"
comContenido.AddItem "Programación"
comContenido.AddItem "Ordenador Otros"

End Sub

           Es como en el formulario de entrada, simplemente para que al modificar tengamos también todas las opciones

           Por último pondremos el código de los botones: cmbEliminar, cmbModificar y cmbVolver, en el evento Click de cada uno de ellos.

Private Sub cmbVolver_Click()
    Unload Me
End Sub

           Y aqui está el de cmbModificar, que será.

Private Sub cmbModificar_Click()
dbMul.RecordSet.Edit
        dbMul.RecordSet.Update
End Sub

           Ahora el de Eliminar:

Private Sub cmbEliminar_Click()
dbMul.RecordSet.Delete
        dbMul.Refresh
End Sub

           Y preguntareis algunos, ¿ya está?. Pues no, este modo es el más fácil pero ocasiona muchos problemas como indico aqui:

           1. Al pulsar en el control DBGrid nos deja modificar los campos, probad a pulsar en cualquier celda y modificarla. El problema llega al tener que validar una entrada como, por ejemplo, la fecha (poned una fecha incorrecta verás que chow).

           2. La base de datos se modifica sin tener que pulsar en el botón modificar.

           3. No se realizan las comprobaciones pertinentes de fechas, longitudes, etc que son necesarias como indiqué en el código de la opción Añadir en la entrega anterior.

           4. En fin, esto no es una aplicación comercial en absoluto. Fallará mas que una escopeta de caña.

           Intentad solucionarlo y en la próxima entrega indicaré cómo hacerlo, pero intentarlo es lo que cuenta.

           Por último comentar un par de cosas:

           a) En la imagen de arriba (componentes) podeis ver que el control DBGrid tiene al final lo siguiente (SP3). Quizás el vuestro no lo tenga, esto es que yo tengo instalado el Service Pack 3 que no es, ni mas ni menos, que un paquete para solucionar errores en los componentes de VB. Quizás vosotros no llegueis a ver esos errores (en el caso de que no tengais el SP3) pero siempre es conveniente. Por otra parte, no debeis preocuparos si no lo teneis, pero podeis bajarlo de internet desde la web de microsoft (aunque son unas 13 Mb).

           b) Gracias a todos los que seguis este curso y perdonad por lo tarde que ha llegado esta entrega, espero poder ser más puntual a partir de ahora.

           Esto es todo, por ahora. En la siguiente entrega veremos 'algo' de SQL. Y digo 'algo' porque es un tema demasiado extenso, quizás podreis ver por ahi algún manual en condiciones.

          Download del código fuente hasta ahora: AQUI

          Hasta pronto.... hay que ver lo alto que ha llegado el Pedro Duque, ¿tendrán Internet ahi arriba?, ¿Estará viendo este curso?, y si lo esta viendo ¿Es que se aburre tanto ahi arriba?. Esto es como un Expediente X. Preguntas sin respuesta.

Autor: Mario Rosas León

Santaella - Córdoba (España)

Para: Web del Programador

Entrega 1 - Entrega 2 - Entrega 3 - Entrega 4 - Entrega 5