Access - Introducir datos en un tabla intermedia

   
Vista:

Introducir datos en un tabla intermedia

Publicado por Francisco Javier (4 intervenciones) el 15/03/2010 13:00:24
Hola tengo un problema con una base de datos que estoy desarrollando:
Tengo 3 tablas una con datos personales, otra con nombres de cursos y una tabla intermedia que es de Cursos solicitados vinculda a datos personales por el DNI y a la tabla cursos mediante código de curso.
El problema que se me presenta es a la hora de atacar la base de datos: Puedo dar de alta al alumno y asignar un curso, cada vez, lo que resulta muy pesado, (son muchos los datos a introducir en poco plazo) o, elegir un curso en el formulario y mediante el subformulario adecuado ir agregando el alumno, y ahí viene el problema, si el alumno no está dado de alta con anterioridad en la tabla de Datos personales, me da el error de que el el "índice no puede tener un valor nulo", ¿Como puedo hacer para que busque el DNI en la tabla datos personales, y si no está me abra un formulario donde darlo de alta sin tener que salirme, dar de alta y volver al formulario de entrada de alumnos en un curso?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Enrique Ramírez

RE:Introducir datos en un tabla intermedia

Publicado por Enrique Ramírez (617 intervenciones) el 16/03/2010 20:15:11
En un formulario crea una caja de texto que se llame txt_DNI y en el evento "al perder el enfoque" copia este codigo, si te debe funcionar puesto que la acabo de probar, el DNI lo manejo como texto.

Private Sub txt_DNI_LostFocus()
Dim vRes As Variant

'busco el DNI tecleado en la tabla DatosPersonales
Var = DLookup("[DNI]", "DatosPersonales", "[DNI] = '" & txt_DNI & "'")

'si no encuentra el DNI en la tabla
If IsNull(Var) Then
'muestro mensaje y pregunto si lo quiere capturar
vRes = MsgBox("El DNI tecleado no existe en Datos Personales, ¿deseas darlo de alta? ", vbQuestion + vbYesNo, "Aviso")
'si se pulsó el boton No
If vRes = 7 Then
'situo el cursor en el DNI
Me.txt_DNI.SetFocus
'me salgo del evento de la caja de texto
Exit Sub
End If
'si pulsó boton Si, abre el formulario de captura del DNI
DoCmd.OpenForm "FormularioCapturaDNI", acNormal
Else
'en caso contrario si SI existe el DNI
MsgBox "Sigo con el codigo normal de cuando Si existe el DNI"
End If
End Sub

Checalo y comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Introducir datos en un tabla intermedia

Publicado por Francisco Javier (4 intervenciones) el 17/03/2010 11:06:24
Muchas gracias, Enrique, voy a probarlo ahora mismo.... ya te contaré
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Introducir datos en un tabla intermedia

Publicado por Francisco Javier (4 intervenciones) el 20/04/2010 12:46:11
Funciona correctamente. Muchas gracias por todo. Perdona no haber contestado antes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar