UNIVERSIDAD AUTONOMA METROPOLITANA
UNIDAD IZTAPALAPADIVISION DE CIENCIAS BASICAS E INGENIERIA
LICENCIATURA EN COMPUTACION
PROYECTO TERMINAL DE INVESTIGACION
SISTEMA DESARROLLADO PARA EL DEPARTAMENTO DE VINCULACION CON EL SECTOR PRODUCTIVO DEL CBTIS No. 6
22 de Marzo de 1999.
ASESOR:
(\
INDICE
INTRODUCCI~N
...
3DESCRIPCIóN DEL PROYECTO
...
DESARROLLO DEL PROYECTO
...
4
ENTREVISTAS
...
5MODELADO DEL SISTEMA
...
6
MODELO
ENTIDAD-RELACIÓN
...
16
DICCIONARIO DE DATOS
...
17
MANUAL DE USUARIO
CODIGO FUENTE
...
20Las escuelas tienen diferentes departamentos, los cuales a su vez realizan
funciones específicas. Estas funciones reciben el nombre de procesos, por ejemplo :
Proceso de inscripción de un alumno a la escuela, a la biblioteca, a actividades deportivas,
etc. Pero pueden involucrar no sólo a los alumnos sino a las personas que trabajan ahí,
como son los profesores, personal administrativo y personal en general, que en este caso
son principalmente pago de nómina, inscripción a cursos de actualización, etc.
Los procesos al cabo de un tiempo se pueden automatizar y es ahí donde se tiene
la necesidad de organizar, de forma óptima la información y tener acceso a ella sin
necesidad de tomar días para buscarla.
El equipo de cómputo con el software adecuado, puede optimizar el acceso a la
información, así como ahorrar horas-hombre de trabajo en buscar la información.
Nosotros en particular como profesionales en Computación estamos preparados
para resolver los problemas de Desarrollo en sistemas que satisfagan las necesidades de
automatización de esos procesos.
Como recién egresados tenemos que realizar un proyecto de investigación en áreas
donde sean útiles, así que decidimos hacerlo para una institución educativa pública, la
institución que acepto el proyecto no tenía ningún sistema que automatizara eficazmente
su información, por lo que se desarrolló completamente un sistema para sus actuales
necesidades.
Este proyecto sirvió para que reafirmaramos nuestros conocimientos en Análisis y
Diseño, así como para darnos cuenta de algunas fallas
,
para corregirlas. Así como laDESCRIPCIóN DEL PROYECTO.
El objetivo de este proyecto es la de automatizar el departamento de vinculación, para manejar la información de los alumnos, profesores,empresas, así como las
actividades relacionadas con éstas de una manera automática. El sistema debe tener la capacidad de manejar eficientemente, todo tipo de consultas y reportes, en cuanto a los alumnos egresados, profesores y actividades, altas, bajas y modificaciones.
El sistema debe de proporcionar las siguientes características:
0 Seguridad: La información solo debe ser manejada por la persona o personas
0 Confiabilidad: El sistema debe de proporcional información verídica
Funcionalidad: Debe de cumplir con los requisitos establecidos al inicio del a cargo.
proyecto.
Este también proporcionara un subsistema de ayuda en línea y una barra de mensajes que indicaran las h c i o n e s disponibles a ejecutar y el como hacerlo, todo esto con el fin de hacer mas fácil su manejo.
DESARROLLODELPROYECTO
El desarrollo de un sistema de computación implica varias etapas y diversos especialistas para cada una de estas, siendo el establecimiento de los tiempos de termino posterior al análisis, sin embargo, en este caso los tiempos se ajustaran al tiempo establecido por la universidad para la conclusión de un proyecto terminal para C.B.I.
La gráfica de Gant sig. muestra los tiempos para el desarrollo de este proyecto:
ACTIVIDAD
Investigación y estudio de l a s herramientas
Entrevistas con usuarios
Análisis y Requerimientos de prueba
Diseiio y programación
Pruebas
Documentación
Generación de Manuales
Generación del Reporte
Presentación
Instalación y pruebas del usuario
Liberación del sistema
"
TIEMPO MESES
O 1 2 3 4 5 6
m
-
ENTREVISTAS
El primer paso en el desarrollo del proyecto son las entrevistas con los usuarios. El sistema a modelar debe cumplir en lo mejor posible las especificaciones dadas.
De estas se estableció lo siguiente para el departamento de Vinculación con el sector productivo.
Un alumno puede tener derecho a estar registrado desde el cuarto trimestre en adelante en bolsa de trabajo. Para las demás actividades dependerá del grado de conocimiento necesario, para tomar la actividad. En caso de no existir restricciones, queda a cargo del encargado del departamento, establecer los requisitos.
Un egresado puede tener derecho a estar registrado, si lo hizo cuando todavía era alumno o se registro para la bolsa de trabajo.
Un profesor está registrado, para poder tomar la actividad dependerá de la especialidad y el tipo de materias que imparte.
Las empresas son dadas de alta por la SEP, la cual manda al plantel, un archivo conteniendo las empresas, con las que tiene convenio.
Las actividades son dadas principalmente por las empresas como asistencia a conferencias, visitas a instalaciones, cursos de actualización a tomar en el plantel de parte de los empleados de la empresa, propuestas de trabajo, estadías de profesores en las
instalaciones de una empresa.
Registro, bajas y modificaciones de información Alumnos
0 Egresados
Profesores Empresas
Actividades (Cursos, Visitas, Estadias, Conferencias, Propuestas de trabajo) Enviados y Aceptados (alumnos y egreasados
Consulta y reporte Empresa por giro.
Actividad por Especialidad y por trimestre. Alumnos por Especialidad
0 Alumnos egresados por Especialidad
únicamente reportes Alumnos Egresados Profesores
MODELADO DEL SISTEMA
El siguiente paso es el modelado del sistema que se desea. Un sistema de proceso
La herramienta que utilizamos para describir la transformación de entradas a de datos involucra tanto datos como el proceso.
salidas de un diagrama de flujo de datos.
Los diagramas de flujos de datos consisten en procesos, agregados de datos, flujos y terminadores:
0 Los procesos se representan por medio de círculos o “burbujas”, en el
diagrama. Representan las diversas funciones individuales que el sistema lleva a cabo. Las funciones transforman entradas en salidas.
0 Losflujos se muestran por medio de flechas curvas. Son las conexiones
entre los procesos(funciones del sistema) y representan la información que dichos procesos requieren come entrada o la información que generan coma salida.
0 Los agregados de datos se representan por medio de dos líneas paralelas o
mediante una elipse. Muestran colecciones (o agregados) de datos que el sistema debe recordar por un periodo de tiempo.
Los terminadores muestran las entidades externas con las que el sistema se comunica.
Bajas
Cambios
W
Especialidad
-
usque& porespAltas
Bajas
Especialidad
Altas
Bajas
Cambios
/u
Cambios\
Bajas
,-b
fz!$:3*
X actividE nwado/aceptado '
Bajas
,-b
e$:&)
Enviado/AceptadosBajas
A continuación se muestra el diagrama de flujo que quedó al agrupar.
\ Busqueda por Giro
Empresa
,Busqueda Actividad por Especlalldad Altas
Rep. Actividades Trimestrales
Busqueda Alumno
\
por EspecialidadI
ActividadesI
Empresa\
Busqueda Egresados por EspecialidadI
Empresa\
Busqueda de Trabajadores
Por Clave
Bajas
"O
TrabajadoresA b i o s
f
+
-
"
4"-
I
TrabajadoresI
Empresa/
Reporte ProfesoresA continuación una vista de las mostradas anteriormente con las relaciones que existen entre ellas, que son más visibles al ponerlas todas en un mismo conjunto.
Explosio'n de cada Esfera
Actividades
Bajas Especialidad
Cambios L
v
L
I
Actividades-
Trimestre\Reportes
Especialidad
/
Env/Acep
Matricula
Actividad
m.
EnvIAcep.
P
Inf.
Trabajadores
Clave Busqueda
Trabajadores
Inf
Trabajadores
-
Inf.
Alumnos
Especialidad
O
CambiosBusqueda
Alumnos
Bk
(
EgresadcBusque?-
A
Egresados\
EspecialidadO
O
Cambios
Cambios
Bajas
Egresados
Inf. Egresados
Inf.
MODELO ENTIDAD-RELACIóN
Estos diagramas aunque útiles, solo resaltan un aspecto principal de un sistema: sus funciones.
Necesitamos conocer a detalle la información que debe contener el sistema, y no solo eso, sino también la relación que existe entre los agregados de información. Para esto necesitamos lo que se conoce como diagrama de entidad-relacion.
En este punto podemos ya obtener, entidades y las relaciones entre ellas, a este diagrama se le llama de entidad relación. También podemos obtener la información que contiene cada una de las entidades. Las lineas significan uno a muchos.
EMPRESAS I/ ALUMNOS
"
7T "
ACTIVIDADES \I I
I ENV /ACEP
1.L "
"
EMPLEADOS
-
1 EGRESADOSI
Diagrama de Entidad-Relación
Lista de entidades:
EMPRESAS
EGRESADOS EMPLEADOS EW-ACEP Matricula Nombre Direccion Telefono Especialidad Estudio-actuales Institucion Trabajo Tel-trabajo
Clave Clave Inscripcion
Nombre Matricula
Direccion Clave-Actividad
Telefono Promedio
Materias-impartidas Observaciones Estatus
DICCIONARIO DE DATOS
El diccionario de datos es importante para conocer como que tipo de información va a contener cada dato, a continuación se presenta esta herramienta para el proyecto desarrollado.
A continuación se presenta el diccionario de datos para cada una de las entidades.
ALUMNO
MTRICULA 8{0-9}8
NOMBRE : nombre
+
segundo nombre+
apellido paterno+
apellido materno nombre: 3 { caracter legal} 1 Osegundo nombre: nombre
+
(segundo nombre) apellido paterno: 3 { caracter legal} 15apellido materno: 3 { caracter legal} 15 caracter legal: { [A-Z]
I
[a-z]}DZRECCZbN : (tipo de calle)
+
nombre de calle+
numero+
colonia+
[delegacionI
municipio]+
estadotipo calle [Av
I
Bldv ]nombre de calle: {[A-Z]
I
[a-z]} numero: {[O-9]}+
(1[A-Z] 1I
bis) colonia: 3{[A-Z]I
[a-z]}delegación o municipio: 3 { [A-Z]
I
[a-z]} 15 estado: 5 { [A-Z]I
[a-z]} 10TEL&FONO : 7 { [O-9]} 15
ESPECLALIDAD : 4{ [TEC-92]
I
[TCM-92]I
[TCN-921I
[TLC-92]}6 GRADO : 8 { 4-6) 1EGRESADOS MATRICULA NOMBRE DIRECCION TELEFONO ESPECIALIDAD
ESTUDIOS ACTUALES : 3 { [Caracter legal]} 50 RVSTITUCIÓN : 3 { [Caracter legal]} 50 TRABAJO : 3 { [Caracter legal]} 50
TEL-TRABAJO: 7{[0-9]}15
EMPLEADOS
CLAVE: 8{[0-9]}5 NOMBRE
DIRECCION TELEFONO
MATERIAS IMPARTIDAS : Material
+
Materia2+
Materia3+
Materia4+
Materia5 Materia: 3 { [Caracter legal]} 15ACTIVIDADES
ACTIVIDAD : 8{[0-9]}5 EMPRESA 8{ [O-915
TPO-ACT : {[VI
I
[PII
[CII
[AlI
[El) 1NOMBRE : [Tipo de Actividad]
+
[Nombre de Actividad]Tipo de Actividad: { [ Visitas]
1
[Propuestas]I
[Cursos]I
[Estadías]I
[Conferencias] } Nombre de Actividad: 3 { [Caracter legal]} 3 5RESPONSABLE : (Titulo)
+
nombre+
segundo nombre+
apellido paterno+
apellido maternoESPECIALIDAD :
Título : [Lic]
I
[ProflI
[Ing]NO-ALUMNOS : S{ [O-91) FECHA : [O-311 / [l-121 / 1998-1
EMPRESAS
NUM EMPRESA : 8 { [O-91) 5
NOMBRE : [Nombre de la Empresa]
I
[Razón Social] Nombre de la Empresa : 3 { [Caracter legal]} 50 DIRECCIONTELEFONO
CONTACTO : Nombre del contacto
materno
GIRO : S { [O-9]}2
Nombre del contacto : nombre
+
segundo nombre+
apellido paterno+
apellidoTEL-CONTA CTO : 7 { [ 0-91 } 1 5
EW-ACEP
CLAVE INSCRIPCIóN : S { [O-9]} MATN¿%JLA : 8{[0-9]}5
CLAVE-ACTIVIDAD : S { [O-9]}5 PROMEDIO : { [O-91
.
[O-9]}MANUAL DE USUARIO DEL SISTEMA VINCULA
Para instalar el sistema Vincula, se deben tener los discos de instalación, que son proporcionados junto con este manual. Primero se debe ejecutar la instrucción a:\setup.exe del disco #1, después aparecerá una pantalla que nos irá guiando para hacer la instalación de la aplicación, la cual nos pedirá que introduzcamos los otros dos discos.
La pantalla principal del sistema tiene un menú que tiene las siguientes opciones :
0 Mantenimiento de Catalogos
Consultas
0 Reportes 0 Ayuda
La pantalla de inicio se ve como la siguiente :
Mantenimiento de Catalogos
:El menú Catálogos tiene las siguientes opciones :
o Actividades
o Alumnos
o Egresados
0 Profesores 0 Empresas
o Enviado/Aceptado
Cada catálogo se manipula a través de una pantalla, la cual tiene barras de texto y botones. A continuación se describirá el procedimiento para usarlos.
0 Las barras de texto son de color blanco y verde. La de color verde es la clave sobre la cual se harán las búsquedas para accesar la información una vez que haya sido dada de alta, y por lo tanto debe ser única. La de color blanco es para introducir la mayoría de la información, ya que es la descripción. Hay varias maneras de pasar de una a otra, una es cuando se esta introduciendo el texto por primera vez se oprime <Enter> con esta tecla se interpreta que ya no se va introducir nada en esa barra de texto, otra es usar el tabulador o el ratón. Es importante notar que no puede dejarse un texto en blanco, ya que aparecerá un mensaje de error, al hacer cualquier operación (alta, modificación).
o Los botones hacen la operación, que indica la leyenda que tienen cada uno que son (Limpia, Agregar, Buscar, Salir). Mas adelante se describen las operaciones que hacen cada uno de ellos.
El catálogo de alumnos se muestra a continuación :
A continuación se muestra la pantalla del catálogo de Empleados :
Para modificaciones y bajas se busca el registro, tecleando el criterio de búsqueda, se oprime el botón buscar si lo encontró se muestra una pantalla como la de catalogo de empresas que es la siguiente :
A continuación se muestra la pantalla del catálogo de actividades :
En esta pantalla se puede modificar o borrar el registro actual. Ya sea que se modifique el registro o se borre, después de realizar la operación regresa a la pantalla anterior. Para modificar un registro se teclea los campos a ser cambiados menos la clave que aparece inhabilitada en color gris, a continuación se oprime el botón de modificar. Para el caso de borrar el registro, aparece una ventana con el mensaje de confirmación de borrado con las opciones de Sí, No y Cancelar.
Todas las ventanas tienen las mismas opciones con excepción, del catalogo de
EnviadoMceptado que varia en que no tiene opción de buscar. Esta pantalla tiene un control en la parte de abajo que tiene flechas en dos direcciones, éste sirve para moverse a través del catalogo registro por registro.
Consultas
:El menú Consultas tiene las siguientes opciones :
Alumnos por Especialidad
Alumnos Egresados por Especialidad Empresas por Giro
Actividades por Especialidad
Todas las consultas tienen una ventana a través de la cual se procesa la consulta. Esta pantalla es de la siguiente forma :
La consulta se presenta en una ventana, que ya está lista para imprimir, si es que se requiere, o solamente para verse en pantalla. A continuación se muestra la pantalla.
CENTRO DE BACHILLERATO TECNO'
DE SERVICIOS No. 6
DEPARTAMENTO DE VINCULACION C O K
REPORTE DE A L U M N O S P O R E I_
Reportes
:El menú Reportes tiene las siguientes opciones :
0 Actividades por Trimestre 0 Alumnos Egresados
Profesores
Algunos reportes se procesan a través de una ventana parecidas al módulo de consultas y otras no requieren de criterio de búsqueda, así que se hacen directamente. A continuación la pantalla de reportes de actividades por trimestre.
El resultado de la consulta es un reporte, se presenta en una ventana que ya está lista para imprimir, si es que se requiere, o solamente para verse en pantalla. La pantalla se pede maximizar y se obtiene la siguiente :
CENTRO DE BACHILLERATO TECNOLbGICO
Y D E SERVICIOS ##6.
DEPARTAIMENTO DE VINCULACIbN CON EL SECTOR PRODUCTrV
€
REPORTE DE ACTIVIDADES POR TRIMESTRE
;: . T l U i u E ~ R E 2.
i L
e,~
ACTWIDADES.NOMBRE EMPRESAS.NOMBRE
RESPONSABLE FECHA ESPECIALIDAD OBSERV
$¶da
w LUCES 1 2 m . m S.A. DE C . V. w o - 2 3 JHTHIHJ WDndrr S.A.
M .
2
LUCES S.A. DE C. V.
Ayuda
:Este menu tiene solo una opción : Acerca
La pantalla que muestra contiene información acerca del sistema, como es versión, autor,
AYUDA
ENLINEA DEL
SISTEMA
VINCULA
La ayuda se invoca a traves de F1, y la pantalla es como la que aparece a
k w d a
Como se puede observar la pantalla tiene las mismas opciones del menú principal de la aplicación. Cada opción esta en un color verde y al pasar el ratón en esas áreas, se
Al seleccionar la opción de Actividades, aparece la pantalla que se muestra a continuación :
El catalogo de actividades contiene :
...."... Clave de &~&ja.&Ffúmero de actividad dad
legable cuando se selecciona una opción menú desplegable
Las opciones son :
Tipo de Actividad Caractcr desplegado cursos C Conferencias F
Practicas A
Estadias E Propuestas P
Visitas V
Al regresar a la pantalla principal y seleccionar la opción de Consultas, obtenemos la siguiente pantalla :
I
Este menú contiene los siguientes submenús :Alumnos por Especiahdad
Alurnnos E,qesados por Especialtdad
Empresas p o r &o
Actividades por Especiahdad
Todas las consultas se muestra una pantalla donde se teclea el criterio de la consulta. La consulta de Empresas por Giro es un poco diferente ya que sólo se selecciona el Giro de una tabla dando un click del rat&, cuando se selecciona cambia de color.
En los dos casos las consultas, se generan en una ventana que tambiCn puede ser usada para imprimir el resultado de la consulta.
CODIGO FUENTE MAS IMPORTANTE DE VINCULA
'RUTINAS DEL MODULO GL0BAL.BAS
Global DB As Database
Global gCurrentTb1-ALUMNOS As Recordset Global gCurrentTb1-EGRESADOS As Recordset Global gCurrentTb1-EMPLEADOS As Recordset
Global gCurrentTb1-EMPRESAS As Recordset
Global gCurrentTb1-ENVACEP As Recordset Global gCurrentTb1-ACTIVIDADES As Recordset
Function Valida-Fecha(NumDia, NumMes, N W o As Integer) As Boolean
Dim Bisiesto As Double
Dim Bisiesto2 As Integer
Dim NumeroDiasXMes As Integer
Select Case NumMes 'Evalúa Mes
Case Is = 1, 3, 5, 7, 8, 10, 12: NumeroDiasXMes = 3 1 'Enero Marzo Mayo Julio
Case Is = 2 'Febrero(Bisiest0 o no)
Agosto Octubre Diciembre
Bisiesto = N W o / 4
Bisiesto2 = Int(Bisiest0)
If Bisiesto = Bisiesto2 Then
NumeroDiasXMes = 29
Else
NumeroDiasXMes = 28
End If
Case Is = 4, 6, 9, 11: NumeroDiasXMes = 30 'Abril Junio Septiembre
Case Else 'Otros valores, Error sin medida
End Select
'MsgBox ("Mes="
+
Str(NumMes)+
" Dias="+
Str(NumDia)+
> "+
Str(NumeroDiasXMes))
If (NumDia > NumeroDiasXMes) Then
Noviembre
MsgBox "Error, No hay mes relacionado"
Valida-Fecha = False
MsgBox ("El numero de Dias no corresponden con el mes"
+
Chr(l3)+
"Intentelo Nuevamente") Else
End If
Valida-Fecha = True
Function EXISTE-ACT(Arg As String) Dim T As String
EXISTE-ACT = False
If Not gCurrentTb1-ACTIVIDADES.EOF Then
gCurrentTb1-ACTIVIDADES.MoveFirst
End If
While Not gCurrentTb1-ACTIVIDADES.EOF
T = gCurrentTbl-ACTIVIDADES("ACTIVn>AD")
If Arg = T Then
End If
gCurrentTb1-ACTIVIDADES.MoveNext
EXISTE-ACT = True
Wend End Function
Function EXISTE-ALUMNO(Mat As String) Dim T As String
EXISTE-ALUMNO = False
If Not gCurrentTb1-ALUMNOS.EOF Then
gCurrentTb1-ALUMNOS.MoveFirst
End If
While Not gCurrentTb1-ALUMNOS.EOF
T = gCurrentTb1-ALUMNOS("MATRICULA")
If Mat = T Then
End If
gCurrentTb1-ALUMNOS.MoveNext
EXISTE-ALUMNO = True
Wend End Function
Function EXISTE-EGRESADO(Matricu1a As String)
Dim T As String
EXISTE-EGRESADO = False
If Not gCurrentTb1-EGRESADOS.EOF Then
gCurrentTb1-EGRESADOS.MoveFirst
End If
While Not gCurrentTbl-EGRESADOS.EOF
T = gCurrentTbl-EGRESADOS('W"ARICULA")
If Matricula = T Then
End If
gCurrentTb1-EGRESADOS.MoveNext
EXISTE-EGRESADO = True
Function EXISTE-EMP(ArgEmp As String)
Dim T As String
EXISTE-EMP = False
If Not gCurrentTb1-EMPRESAS.EOF Then
gCurrentTb1-EMPRESAS.MoveFirst
End If
While Not gCurrentTb1-EMPRESAS.EOF
T = gCurrentTb1-EMPRESAS("NIJ"Eh4PRESA")
If ArgEmp = T Then
End If
gCurrentTb1-EMPRESAS.MoveNext
EXISTE-EMP = True
Wend
End Function
Function EXISTE-PROF(NumProf As String)
Dim T As String
EXISTE-PROF = False
If Not gCurrentTb1-EMPLEADOS.EOF Then
gCurrentTb1-EMPLEADOS.MoveFirst
End If
While Not gCurrentTb1-EMPLEADOS.EOF
T = gCurrentTb1-EMPLEADOS("CLAW3")
If NumProf = T Then
End If
gCurrentTb1-EMPLEADOS.MoveNext
EXISTE-PROF = True
Wend
'FORMA CATALOGO DE ACTIVIDADES
Private Sub AGREGA-ACTIVIDAD()
gCurrentTb1-ACTIVIDADES.AddNew
gCurrentTbl-ACTIVIDADES("ACTIVPDAD") = mskCveAct.Text
gCurrentTb1-ACTIVIDADES("EMFRESA") = mskCvEmp.Text
gCurrentTbl-ACTIVIDADES("TP0-ACT") = 1blTpoA.Caption
gCurrentTbl-ACTIVIDADES("NOMBRE") = txtNomAct.Text
gCurrentTb1-ACTIVIDADES("RESP0NSABLE") = txtResp.Text
gCurrentTb1-ACTIVIDADES("N0-ALUMNOS") = mskNoA1.Text
gCurrentTb1-ACTIVIDADES("FECHA") = mskFec.Text
gCurrentTb1-ACTIVIDADES("ESPECIAL,IDAD") = mskEspAct.Text
gCurrentTbl-ACTIVIDADES("TRIMESTRE") = mskTrim.Text
gCurrentTb1-ACTIVIDADES("OBSERVACI0NES") = txtObs.Text
gCurrentTb1-ACTIVIDADES.Update
End Sub
Private Function DESCOMP_FECHA()
Dim NumDia, NumMes, N W o As Integer
NumDia = Trim$(Mid(mskFec.Text, 1,2))
NumMes = Trim$(Mid(mskFec.Text, 4,2))
NumAño = Trim$(Mid(mskFec.Text, 7,2))
If Valida-FechaVumDia, NumMes, NumAiio) Then
Else
End If
DESCOMF-FECHA = True
DESCOMI-FECHA = False
End Function
Private Sub FormLoad()
cboTpoAct.AddItem "Curso" cboTpoAct.AddItem "Conferencia" cboTpoAct.AddItem "Estadias" cboTpoAct.AddItem "Practicas" cboTpoAct.AddItem "Propuestas" cboTpoAct.AddItem "Visitas"
Private Sub cboTpoAct-Click()
If cboTpoAct.Text = "Curso" Then
End If
If cboTpoAct.Text = "Conferencia" Then
End If
If cboTpoAct.Text = "Estadias" Then
End If
If cboTpoAct.Text = "Practicas" Then
End If
If cboTpoAct.Text = "Propuestas" Then
End If
If cboTpoAct.Text = "Visitas" Then
End If
1blTpoA.Caption = "C"
1blTpoA.Caption = "F"
1blTpoA.Caption = "E"
IblTpoACaption = "A"
1blTpoA.Caption = "Pll
1blTpoA.Caption = "V"
End Sub
Private Sub cmdAddAct-Click() Dim M As Integer
If CHECA-TEXT Then
If Not EXISTE-ACT(mskCveAct.Text) And EXISTE-EMP(mskCvEmp.Text) Then
If DESCOMP-FECHA Then AGREGA-ACTIVIDAD Else
M = MsgBox("La fecha es incorrecta,el registro no se dio de alta", vbOKOnly)
End If
M = MsgBox("La actividad existe o la empresa no existe,el registro no se dio de
Else
alta", vbOKOnly) End If
cmdClAct.SetFocus
SendKeys "-", True
M = MsgBox("PARA DAR DE ALTA UN REGISTR0,NINGUN TEXTO DEBE
Else
ESTAR VACIO", vbOKOnly) End If
Private Sub cmdBorAct-Click() Dim M As Integer
M = MsgBox("i ESTA SEGURO DE BORRAR EL REGISTRO ?'I, vbYesNoCance1)
If M = 6 Then
gCurrentTb1-ACTIVIDADES.Delete
gCurrentTb1-ACTIVIDADES.MovePrevious
End If
cmdBuscAct.Visible = True
cmdModAct.Visible = False
cmdBorAct.Visible = False
cmdAddAct.Visible = True
cmdClAct.Enabled = True
mskCveAct.Enabled = True
cmdClAct.SetFocus
SendKeys
"-",
TrueEnd Sub
Private Sub cmdBuscAct-Click() Dim Enc, T As Integer
Enc = O
gCurrentTb1-ACTIV1DADES.MoveFirst
Do Until Enc = 1 Or gCurrentTb1-ACTIVIDADES.EOF
If Not mskCveAct.Text = gCurrentTb1-ACTIVIDADES("ACTIV1DAD") Then
Else
End If
If Enc Then
gCurrentTb1-ACTIVIDADES.MoveNext
Enc = 1
Loop
mskCvEmp.Text = gCurrentTbl-ACTIVIDADES("EMPRESA")
1blTpoA.Caption = gCurrentTbl-ACTIVIDADES("TP0-ACT")
txtNomAct.Text = gCurrentTbl-ACTIVIDADES("NOMBRE")
txtResp.Text = gCurrentTb1-ACTIVIDADES("RESP0NSABLE")
mskNoA1.Text = Format$(Str$(gCurrentTbl-ACTIVIDADES("NO-ALUMNOS")),
mskFec.Text = Format$(gCurrentTbl-ACTIVDADES("FECHA"), "dcUmm/yy")
mskEspAct.Text = gCurrentTb1-ACTIVIDADES("ESPECL4LIDAD")
mskTrim.Text = gCurrentTb1-ACTIVIDADES("TRIMESTRE")
txt0bs.Text = gCurrentTb1-ACTIVIDADES("OBSERVAC1ONES")
cmdBuscAct.Visible = False
cmdModAct.Visible = True
cmdBorAct.Visible = True
cmdAddAct.Visible = False
cmdClAct.Enabled = False
mskCveAct.Enabled = False
mskCvEmp.Enabled = False
cboTpoAct.SetFocus
T = MsgBox("E1 registro no se encontró, verifique la clave e intente nuevamente",
Else
mskCveAct.SetFocus End If
End Sub
Private Sub cmdModAct-Click()
Dim M As Integer
If CHECA-TEXT Then If DESCOMP_FECHA Then
gCurrentTb1-ACTIVIDADES.Edit
gCurrentTbl-ACTIVIDADES("TPO-ACT") = 1blTpoA.Caption
gCurrentTbl-ACTIVIDADES("NOMBRE") = txtNomAct.Text
gCurrentTb1-ACTIVIDADES("RESP0NSABLE") = txtResp.Text
gCurrentTbl-ACTIVIDADES("NO_ALUMNOS") = mskNoA1.Text
gCurrentTb1-ACTIVIDADES("FECHA") = mskFec.Text
gCurrentTb1-ACTIVIDADES("ESPECL4LIDAD") = mskEspAct.Text
gCurrentTb1-ACTIVIDADES("TRIMESTRl3") = mskTrim.Text
gCurrentTb1-ACTIVIDADES("OBSERVAC1ONES") = txtObs.Text
gCurrentTb1-ACTIVIDADES.Update
M = MsgBox("La fecha es incorrecta , el registro no se modificó", vbOKOnly)
Else
End If
M = MsgBox("N0 SE MODIFICO ESTE REGISTR0,NINGUN TEXTO DEBE
Else
ESTAR VACIO", vbOKOnly) End If
cmdBuscAct.Visible = True
cmdModAct.Visible = False
cmdBorAct.Visible = False
cmdAddAct.Visible = True
cmdClAct.Enabled = True
mskCveAct.Enabled = True
mskCvEmp.Enabled = True
cmdClAct.SetFocus
SendKeys "-", True
'FORMA CONSULTA DE ACTIVIDAD X ESPECULIDAD.
Option Explicit
Dim gCurrentQueryDef As QueryDef Dim gCurrentRS As Recordset
Private Function CONS-ACTPOR-ESPE() As Boolean Dim TotalRegistros As Integer
On Error Resume Next
Set gCurrentQueryDef = DB.CreateQueryDef("ACTXESPE", "SELECT
ACTIVIDADES.NOMBRE,EMPRESAS.NOMBRE,ACTIVIDADES.RESPONSABLE,ACTIVI
DADES.NO ALUMNOS,ACTIVIDADES.FECHA,ACTIVIDADES.ESPECIALIDAD,ACTIVI
ACTIVIDADES,EMPRESAS WHERE ACTIVIDADES.ESPECIALIDAD = &
Trim$(UCase$(mskCEspAct.Text)) & 'It AND ACTIVIDADES.EMFRESA =
EMPRESAS.NUM-EMPRESA")
DADES.TRÍ~ESTRE,ACTIVIDADES.OBSERVACIONES FROM
Set gCurrentRS = DB.OpenRecordset("ACTXESPE", dbOpenSnapshot)
TotalRegistros = gCurrentRS.RecordCount
If TotalRegistros <= O Then
Else
End If
CONS-ACTPOR-ESPE = False
CONS-ACT-POR-ESPE = True
End Function
Private Sub cmdCnsAct-Click() Dim M As Integer
DB.DeleteQueryDef (I'ACTXESPEI')
If Not CONS-ACT-POR-ESPE() Then
M = MsgBox("N0 HAY REGISTROS CON ESTA CLAVE...", vbOKOnly)
mskCEspAct.SetFocus
Else
REP-ACT-ESP.Action = O
Option Explicit
Dim gCurrentQueryDef As QueryDef Dim gCurrentRS As Recordset
Private Function CONS-ACTPOR-ESPE() As Boolean Dim TotalRegistros As Integer
On Error Resume Next
Set gCurrentQueryDef = DB.CreateQueryDef("ACTXESPE", "SELECT
ACTIVIDADES.NOMBRE,EMPRESAS.NOMBRE,ACTIVIDADES.RESPONSABLE,ACTIVI DADES.NO~ALUMNOS,ACTIVIDADES.FECHA,ACTIVIDADES.ESPECIALIDAD,ACTIVI
DADES.TRIMESTRE,ACTIVIDADES.OBSERVACIONES FROM
ACTIVIDADES,EMPRESAS WHERE ACTIVIDADES.ESPECIALIDAD = "' &
Trim$(UCase$(mskCEspAct.Text)) & "'
AND
ACTIVIDADES.EMPRESA =Eh4l'RESAS.NLJ"EMPRESA")
Set gCurrentRS = DB.OpenRecordset("ACTXESPE", dbOpenSnapshot)
TotalRegistros = gCurrentRS.RecordCount
If TotalRegistros <= O Then
Else
End If
CONS-ACT-POR-ESPE = False
CONS-ACT-POR-ESPE = True
'
FORMA CONSULTA POR GIROOption Explicit
Dim gCurrentQueryDef As QueryDef Dim gCurrentRS As Recordset
Dim TabGiros As QueryDef
Dim TabTemp As Recordset
Private Sub Cns-Giro()
Dim ColInd As Integer, ColCont As Integer
Dim RowInd As Integer, RowCont As Integer
On Error Resume Next
Set TabGiros = DB.CreateQueryDef("GIROEMP", "SELECT
*
FROM GIROS')Set TabTemp = DB.OpenRecordset("GIROEMP", dbOpenSnapshot)
TabTemp.MoveLast
RowCont = TabTemp.RecordCount
TabTemp.MoveFirst
grdGiro.Cols = 2
grdGiro.Rows = RowCont + 1
grdGiro.ColWidth(0) = TextWidth("CLAVE")
grdGiro.ColWidth( 1) = TextWidth("DESCRIPC1ON")
*
3grdGiro.Co1 = O
grdGiro.Row = O
For ColInd = O To 1
grdGiro.Co1 = ColInd
grdGiro.Text = TabTemp(ColInd).Name
Next
RowInd = O
Do Until TabTemp.EOF
For ColInd = O To 1
grdGiro.Co1 = CoIInd
grdGiro.Row = RowInd
+
1grdGiro.Text = TabTemp(Co1Ind)
Next
TabTemp.MoveNext
RowInd = RowInd
+
1Loop
grdGiro.Co1 = 1
grdGiro.Row = O
Private Function CONS-EMP-POR-GIRO() As Boolean Dim TotalRegistros As Integer
On Error Resume Next
Set gCurrentQueryDef = DB.CreateQueryDef("EMPRXGIRO", "SELECT
EMPRESAS.*,GIROS.DESCRIPCION FROM EMPRESAS,GIROS Where EMPRESAS.GIRO
= GIROS.NO GIRO And EMPRESAS.GIRO = & Trim$(grdGiro.Text) & ""')
SecgCurrentRS = DB.OpenRecordset("EMPRXGIRO", dbOpenSnapshot)
TotalRegistros = gCurrentRS.RecordCount
If TotalRegistros <= O Then
Else
End If
CONS-EMP-POR-GIRO = False
CONS-EMP-POR-GIRO = True
End Function
Private Sub cmdCnsGiro-Click() Dim M As Integer
DB.DeleteQueryDef (IIEMPRXGIRO")
If Not CONS-EMP-POR-GIRO() Then
M = MsgBox("N0 HAY REGISTROS CON ESTA CLAVE...", vbOKOnly)
grdGiro.SetFocus
Else
REP-EMP-GIRO.Action = O
End If
Private Sub Fom-Load()
DB.DeleteQueryDef ("GIROEMP") Cns-Giro
End Sub
Private Sub grdGiro-Click() Dim i As Integer
i = grdGiro.SelStartRow
With grdGiro
.Row = i
End With
grdGiro.Co1 = O
If i = O Then
End If End Sub
grdGiro.Row = 1
'FORMA REPORTE DE ACTIVIDADES POR TRIMESTRE
Option Explicit
Dim gCurrentQueryDef As QueryDef Dim gCurrentRS As Recordset
Private Function CONS-ACTPOR-TRIM() As Boolean Dim TotalRegistros As Integer
On Error Resume Next
Set gCurrentQueryDef = DB.CreateQueryDef("ACTXTRIM", "SELECT
ACTIVIDADES.NOMBRE,EMPRESAS.NOMBRE,ACTIVIDADES.RESPONSABLE,ACTIVI DADES.NO_ALUMNOS,ACTIVIDADES.FECHA,ACTIVIDADES.ESPECIALIDAD,ACTIVI
DADES.TRIMESTRE,ACTIVIDADES.OBSERVACIONES FROM
ACTIVIDADES,EMPRESAS WHERE ACTIVIDADES.TRIMESTRE = "' &
Trim$(UCase$(txTrim.Text)) &
AND
ACTIVIDADES.EMPRESA=EMPRESAS.NIJ"EMPRESA ORDER BY TPO-ACT")
111
Set gCurrentRS = DB.OpenRecordset("ACTXTRI"', dbOpenSnapshot)
TotalRegistros = gCurrentRS.RecordCount
If TotalRegistros <= O Then
Else
End If
CONS-ACT-POR-TRIM = False
CONS-ACT-POR-TRIM = True
Private Sub cmdAcTrim-Click() Dim M As Integer
DB.DeleteQueryDef (IIACTXTRIM")
If Not CONS-ACT-POR-TRIM() Then
M = MsgBox("N0 HAY REGISTROS CON ESTA CLAVE...", VbOKOnly)
txTrim.SetFocus
Else
REP-ACT-TRIM.Action = O
End If