Evitar dos registros duplicados segun dos campos

Antes que nada gracias a todos por su tiempo y les cuento que tengo muy poco conocimientos en vb pero trato de buscar información e investigar lo más que pueda.

Tengo una base de datos en Access 2010 de un instituto que dicta cursos, quiero que cuando agregue alumnos a un curso y este ya este cargado no me lo permita. Ahora paso a comentarles como tengo.

Las relaciones no tienen integridad referencial

                                       T_b_datos_cursos                            T_b_alum_Cur                         T_b_alumno

Clave Princip                  nrocursoa                                        id_alu_doc                                    DNI_A

Nombre NROCURSOB_A apellidoynombre

Año DNI Edad

Horarios ASISTENCIA

Las relaciones son:

nrocursoa CON   NROCURSOB_A

DNI CON DNI_A

Tengo los formularios:

 Sub_alumno: es un formulario único

Lo cual están vinculados por los campos:

 Vinculado campo principal = NROCURSOA         (de la tabla T_b_datos_cursos)

Vincualdo campo secundario= NROCURSOB_A                (de la tabla T_b_alum_Cur)

Sub_alumno1: es un formulario continuo con estos campos

 (SELECT * FROM T_b_alumno INNER JOIN T_b_alum_Cur ON T_b_alumno.DNI_A = T_b_alum_Cur.DNI;)

Cuando cargo un dni y salgo del campo DNi me trae el apellido y nombre del alumno.

Bien, ahora quiero que si repito el nro de dni en ese mismo curso no me lo permita cargar.

Bueno espero haberme explicado bien.

2 respuestas

Respuesta
3

Me he perdido con los nombres, pero en el formulario o subformulario donde vas a poner el dni, que supongamos que depende de la tabla Cursos, en ese cuadro de texto, en sus propiedades-eventos-Antes de actualizar puedes poner

If dcount("*","cursos","dni='" & me.nombredeesecuadro & "'")>01 then

Msgbox"Ese alumno ya está registrado", vbokonly,"Que lo sepas, fistro"

Docmd. Cancelevent

end if

Me explico, si pones un dni, antes de guardarlo cuanta en la tabla que sea si ya existe alguno con ese valor. Si lo hay te aparece el mensaje y el cursor se vuelve al cuadro de texto para que modifiques su valor.

Respuesta
1

No entiendo muy bien tus relaciones. ¿Podrías adjuntar tu modelo de entidad relación?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas