Al abrirse la pantalla de bajas de alumnos solo se presentara el campo de texto de matricula, para hacer la búsqueda del registro.
Al encontrar los datos dentro del mismo formulario aparecerán los campos en donde se muestran los datos, además del botón para borrar el registro deseado.
Para poder hacer esto vamos a empezar por agregar todos los campos y botones necesarios en el formulario formBAlumnos. Empezamos por agregar primero todas las etiquetas de matricula, nombre, apellido, dirección e inscrito.
Recuerda que cada etiqueta se debe nombrar con las tres primeras letras lbl + nombre, sabemos que la etiqueta de matricula se debe ver siempre, pero las demás etiquetas no, así que en las propiedades de las etiquetas que vamos a desaparecer en visible le damos el valor de false.
A continuación se agregan todas las cajas de texto necesarias, y los dos botones de búsqueda y de borrar. Todas las cajas de texto y el botón que no deben aparecer al principio se desaparecen momentáneamente con que la propiedad de visible sea falsa. Además se mostrara la información dentro de las cajas de texto sin que estas puedan ser modificadas.
Para esto en las propiedades de las cajas de texto en la propiedad Enable también se le da el valor de falso.
Las propiedades de las cajas que van aparecer y desaparecer en el formulario.
Una vez teniendo todos los elementos que se van a usar en la interfaz de la pantallas de bajas de alumnos, agregamos un control de conexión con el nombre de conxbdBAlumn y un control de adaptador con el nombre de adaptBAlumn, hacer las configuraciones igual que en la parte 3, se agrega un dataset dándole clic derecho al adaptBAlumn generando un conjunto de datos nuevo, dándole el nombre en la propiedad datasetname de dsBAlumnos y en la propiedad de name se le pone el nombre de DsBAlumnos.
Se abre la parte del código en el área de nombre de clase formBAlumn Events y con el método Load escribiendo el código de la siguiente manera.
Private Sub formBAlumn_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
DsBAlumnos.Clear()
adaptBAlumn.Fill(DsBAlumnos, "ALUMNOS")
End Sub
En la cual limpiamos el dataset y después pasamos todos los datos de la tabla ALUMNOS que tenga el adaptador al dataset.
Para hacer la búsqueda de la matricula al apretar el botón de Buscar ponemos el siguiente código
Private Sub btnBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
Dim tabla As DataTable
tabla = Me.DsBAlumnos.Tables("ALUMNOS")
Dim aux As String = txtMatricula.Text
Dim foundRow As DataRow = tabla.Rows.Find(aux)
If Not (foundRow Is Nothing) Then
mostrarCajas()
mostrarDatos(foundRow)
Else
MsgBox("Registro no encontrado")
End If
End Sub
| Dim tabla As DataTable | Se crea una instancia de tipo tabla |
| tabla = Me.DsBAlumnos.Tables("ALUMNOS") | se le anexan a esa tabla todos los registros que están almacenados en el adaptador son referenciados a la tabla. |
| Dim aux As String = txtMatricula.Text | ponemos el valor de la matricula que se encuentra en la caja de texto en una variable de tipo string. |
| Dim foundRow As DataRow = tabla.Rows.Find(aux) | se declara una instancia de tipo registro y se asigna a esa instancia los valores del registro en la cual la matricula coincida con el campo de la colección de filas que pertenecen a la tabla. |
| If Not (foundRow Is Nothing) Then | se usa la condición en la que si no esta vacía la variable foundRow, entonces se ejecutaran las siguientes funciones, mostrarCajas() y mostrarDatos(founRow), esta ultima función pasa el parámetro del registro encontrado, que contiene los datos de la matricula solicitada. |
| Else MsgBox("Registro no encontrado") End If | en caso de que la variable founRow este vacía es porque no se encontró ningún registro con la matricula indicada, y por lo tanto solo se envía un mensaje en una ventana de alerta, diciendo que no se encontró el registro. |
A continuación declaramos el código de las funciones que mostraran las cajas y mostraran los datos de registro encontrado.
Al momento de haber encontrado los datos del registro indicado por la matricula solicitada, hay que desplegar las cajas de texto ocultas para mostrar los datos.
Private Sub mostrarCajas()
lblnombre.Visible = True
txtNombre.Visible = True
lblApellido.Visible = True
txtApellido.Visible = True
lblDireccion.Visible = True
txtDireccion.Visible = True
lblInscrito.Visible = True
chkInscrito.Visible = True
btnBorrar.Visible = True
End Sub
La función que mostrara los datos en las cajas de texto es la siguiente se pasa como parámetro una variable de tipo dataRow, que es la que contiene toda la información encontrada.
Private Sub mostrarDatos(ByVal dr As DataRow)
txtMatricula.Text = dr("matricula").ToString
txtNombre.Text = dr("nombre").ToString
txtApellido.Text = dr("apellido").ToString
txtDireccion.Text = dr("direccion").ToString
chkInscrito.Checked = dr("inscrito").ToString
End Sub
La variable al entrar a la función cambia de nombre por dr, para poner los valores en las cajas de texto indicaremos el nombre del campo entre comillas y después usaremos el método toString que los datos que tenga los convertirá a cadena de caracteres (String).
Una vez que vemos los datos del registro solicitado en pantalla, podemos borrarlo con el botón de borrar, para hacer que funcione este botón vamos a poner el siguiente código.
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBorrar.Click
Dim tabla As DataTable
tabla = Me.DsBAlumnos.Tables("ALUMNOS")
Dim aux As String = txtMatricula.Text
Dim delRow As DataRow = tabla.Rows.Find(aux)
delRow.Delete()
If MessageBox.Show("Estas seguro que quieres borrar el registro?", "Borrar Registros", MessageBoxButtons.YesNo) = DialogResult.Yes Then
Me.adaptBAlumn.Update(tabla.Select(Nothing, Nothing, delRow.RowState))
Else
tabla.RejectChanges()
End If
limpiaCajas()
ocultaCajas()
End Sub
| Dim tabla As DataTable | Se crea una instancia de tipo tabla |
| tabla = Me.DsBAlumnos.Tables("ALUMNOS") | Se le anexan a esa tabla todos los registros que están almacenados en el adaptador son referenciados a la tabla. |
| Dim aux As String = txtMatricula.Text | ponemos el valor de la matricula que se encuentra en la caja de texto en una variable de tipo string. |
| Dim delRow As DataRow = tabla.Rows.Find(aux) | se declara una instancia de tipo registro delRow y se asigna a esa instancia los valores del registro en la cual la matricula coincida con el campo de la colección de filas que pertenecen a la tabla. |
| delRow.Delete() | Se usa el método delete del objeto delRow, indicando que se va a eliminar. |
| If MessageBox.Show("Estas seguro que quieres borrar el registro?", "Borrar Registros", MessageBoxButtons.YesNo) = DialogResult.Yes Then | Se manda un mensaje de confirmación, indicando si realmente se desea borrar el registro. Indicando con un mensaje de texto con dos botones, si/no. |
| Me.adaptBAlumn.Update(tabla.Select(Nothing, Nothing, delRow.RowState)) | En caso de que se el usuario haya confirmado la eliminación del registro se hará una actualización de acuerdo a una selección de la tabla con los objetos que coinciden con el estado especificado del dataRow, que en esta caso tiene el estado de delete. |
| Else tabla.RejectChanges() End If | En caso de que el usuario no haya confirmado el borrado, se hace un rechazo de cambios y así no se eliminara ese registro. |
| limpiaCajas() ocultaCajas() | Por ultimo se manda a llamar a estas dos funciones, la primera limpia las cajas, para poder recibir nuevos datos. Y la segunda función oculta todas las cajas de texto, dejando solo la caja de texto de la matricula visible, para una nueva búsqueda de registro |
Por ultimo aquí tenemos el código de las funciones de limpia cajas y el de ocultar cajas.
Private Sub limpiaCajas()
txtMatricula.Text = ""
txtNombre.Text = ""
txtApellido.Text = ""
txtDireccion.Text = ""
chkInscrito.Checked = False
End Sub
Private Sub ocultaCajas()
lblnombre.Visible = False
txtNombre.Visible = False
lblApellido.Visible = False
txtApellido.Visible = False
lblDireccion.Visible = False
txtDireccion.Visible = False
lblInscrito.Visible = False
chkInscrito.Visible = False
btnBorrar.Visible = False
End Sub
Eliminación de registros de la tabla Inscritos
En la pantalla de bajas de inscripciones hay que poner dos cajas de texto, que servirán para capturar los datos que se van a borrar.
Una vez que se agregan todos estos elementos, tenemos que modificar un poco el código, ya que en la base de datos, en la tabla “INSCRIPCIONES” las dos columnas que tiene son campos llave, es necesario indicar los datos para los dos campos, por lo tanto primero se tiene que hacer una búsqueda en la tabla y tiene que encontrar el valor de los dos campos, para poder borrar el registro.
Se agrega el siguiente código el cual nos ayudara a eliminar un registro, dentro de la función del botón de borrar al darle clic.
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBorrar.Click
Dim tabla As DataTable
tabla = Me.DsBIncripciones.Tables("INSCRIPCIONES")
Try
Dim key2(1) As Object
key2(0) = txtCveMat.Text
key2(1) = txtMatric.Text
Dim delRow As DataRow
delRow = tabla.Rows.Find(key2)
If Not (delRow Is Nothing) Then
delRow.Delete()
If MessageBox.Show("Estas seguro que quieres borrar el registro?", "Borrar Registros", MessageBoxButtons.YesNo) = DialogResult.Yes Then
Me.AdapterInscrip.Update(tabla.Select(Nothing, Nothing, delRow.RowState))
Else
tabla.RejectChanges()
End If
Else
MsgBox("Registro no encontrado")
End If
Catch eEndEdit As Exception
System.Windows.Forms.MessageBox.Show(eEndEdit.Message)
End Try
End Sub.
| Dim tabla As DataTable | tabla = Me.DsBIncripciones.Tables("INSCRIPCIONES") Estas dos líneas nos crean la tabla copia en VB, con todos los datos de la base de datos original. |
| Dim key2(1) As Object key2(0) = txtCveMat.Text key2(1) = txtMatric.Text | Se declara una variable de tipo matriz con dos objetos, en el primer objeto se coloca la clave de la materia de la caja txtCveMat y en el segundo objeto se pondrá la matricula de la caja de texto txtMatric. |
Dim delRow As DataRow delRow = tabla.Rows.Find(key2) | Se declara una variable de tipo dataRow y se llena con el registro que sea encontrado con los datos de los dos campos. |
If Not (delRow Is Nothing) Then delRow.Delete() | Si nuestro datarow dekRow no esta vacio, pues se eliminara el registro, en caso de que este vacio, es que no se encontró el registro en la base de datos, y se mandara un alerta diciendo que no se encontró el registro. |
If MessageBox.Show("Estas seguro que quieres borrar el registro?", "Borrar Registros", MessageBoxButtons.YesNo) = DialogResult.Yes Then Me.AdapterInscrip.Update(tabla.Select(Nothing, Nothing, delRow.RowState)) | Después de marcar el datarow como listo para borrar, se manda una ventana de alerta con dos botones, en la cual se confirma que si realmente se va a borrar o no. En caso de que sea SI, entonces de hará una actualización en la base de datos original, borrando el registro indicado. |
Else tabla.RejectChanges() End If | En caso de que se le de NO en la ventana de confirmación, solo se recargara la tabla con los mismos datos que se tiene, eliminando el estado de borrado del datarow. |
| Else MsgBox("Registro no encontrado") End If | Esta caso se manda el mensaje de texto de que no se encontró el registro indicado. |
Ejercicio:
Haz las bajas de las materias, inserta las cajas de texto que sean necesarios. Recuerda que primero debe de buscar la materia que se desea eliminar, y se debe de lanzar un mensaje de confirmación de eliminación.
2 comentarios:
HOLA PROFESOR QUE CREE YA NOS ATORAMOS EN LA PARTE FINAL 4 YA QUE NOS CONFUNDE UN POCO EN LAS CONFIGURACIONES O CAMBIOS QUE LE TENEMOS QUE DAR A BAJAS INCRIPCIONES Y BAJAS MATERIAS AH Y OTRA COSA LA DEPURACION NO NOS LA DA Y ESO NOS PREOCUPA DEMASIADO ESPEREMOS Y LO VEAMOS EL DIA DE MAÑANA A LAS 9 PARA QUE NOS AYUDE PLIS
EL COMENTARIO DE ANTERIOR DE QUE TENIAMOS ALGUNAS DUDAS DE LA PARTE 4 ES DE ESQUIVEL MARTINEZ CYNTHIA, ROA PEREZ KARINA Y MOLINA FARFAN ALJANDRA OK CUIDESE MUCHO Y POR FA VENGA AYUDARNOS
Publicar un comentario