program c i on access

13
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,

Upload: davinia-perez-hernandez

Post on 17-Jan-2016

219 views

Category:

Documents


0 download

DESCRIPTION

access

TRANSCRIPT

Page 1: 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

Page 2: Program c i on Access

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

Page 3: Program c i on Access

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

Page 4: Program c i on Access

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.

Page 5: Program c i on Access

* 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

Page 6: Program c i on Access

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

Page 7: Program c i on Access

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

Page 8: Program c i on Access

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

Page 9: Program c i on Access

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

Page 10: Program c i on Access

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

Page 11: Program c i on Access

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