Programación General > Visual Basic 6.0 e inferiores

 ¿como puedo hacer esto????

(1/1)

willysistemas:
Hola estoy tratando de implementar un sistema de matricula de estudiantes de un colegio, la idea es que la matricula se haga cada año pero me surge la duda como hacer para selecinar el año de trabajo y que el sistema me cargue unicamente los registross correspondientes a ese año para poder tranajar con ellos. he diseñado un form como el de la imagen[attachment=0:1vosj1u4]Sin título-1.jpg[/attachment:1vosj1u4] no se como seria el codigo si alguien me da una idea lo agradeceria mucho

Nebire:

--- Cita de: "willysistemas" ---Hola estoy tratando de implementar un sistema de matricula de estudiantes de un colegio, la idea es que la matricula se haga cada año pero me surge la duda como hacer para selecinar el año de trabajo y que el sistema me cargue unicamente los registross correspondientes a ese año para poder tranajar con ellos. he diseñado un form como el de la imagen[attachment=0:17fdbmrq]Sin título-1.jpg[/attachment:17fdbmrq] no se como seria el codigo si alguien me da una idea lo agradeceria mucho
--- Fin de la cita ---

Usa un control datetimepicker para mostrar un calendario y/o limitar la fecha.
Si haces búsqeudas en el foro por el nombre del control, hallarás ejemplos para manejar las propiedades que precisas...

willysistemas:
Nebire, gracias por responder pero creo que no me hice entender, la idea es seleccionar el año de trabajo y que se carguen los datos correspondiente a ese año, lo que pasa es que el sistema guarda la informacion de estudiantes especificamente la matricula de alumnos de colegio y estos datos se actualizan cada año cada que el alumno cambia de grado pero van quedando los datos entonces se hace necesario poder escoger el año de trabajo para poder tarabajar con esos datos. asi por ejemplo si yo quiero trabajar solo con los datos de un año anterior tendria que escoger de esa lista para poderlos visualizar.

Nebire:
Incluso ahora no te explicas lo suficiente.

Me parece entender que puedes querer esto otro...
Un método que describa como guardar los datos relevqntes de modo que puedas luego obtener un conjunto de ellos filtrando por año.
Bien si fuera esto, como tampoco indicas el método para guardar los datos (asumo que es una base de datos), entonces lo  adecuado es
que tengas un campo Año en tu base de datos.
Supongamos que los campos que contiene una tabla son (esta tabla podría llamarse DatosCurso):
IdAlumno: un identificador único autoincrementable enlazado a otra tabla que contiene datos específicos del alumno, (nombre apellidos,fecha nacimiento, teléfono, localidad, calle...)
Grado: el que está cursando actualmente,  1º, 2º, 3,º.... sean en semestres o anualidades...
Materia:  El curso que realiza... Psicología, Medicina...
Por tanto sería acorde introducir un campo más llamado año:
Año: año en que el alumno referenciado cursa tal materia y tal grado....

