Curso Visual Basic Práctico
Entrega Nº 3
 
Anterior:
           Pues eso, los formularios de entrada de datos. Como dije en la anterior entrega vamos a poder introducir los primeros datos. Además tendreis la primera entrega en código que os mando con lo que comento aqui. Así que, ahi va....
Opción: Añadir Nuevo
           Este es el formulario de entrada de datos. Como ya vimos en la anterior entrega, tenemos los siguientes campos en nuestra base de datos.
Tabla Campos Tipo
Descripción
multimedia numero entero Contendrá un número asignado automáticamente
titulo texto * 50 Título de la entrada
autor texto * 40 Autor de la entrada
fecha fecha Fecha de entrada (mas que nada para que veais cómo se utiliza un campo date)
tipo text * 20 Tipo de entrada (CD Musica, CD-Rom, etc)
contenido text * 30 Tipo de contenido (pop, rock, arcade, varios, aventuras, lucha, cifi, etc)
prestado boolean Mostrará true si está prestado o false si no
          Así que comenzaremos realizando el formulario. Supongo que ya tendreis arrancado VB sino, a que esperais?..... venga.

           Supongo que ya lo tendreis, vale, vale, sin prisa. Ahora cargais el proyecto del organizador multimedia y seguiremos.

           Estupendo, ahora creamos un nuevo formulario básico. Podeis hacerlo pulsando en Proyecto - Agregar Formulario. Así tendremos un formulario en vacio y podremos seguir palante.

           Una vez tenemos el formulario, cambiaremos las siguientes propiedades del mismo:

frmAñadirEntrada
Propiedad Valor Descripción
Name frmAñadirEntrada Nombre del formulario, para referirnos a él.
BorderStyle 3 - Fixed Dialog Como dije en la Entrega 1
Caption Añadir Entrada Título del formulario
StartUpPosition 2 - Center Screen Posición del formulario cuando se carga.
            Así tenemos ya el formulario con sus propiedades, el ancho y alto del formulario lo estableceremos con el ratón pulsando en las esquinas del formulario. Este ancho y alto está en función de lo que pongamos ahora nosotros dentro del formulario.

           Empezaremos añadiendo una etiqueta o control Label, como querais. Lo situamos en pantalla, a gusto del 'consumidor' y le ponemos las siguientes propiedades:

lblFecha
Propiedad Valor Descripción
Name lblFecha Nombre de la Etiqueta
Alignment 2 - Center Texto centrado
Caption Fecha Es la etiqueta del campo Fecha
            El tipo de letra y color a vuesto gusto. Hay que hacer lo mismo para las etiquetas de: TITULO, AUTOR, TIPO y CONTENIDO. Sólo sequir los pasos anteriores.

           Si ya hemos añadido todas las Etiquetas, añadiremos las Cajas de Texto o text box, como querais. Añadimos el primero (el de la fecha) y ponemos las siguientes propiedades:

txtFecha
Propiedad Valor Descripción
Name txtFecha Nombre de la Caja de Texto
Text Ponemos la caja de texto vacia
            Al igual que con las etiquetas, la fuente, color, etc es a vuestro gusto. Hacer lo mismo para las demás cajas que quedan que son: TITULO y AUTOR ya que en TIPO y CONTENIDO pondremos Cajas Combo.

           Añadimos la caja combo del tipo, que llamaremos comTipo (propiedad Name) y pondremos la propiedad Text="Elije el tipo". Haremos lo mismo con la caja combo de Contenido.

           Faltan los botones. Uno para Añadir y otro para Volver. Los añadimos y, para finalizar tenemos esto:

wpe3.jpg (12143 bytes)

           Tranquilos que aqui abajo esta el link para que os lleveis el código fuente (para los que están diciendo, uff que dificil).

           Así que ya lo tenemos, pues vamos a poner un control data para poder añadir los datos. Acerca del control data, antes de que alguien me venga con eso de que es muy malo, lento y patatin y patatan, es el control que viene con vb para realizar funciones con bases de datos, es fácil y si, es lento con bases de datos grandes pero para esto sirve y para aprender no veas lo fácil que es. Si alguien quiere utilizar el método más avanzado que lo haga.

           Bueno, después del discursito sigo. 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 empezar a escribir código. Aqui empiezan los eventos, para los que no lo sepan explicaré un poquito lo que son. Cada objeto (control, formulario, en fin cualquier cosa) tiene sus propios eventos. Los eventos ocurren en determinadas condiciones, cuando se carga un formulario, cuando se pulsa en un botón, cuando cambia el texto de un Text Box, etc. En fin, nosotros debemos controlar estos eventos.

           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

           Y me dirá alguno de vosotros, ¿Y esto que XXXXX hace?. Pues lo que hace es cargar en los controles Combo las opciones que apareceran al pulsar sobre ellos, tanto en el combo de Tipos como en el de Contenidos.

           Es muy fácil, simplemente: nombre.AddItem "lo que quieras añadir"

           Ahora, si ejecutamos el programa, al pulsar sobre el control Combo, apareceran todas las características que hemos puesto. Eso es todo lo que pondremos en el evento Load del formulario.

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

Private Sub cmbVolver_Click()
    Unload Me
End Sub

           Y aqui está el de cmbAñadir, comentado en el mismo código.

Private Sub cmbAñadir_Click()

' recomendaciones iniciales
' hay que controlar los datos que vamos a introducir
' si introducimos una fecha incorrecta ---> ERROR
' si introducimos una cadena más larga de lo que coge ---> ERROR

dbMul.Recordset.AddNew ' esto es para decirle
' que vamos a añadir
dbMul.Recordset("titulo") = Trim$(txtTitulo.Text)
' añadimos el titulo (el trim es para quitar los espacios de más)
dbMul.Recordset("autor") = Trim$(txtAutor.Text)
' igual con el autor
dbMul.Recordset("fecha") = Format(txtFecha.Text, "dd/mm/yyyy")
' la fecha utiliza el format que es simplemente para decirle en qué
' formato la añadimos que es dia/mes/año (con 4 digitos)
dbMul.Recordset("tipo") = Trim$(comTipo.Text)
' el tipo lo cogemos del combo
dbMul.Recordset("contenido") = Trim$(comContenido.Text)
' igual con el contenido
dbMul.Recordset.Update ' lo añade definitivamente
' ya está todo
' mostramos un mensaje de que se ha añadido
MsgBox ("Ya está dentro")
' vaciamos los campos para añadir otro
txtTitulo.Text = ""
txtAutor.Text = ""
txtFecha.Text = ""
comTipo.Text = "Elije el tipo"
comTipo.ListIndex = -1 ' indice de la lista, ya lo explicaremos
comContenido.Text = "Elije el contenido"
comContenido.ListIndex = -1 ' indice de la lista, ya lo explicaremos
txtFecha.SetFocus ' mandamos el cursor a la fecha
' ya está
End Sub

           Aqui teneis el Zip con el código fuente de to este rollo que os he metido. Exáctamente AQUI.

           Ya os dejo, el próximo día pondremos un dbGrid en Mantenimiento para poder eliminar, modificar y to eso.

           Hasta pronto, ah saludos a todos los que estais siguiendo 'esto'.