Program c i on Access
-
Upload
davinia-perez-hernandez -
Category
Documents
-
view
221 -
download
0
description
Transcript of Program c i on Access
CONTINUACION DE LA LIBRETA…… PROGRAMACION EN ACCESS
En el subformulario en el cuadro de texto en propiedades Otras en Nombre=TextoEstado y en Origen del Estado. En el subformulario introducir el campo Estado pero que no sea visible para que aparezca el campo Estado.
Introducir un botón en el formulario Busqueda NombreEmpleado para llamar al formulario Reasignador (Ir a Reasignador).
Cuando este formulario se abra en el cuadro cmdasignadoA queremos que aparezca el nombre del empleado que se escogió en el formulario BúsquedaNombreEmpleado.
Evento Al abrir del formulario Reasignador
Cuadro_combinado => cmbAsignadoA; Ficha Otras = Nombre
Cuadro_combinado => cmbNuevoAsignadoA; “
Cuadro_combinado => cmbAsignadoA = VarIdEmpleado
En el cuadro de dialogo Instrucción SQL: Generador de consultas de origen de la fila en la fila criterios introducir Forms!Reasignador.cmbAsignadoA
Y debajo de esto en el evento abrir el formulario Reasignador la siguiente expresión; Lista13.Requery. Para volver a regenerar la lista vuelva a consulta y la vuelva a crear.
La instrucción anterior la debemos colocar en otro evento de otro objeto para que cuando cambiamos de asignado a se nos cambie la lista a la vez que cambiamos de AsignadoA en el evento antes de actualizar del cmbAsignadoA del formulario Reasignado.
El botón Reasignar seleccionados lo programamos para que los problemas que elegimos….
Seleccionmultiple => simple
Botón que compruebe si hay algún dato en segundo cmb. Antes comprobamos si en el cuadro combinado hay algún nombre para poder reasignar problemas a alguien.
En el botón Reasignado seleccionados al hacer click;
If IsNull(cmbNuevoAsignadoA) Then,
MsgBox(“Debe seleccionar un nombre en reasignar problemas”, vbOk)
cmbNuevoAsignadoA.SetFocus
Exit sub
End If
Debajo de End If escribir MsgBox cmbNuevoAsignadoA sin comillas .ColumN(1)
Puede solo
MENSA=”Está seguro de que quiere asignar sus problemas a “& “empleado” “¿” “&” “&cmbNuevoAsignado.Columna(1)&”?”
OPCION=(MENSA, VbOkCancel)
If OPCION=VbCancel
Exit Sub
End If
Si no se ha seleccionado algo de la lista tiene que salir un mensaje
If Lista??.Itemsselected.Count=0 Then, ‘Indica el número de las filas seleccionadas
MsgBox “Hay que seleccionar al menos un problema” ‘ Este mensaje debe salir antes de que, si estás seguro de asignar sus problemas
End If
Exit Sub
Elemento ADO
Esquema; Son los pasos que queremos seguir;
Abrir Conexión
Abrir tabla Problemas
Establecer Indice
Para cada elemento seleccionado de la lista
Buscar el elemento en la tabla
Cambiar el valor de AsignadoA
Actualizar registro
DoCmd.Houglass=True ‘Para que aparezca el reloj de arena
DIM con As Connection
DIM RST As New ADODB.Recordset
Set con = CurrentProject.connection ‘con a la coneccion que hemos abierto.
rst.open “Problemas”, con, adopenkeySet, adLockOptimistic, adcmdTableDirect,
rst.Index =”IdProblema”,
For Each Var In lista0.ItemsSelected ‘Va a cambiar de valor cada vuelta los elementos van del a al n. ItemSelected = elementos selección
Next Var
rst.Seek lista0.ItemDataVar ‘Dato del elemento de la primera columnas que queremos otro elemento tendríamos que poner .ColumN(1) – Seek=Buscar en un índice
rst!AsignadoA=cmbNuevoAsignadoA
rst.Update ‘rst hace referencia a la tabla.
Boton de Reasignar seleccionados en el evento Al hacer click.
Queremos q cmbAsignadoA aparezca el NuevoAsignadoA. El cmbNuevoAsignadoA que se quede en blanco y la lista se regenere.
cmbAsignadoA=cmbNuevoAsignadoA
cmbNuevoAsignadoA=Null
Lista12.Requery
DoCmd.Houglass=False
Reasignar todos. Comprobar que los cmbs tienen algún dato.
ElseIf Not IsNull(cmbAsignadoA) or Not IsNull(cmbNuevoAsignadoA) then,
Set con=CurrenteProject.connection
Con.execute “UPDATE Problemas set AsignadoA=”& cmbNuevoAsignadoA & “ WHERE AsignadoA = “& cmbAsignado A ‘solamente en aquellos que tengan el campo
Poner en el cmbAsignadoA poner el NuevoAsignadoA
cmbNuevoAsignadoA=Null
Luego regenerar la lista.
Lista??.Requery
BASE DE DATOS “COLEGIO”
PROVEEDORES ALUMNOS CURSOS CALIFICACIONES
Id_Prof Id_Alum Id_Cur Id_Alum
Nombre Nombre Nombre Id_Cur
Apellidos Apellidos Duracion
Direccion Direccion Precio
Poblacion Poblacion Id_Prof
Id_Asig Telefono
Id_Cur
BECAS BUSQUEDA DE ASIGNATURAS BUSQUEDA DE ESTUDIO
Id_Alum Id_Asig Id_Alum
Tipo Beca Asignatura Nombre
CantidadAbonar EstudioFinalizados
RepiteCurso
RELACIONES:
Tabla ALUMNOS Id_Alum – Tabla BECAS
Tabla ALUMNOS Id_Alum – Tabla BUSQUEDA DE ESTUDIOS
Tabla ALUMNOS Id_Alum – Tabla CALIFICACIONES
Tabla CURSOS Id_Cur – Tabla CALIFICACIONES
Tabla CURSOS Id_Cur – Tabla ALUMNOS
Tabla PROFESORES Id_Prof – Tabla CURSOS
Tabla ASIGNATURAS Id_Asig – Tabla CALIFICACIONES
Tabla ASIGNATURAS Id_Asig – Tabla PROFESORES
Cambiar orden de tabulación: Menu ver de Access, Orden de Tabulacion, Seleccionar el nombre del control que se desea cambiar.
*Formulario con todos los cursos que ha desarrollado.
* Cmb combinado para el alumno y curso nuevo formurio para añadir un nuevo alumno.
* Formulario CursoActivo, fecha de inicio hay que comprobar la fecha de inicio no se ha menor que la fecha de inicio del curso y si es menor se manda un mensaje. Cuando se introduce el curso automáticamente habrá que introducir la fecha de inicio, pero siempre y cuando la fecha este en blanco. Si no esta en blanco tiene que mandar un mensaje si se quiere reemplanzar la fecha de inicio del curso y además la fecha de inicio no coincide con la que aparece en el recuadro Fecha de Inicio. Despues de actualizar el cmbCurso.
TxtFechaInicioAlumno ‘ Cuadro de texto
Obligatorio que los campos cmbAlumno, cmbCurso y TxtFechaInicioAlumno estén en blanco que no se guarden
CONSULTA
Todos los campos del CursoActivo y Cursos solo FechaInicio
El campo FechaInicio de la tabla CURSOS poner en la consulta
FechaInicioCurso:FechaInicio, y de la tabla CURSOSACTIVO poner FechaInicioAlumno:FechaInicio
CmbCurso After Update
If IsNull(TxtFechaInicioAlumno) Then,
TxtFechaInicioAlumno=FechaInicioCurso
Else
OPCION=MsgBox(“Desea reemplazar la fecha de inicio del curso”, VbOkCancel)
If OPCION=VbOk Then
TxtFechaInicioAlumno=FechaInicioCurso
Else
Cancel=True
End If
End If
TxtFechaInicioAlumno AfterUpdate
If txtFechaInicioAlumno<FechaInicioCurso Then
MENSA=”Ha introducido una fecha menor”
OPCION=MsgBox(“MENSA”)
Cancel=True
CURSO
Nuevo Curso
End If
Form Before Update
If IsNull(cmbAlumno) Or IsNull(cmbCurso) Or IsNull(txtFechaInicioAlumno) Then
OPCION=MsgBox(“Debe introducir un nombre de alumno, un curso y la fecha de inicio del curso”)
Cancel=True
End If
Si la fecha de inicio es superior a la fecha de inicio de la del curso que salga en rojo; ir a formato condicional poner distinto a y poner [FechaInicioCurso]
Para que cuando a un alumno le cambias un curso que se cambie la fecha al curso que es pero que salga un mensaje.
ElseIf OPCION=VbCancel Then
MsgBox(“La fecha que ha introducido es errónea”)
TxtFechaInicioAlumno=FechaInicioCurso
End If
Poner en la tabla CURSOACTIVO en el campo CausaBaja poner un cuadro combinado desde la tabla los siguientes datos;
- Contrato de trabajo- Invalidez temporal- Invalidez permanente- Faltas de Asistencia- Otras
Ejercicio. Hacer un formulario con los cursos que estén haciendo que aparezcan todos los del subformulario Alumnos. Consulta CursoActivo y Consulta Subformulario Alumno, Nombre y DNI.
Ejercicio. Otro formulario que sea reasignador de curso como el de la otra base de datos. CursoActivoCursos. Igual que el formulario reasignar de la base de datos PROBLEMAS.
SUBFormulario
Cuadro combinadoCAMBIAR CURSO
CANCELAR
CAMBIAR TODOS
Cuadro combinado
La consulta la Lista (ConsultaSubformulario);
IdAlumno, IdCurso, DNI, Alumno:[Nombre]&”, “&[Apellidos], Telefono, FechaNacimiento …
En el criterio del campo IdCurso escribir; Forms!ReasignarCurso!CmbCurso ‘ReasignarCurso es el formulario y CmbCurso es el cuadro combinado.
Boton CAMBIAR TODOS
Con.Execute “UPDATE CursoActivo SET cmbCurso =” & cmbNuevoCurso &” WHERE IdCurso= “ & cmbCurso
Ejercicio. Hacer una tabla BUSQUEDAMODULOS;
- IdModulo (Autonumerico)- Modulo - Texto – 25
Formulario. Asignar modulo a un curso. Se tiene que almacenar en la tabla modulo.
BOTON ACEPTAR; AL HACER CLICK
MENSA=”¿Esta seguro de añadir nuevo modulo y profesor al curso?”
OPCION=MsgBox(MENSA,VbOkCancel)
If OPCION=VbOk Then
Set BDT=CurrentDbd
Set rest=BDT.OpenRecordset(“Modulos”)
rst.AddNew
rst!IdModulo=cmbMoculo
rst!IdCurso=cmbCurso
rst!IdProfesor=cmbProfesor
rst.Update
Response=acDataErrAdded
MODULO
CURSO
PROFESOR
Comando combinado con asistente
ACEPTAR CANCELAR
Evento al no estar en la lista
End If
MENSA=”¿Esta seguro de añadir el modulo” &cmbModulo(Column(1)&” y el profesor “&cmbProfesor.column(1)&” al curso “&cmbCurso(column(1)&”?”
INFORMES
MODULO, CURSO, PROFESORES
CONSULTA INFORME MODULOS
INFORME AGRUPADOS POR MODULOS
CURSO IDCURSO NOMBRE
UTILIZAR UN INDICE COMPUESTO EN LA TABLA CursoActivo Fila en blanco, nombre de indice normalmente son los nombres del campo AlumnoCurso que campo queremos introducir en el nombre del campo IdAlumno, IdCurso
Lista20.Column(1)=cmbCurso
Lista20.ItemData(Var), cmbCurso ‘Buscar en curso
PROFESORES ALUMNOS CURSOS CALIFICACIONES
Id_Prof DNI_Alum (Id) Id_Curso DNI_Alum
DNI Nombre DNI_Alum Id_Modulo
Nombre Apellidos Nombre Id_Curso
Apellidos Direccion Horario Calificacion
Direccion Poblacion Fecha_inicio Observaciones
Poblacion CodigoPostal Fecha_Final
CodigoPostal Telefono Horas
Telefono FechaNacim Precio
Fijo Sexo Inscripcion
Sexo NivelAcademico Nivel
Titulacion Observaciones Aula
FechaNacimiento Foto Plazas
Observaciones
CURSOACTIVO BUCAR MODULOS BUSQUEDA DE ESTUDIO
Id_Alum Id_Mod Id_Nivel
Id_Curso NombreModulo Nivel
FechaInicio Id_Curso
FechaBaja Id_Prof
CausadeBaja
Observaciones
RELACIONES:
Tabla ALUMNOS Id_Alum – Tabla CALIFICACIONES
Tabla ALUMNOS Id_Alum – Tabla CURSOACTIVO
Tabla CURSOS Id_Curso – Tabla CURSOACTIVO
Tabla CURSOS Id_Cursp – Tabla CALIFICACIONES
Tabla CURSOS Id_Curso – Tabla MODULOS
Tabla PROFESORES Id_Prof – Tabla MODULOS
Tabla BUSQUEDANIVEL Id_Nivel – Tabla NIVEL
Tabla BUSQUEDANIVEL Id_Nivel – Tabla ALUMNOS
Tabla CURSOACTIVO FechaInicio – Tabla CURSO1
Tabla CURSOACTIVO FechaInicio – Tabla CURSO2
TABLAS:
BUSQUEDANIVEL CURSO1 CURSO2
IdNivel IdCurso IdCurso
CONSULTA SUBFORMULARIO:
CURSO CURSOACTIVO ALUMNOS
IdCurso IdAlumno IdAlumnos
FechaInicio IdCurso
FechaInicio
CURSOACTIVOCURSOS
IdAlumno Tabla CursoActivo
IdCurso Tabla CursoActivo
FechaInicioCurso: FechaInicio Tabla Cursos
FechaBaja Tabla CursoActivo
CausaBaja Tabla CursoActivo
Observaciones Tabla CursoActivo
FechaInicioCurso:FechaInicio Tabla CursoActivo
FORMULARIOS
CURSOS. Origen de registro Cursos Todos los registros
IdCurso Subvencion
Nombre_ Cargo Nivel Nivel
Horario Aula
FechaInicio Plazas
FechaFin Horas
Precio
SUBFORMULARIO. Consulta Subformulario Hoja de datos Subformulario Alumnos
IdCurso Nombre=NombreAlumno&”, “&Apellido
IdAlumno DNI
DATOS ALUMNOS. Origen de registros Alumnos
Foto Idalumno Sexo FechaNacimiento
Nombre
Apellido Telefono
Direccion Observaciones
Poblacion
Codigo Postal
Nivel Academico
Subformulario ConsultaSubformulario Hoja de datos Subformulario DatosCursoActivo
IdAlumno CausaBaja
IdCurso Observaciones Nombre_
FechaInicio
FechaBaja
NUEVO ALUMNO Origen CursoActivoCursos
Nombre IdAlumno IdAlumno Desactivado
Curso IdCurso IdCurso Desactivado
FechaInicio FechaInicioAlumno
Fecha de Baja FechaBaja
Causa de baja CausaBaja
Observaciones