Por tanto tú luego puedes hacer varias funciones para obtener datos de esta tabla (DatosCurso) (o de la tabla DatosAlumno)  las más lógicas serían...
(en el código de más abajo se muestra un ejemplo para que todas estas funciones por separado sean 1 sola).
Filtrar por materia:
01º Obtener todos los alumnos que cursan una materia (por ejemplo que estudien psicología)
05º Obtener todos los alumnos que cursan una materia filtrado por grado (por ejemplo que estudian psicología de 5º grado).
03º Obtener todos los alumnos que cursan una materia filtrado por año (por ejemplo que estudian psicología, en 2010)
07º Obtener todos los alumnos que cursan una materia filtrado por grado y año (por ejemplo que estudian psicologia de 5º grado en 2010)
Filtrar por grado:
04º Obtener todos los alumnos que tienen tal grado (por ejmplo todos los que acaban de iniciar (no han cursado 2º grado aún)
06º Obtener todos los alumnos que tienen tal grado filtrado por fecha (por ejmplo todos los que acaban de iniciar (no han cursado 2º grado aún), en 2010)
- el filtrado por grado, fecha y materia sería lo mismo que el 3º caso
Filtrar por fecha:
02º Obtener todos los alumnos que cursaron el año x (por ejmplo que estuvieron matriculados en 2008)
- Filtrar por año y grado es igual 6º
- filtrar por año y materia es igual que 3º
- filtrar por año, grado y materia es igual que 7º

Por tanto la base de estas querys podría ser obtener un recordset a partir de unas cadenas que podrían ser en su base constantes y donde cada vez lo que cambia son los parámetros.
El siguiente código sería un ejemplo de como obtener un recordset sin necesidad de crear tantas funciones explícitamente... para ello primero habría de llamarse a una función que crea una query en base a usar o no cualquiera de los 3 parámetros de filtrado, luego con dicha query pedimos el recordset, queda a tu esfuerzo (aparte de corregir algún fallo en el código, está hecho directamente) volcar el recordset al control/les tal como tengas diseñada la interfaz...


--- Código: Visual Basic --- ' Prepara una query en base a los parámetros que utilicemos, sean estos cuales sean... si se omiten todos los parámetros, se recogerían todos los registros de dicha tabla.public function PreparaQuery(byref optional Materia as vaiant, byref optional Fecha as variant, byref optional Grado as variant, optional Cuantos as variant) as string       dim  b as string, w as string, m as string, g as string, f as string             if isMissing(cuantos) then              if isNumeric(cuantos) then                      b = " TOP " & cstr(cuantos)   'seleccionará los x primeros, esto lo puedes modificar a tu gusto, se expone sólo como ejemplo de sugerencia                else                    b= " *"                                     ' seleccionará todos               end if       else            b= " *"                                            ' seleccionará todos       end if                     ' se usan los 3 campos (siempre que no se haya omitido alguno), se prepara esta parte en base a este hecho                               m= Subwhere(Materia, "Materia")          f= Subwhere(Fecha, "Fecha")           g= Subwhere(Grado, "Grado")             ' Si materia no fue omitido                              if m <>"" then w = " WHERE " & m            if w <>"" then                   if f <>"" then w = w " AND " & f     ' si fecha no fue omitido          else   ' materia fue omitido                  if f <>"" then w = " WHERE " & f     ' si fecha no fue omitido          end if              ' si al menos materia o fecha no fueron omitidos          if w <>"" then                   if g <>"" then w = w " AND " & g     ' si grado no fue omitido          else    ' materia y fecha fueron omitidos                  if g <>"" then w = " WHERE " & g     ' si grado no fue omitido          end if          PreparaQuery = "Select" &  b & " FROM tblDatosCurso" & iif( w<>"", w,"")end function '  compone parte de los campos para el filtro.private function Subwhere( byref Valor as variant, byval Campo as string) as string         dim w as string          on local error goto SaleWhere         if not ismissing(Valor ) then                 w = ucase$(trim$((Valor ))          end if           if w <> "" then                  w = " " & chr(34) & Campo & chr(34) & " = " & w          end if          Subwhere=w        exit functionSaleWhere:       Subwhere=""end function ' supongamos que utilizamos por debajo un control  adodc...public function GetDatosCurso(byval query as string) as ADODB.recordset        Dim Cmd As ADODB.Command, Conex As ADODB.Connection         if query <> "" then              Set Conex = New ADODB.Connection              Conex.Open Adodc1.ConnectionString   ' utilizamos la conexión establecida con el objeto Adodc1              Set Cmd = New ADODB.Command              With Cmd                    Set .ActiveConnection = Conex                    .CommandType = adCmdText                    .CommandText = query                      set  GetDatosCurso = .Execute(, , adCmdText)             End With        end ifend function  NOTA: el código está puesto 'al vuelo'  de modo que a lo mejor necesitas hacer alguna corrección, (en la query  sobretodo)

Luego de obtenido el recorset si se quiere obtener datos del alumno, fuerza a seleccionar una fila (del control donde exhibas los datos) y en conjunto con un botón (o sin él, directamente al cambiar de fila), obtén los datos del alumno a través de su id alumno:

--- Código: Visual Basic ---      "SELECT * FROM  tblDatosAlumno WHERE idalumno = fila(idseleccionado)" ' fila(idseleccionado) recoge el dato idAlumno correspondiente al registro seleccionado.   y vuelcas dicho contenido , sobre unos controles al efecto...
 
En fin no sé si esto lo que querías, porque no has sido lo suficientemente claro... o por lo menos yo no he terminado de comprender lo que reclamas.

Navegación

[0] Índice de Mensajes

Ir a la versión completa