miércoles, septiembre 05, 2007

Tutor Embedded Visual Basic - Capitulo 9

Por: Roberto Alvarado

Capitulo 9

En este capitulo vamos a terminar la captura de los datos de la opción Aplicaciones.

Para empezar vamos a modificar la sección del menú en donde escogemos un nuevo registro para configurar la pantalla y los campos de Aplicaciones, vamos a agregar el siguiente fragmento de código :

If fraAplicaciones.Visible Then

Text8.Enabled = True

Text8.Text = ""

Text9.Text = ""

End If

En la opción de Grabar, agregamos el código correspondiente a la Tabla Aplicaciones y modificamos algo el código anterior, a continuación mostramos el código para esta opción:

If fraClientes.Visible Then

rs.Fields("IdCliente") = Text1.Text

rs.Fields("Nombre") = Text2.Text

rs.Fields("Direccion") = Text3.Text

rs.Fields("Telefonos") = Text4.Text

rs.Fields("Celular") = Text5.Text

rs.Fields("Fax") = Text6.Text

rs.Fields("ValorHora") = Text7.Text

End If

If fraAplicaciones.Visible Then

rs.Fields("IdApp") = Text8.Text

rs.Fields("Aplicacion") = Text9.Text

End If

Rs.Update

Note que el Update lo colocamos al final y colocamos dentro de una instrucción if los datos para clientes y los datos para las Aplicaciones.

Vamos a trasladar la instanciación del objeto recordset rs al evento Load de la forma, lo eliminamos de la opción Nuevo de Clientes y lo colocamos en el evento Load de la forma . Entonces el código para los menús de Clientes y Aplicaciones quedaría de la siguiente manera:

Case "mnuTabClientes"

'CLIENTES

fraClientes.Top = 0

fraClientes.Left = 30

fraClientes.Visible = True

ActivarMenu mnuAccion

'Abro el recordset

rs.Open "Clientes", cnn, adOpenDynamic, adLockOptimistic

Case "mnuTabApp"

'APLICACIONES

fraAplicaciones.Top = 0

fraAplicaciones.Left = 30

fraAplicaciones.Visible = True

ActivarMenu mnuAccion

'Abro el recordset con la tabla Aplicaciones

rs.Open "Aplicaciones", cnn, adOpenDynamic, adLockOptimistic

Muy bien... ha llegado la hora de colocarle código a los botones de navegación que tenemos, entonces nos vamos al procedimiento MenuBar1_ButtonClick y colocamos el siguiente código:

Private Sub MenuBar1_ButtonClick(ByVal Button As MenuBarLib.MenuBarButton)

Select Case Button.Key

Case "btnInicio"

rs.MoveFirst

Case "btnPrevio"

rs.MovePrevious

If rs.BOF Then

rs.MoveFirst

MsgBox "Es el PRIMER Registro", vbApplicationModal + vbOKOnly, "Consultando..."

End If

Case "btnSigte"

rs.MoveNext

If rs.EOF Then

rs.MoveLast

MsgBox "Es el ULTIMO Registro", vbApplicationModal + vbOKOnly, "Consultando..."

End If

Case "btnFin"

rs.MoveLast

End Select

MuestraRegistros

End Sub

Para poder acceder a este evento del control MenuBar, nos colocamos en el evento MenuClick del control y en la parte superior derecha de la ventana de edición, en donde aparece el nombre del evento que estamos editando, hacemos clic sobre la flecha que aparece en la parte derecha del nombre del evento, y de la lista que aparece escogemos el evento ButtonClick.

Con este código si presionamos el botón Primero nos colocamos en el primer registro del recordset, si lo hacemos en el botón anterior, nos movemos un registro atrás, si presionamos siguiente, nos desplazamos al siguiente registro y si le decimos ultimo, nos vamos al ultimo registro del recordet. Cada vez que nos movamos vamos actualizando los datos en la pantalla dependiendo de que opción tengamos escogida.

Muy bien debemos tener cuidado cuando estemos editando o creando un nuevo registro para desactivar los botones, ya que si los dejamos activos en estos momentos podemos tener errores al momento de guardar la información.

Vamos a crear dos procedimientos, uno para desactivar los botones y otro para activarlos nuevamente, aquí esta el código de estos dos procedimientos:

Sub DesactivoNavega()

MenuBar1.Controls.Item(4).Enabled = False

MenuBar1.Controls.Item(5).Enabled = False

MenuBar1.Controls.Item(6).Enabled = False

MenuBar1.Controls.Item(7).Enabled = False

End Sub

Sub ActivoNavega()

MenuBar1.Controls.Item(4).Enabled = True

MenuBar1.Controls.Item(5).Enabled = True

MenuBar1.Controls.Item(6).Enabled = True

MenuBar1.Controls.Item(7).Enabled = True

End Sub

El procedimiento DesactivoNavega lo vamos a utilizar en la opción Nuevo y Editar, el procedimiento ActivoNavega lo vamos a utilizar en las opciones Guardar y Cancelar del menú.

Si ya han probado la opción Cancelar del menú Acción, se habrán dado cuenta que esta mal cuando retorna el menú, el error se soluciona colocando estas líneas de la siguiente forma:

mnuAccion.Items("mnuCerrar").Enabled = True

mnuAccion.Items("mnuCancelar").Enabled = False

Coloquemos este procedimiento:

Private Sub Text8_LostFocus()

Text8.Text = UCase(Text8.Text)

End Sub

Con esto convertimos a mayúsculas cuando el textbox pierda el foco. Así estamos seguro que el Id de la aplicación siempre va a estar en mayúscula.

Ahora hagamos la opción de borrado para estas dos opciones que están activas en este momento.

Case "mnuborrar"

'BORRAR

Dim Resp As Long

Resp = MsgBox("Esta seguro de ELiminar este registro?", vbApplicationModal + vbCritical + vbYesNo, "Eliminando Registros...")

If Resp = vbYes Then

rs.Delete

rs.MoveFirst

MuestraRegistro

End If

Ese seria el código para borrar registros de la tabla. La misma rutina nos sirve para todas las tablas, dependiendo de la complejidad de su aplicación así será de compleja su rutina de borrado.

La rutina MuestraRegistro será esta:

Sub MuestraRegistro()

If fraClientes.Visible Then

Text1.Text = rs.Fields("IdCliente")

Text2.Text = rs.Fields("Nombre")

Text3.Text = rs.Fields("Direccion")

Text4.Text = rs.Fields("Telefonos")

Text5.Text = rs.Fields("Celular")

Text6.Text = rs.Fields("Fax")

Text7.Text = rs.Fields("ValorHora")

End If

If fraAplicaciones.Visible Then

Text8.Text = rs.Fields("IdApp")

Text9.Text = rs.Fields("Aplicacion")

End If

End Sub

No hay comentarios.: