Make your own free website on Tripod.com
Volver a ControlData Ir al Indice Ir a Agregar registros
Más sobre ControlData

En el siguiente ejercicio colocaremos en un formulario dos listas. En LbH deberán agruparse todos los empleados hombres de la tabla empleados de nuestra base de datos. En LbM se agruparán todas las mujeres mediante un botón Cmdmostrar. Otro botón CmdSueldo agrupará en tres cajas de texto (TbEmp, TbJefe y TbTotal) el valor total de sueldos cobrados por los Empleados, por los Jefes y los totales generales respectivamente. Nótese que el valor total es mayor que la suma de los valores parciales (Empleados y Jefes). Esto se debe porque hay en la base de datos también un Supervisor y un Gerente.

Private Sub CmdSueldo_Click()
I = 0
J = 0
K = 0
D.Recordset.MoveFirst
'Nos movemos al primer registro
While Not D.Recordset.EOF
'Solo hasta el último registro
I = I + D.Recordset!Sueldo
' I, acumula el campo Sueldo
D.Recordset.MoveNext
'Mueve al registro siguiente
Wend
Tbtotal.Text = I
'Muestra el total de Sueldos en TbTotal
D.Recordset.MoveFirst
While Not D.Recordset.EOF
If D.Recordset!Cargo = "Emp" Then
'Filtra del campo Cargo solo los empleados
J = J + D.Recordset!Sueldo 'Acumula del campo Sueldo aquellos que en campo cargo sean empleados
D.Recordset.MoveNext
TbEmp.Text = J
'Muestra el total de sueldos de Empleados en TbEmp.
ElseIf D.Recordset!Cargo = "Jef" Then 'Crea una nueva condición "aquellos que no sean "Emp" y sean "Jef"
K = K + D.Recordset!Sueldo
'Acumula en K la condición anterior
D.Recordset.MoveNext
Tbjefe.Text = K
' Muestra el total de sueldos de Jefes en Tbjefe.
Else
D.Recordset.MoveNext
'Como hay también Supervisores y Gerentes, esta orden se agrega para que el ciclo llegue a EOF
End If
Wend
End Sub
Private Sub CmdMostrar_Click()
LbH.Clear
'Limpia la lista de datos anteriores
While Not D.Recordset.EOF
'Pone como condición no sobrepasar el final de los registros de la b.de datos
If D.Recordset!Sexo = "m" Then
LbH.AddItem D.Recordset!Apellido
'Agrega a LbH solo el Apellido que en el campo Sexo sea ="m"
D.Recordset.MoveNext
'Se mueve al registro siguiente
Else
LbM.AddItem D.Recordset!Apellido
'El registro que no cumpla la condición anterior es incluido en la lista LbM
D.Recordset.MoveNext
End If
Wend
End Sub
El siguiente ejercicio es una variante del anterior usando la barra de menues. Un botón Cmdmostrar (con caption "apellidos") nos muestra en la lista Lb todos los apellidos de la tabla empleados de nuestra base de datos. En la barra de Menus, Informes nos permite desplazarnos a 4 opciones Total Sueldos, Jefes, Empleados y Por Sexo que darán lugar a la creación de 4 formularios Form2, Form3, Form4 y Form5 respectivamente además del formulario principal Form1. En Form2 se colocará una caja de texto Tbs donde quedará ubicado el total de sueldos. En Form 3 habrá una lista LbJ donde quedarán incluidos todos los Apellidos de los Jefes. En Form4 habrá una lista Le donde se incluirán los empleados. En Form5 habrá una etiqueta que dirá "Por Sexo" y dos listas Lbh y Lbm agruparán los apellidos por sexo.
Private Sub cmdmostrar_Click()
D.Recordset.MoveFirst
'Mueve al primer registro
Lb.Clear
'Limpia la lista de datos anteriores
While Not D.Recordset.EOF
'Condición que impide superar el último registro
Lb.AddItem D.Recordset!Apellido
'Agrega un apellido a la lista Lb
D.Recordset.MoveNext 'Se mueve al registro siguiente
Wend
End Sub
Private Sub mnutotsueldos_Click()
T = 0
D.Recordset.MoveFirst
While Not D.Recordset.EOF
T = T + D.Recordset!sueldo
'T acumula los registros sueldo
D.Recordset.MoveNext
Wend
Form2.Show
'Muestra el formulario 2
Form2.Tbs.Text = T
'Muestra el resultado T en Tbs del form2
End Sub
Private Sub mnujefes_Click()
Form3.Show
D.Recordset.MoveFirst
While Not D.Recordset.EOF
If UCase(D.Recordset!Cargo) = "JEF" Then
'Filtra todos los registros Cargo que contengan "Jef".UCase (mayúsculas en minúsculas).
Form3.Lbj.AddItem D.Recordset!Apellido
'Agrega el registro apellido que cumpla con las condiciones anteriores
End If
D.Recordset.MoveNext
'Mover al siguiente
Wend
End Sub
Private Sub mnuempleados_Click()
Form4.Show
D.Recordset.MoveFirst
While Not D.Recordset.EOF
If UCase(D.Recordset!Cargo) = "EMP" Then
'Filtra todos los registros Cargo que contengan "Emp"
Form4.Le.AddItem D.Recordset!Apellido 'Agrega el registro apellido que cumpla con las condiciones anteriores
End If
D.Recordset.MoveNext
'Mover al siguiente
Wend
End Sub
Private Sub mnuxsexo_Click()
Form5.Show 'Muestra el formulario 5
D.Recordset.MoveFirst
While Not D.Recordset.EOF
If UCase(D.Recordset!Sexo) = "M" Then '
'Filtra todos los registros sexo que contengan "M"
Form5.Lbh.AddItem D.Recordset!Apellido '
'Agrega a la lista Lbh el registro apellido que cumpla con las condiciones anteriores
Else
Form5.Lbm.AddItem D.Recordset!Apellido
'Agrega a la lista Lbm el registro apellido que no cumpla con las condiciones anteriores
End If
D.Recordset.MoveNext
Wend
End Sub
Como se podrá observar todo el código se ha colocado en el formulario 1. Esto es así ya que es allí donde está el menú. De esta forma al hacer click sobre este último se va al formulario que corresponda mediante la orden Form(n).Show. Para agregar a la lista o caja de texto el dato que se desee, como estamos en el formulario 1 siempre se debe anteponer el nombre del formulario donde se encuentra el objeto.
En la próxima veremos cómo agregar , quitar y buscar registros desde V.Basic
Volver a ControlData Ir al Indice Ir a Agregar registros