Jose Manuel
2004-02-14 09:03:26 UTC
Quizas os parecezca una tonteria pero llevo dos dias pensando y leyendo
estos foros y no se hacer lo siguiente. Tengo dos tablas con los campos,
Personas: dni (clave, indexado, sin duplicados) , nombre, apellidos, direccion.
Entradas: dni (indexado, con duplicados), fecha_solicitud, motivo_solicitud.
Ambas tablas estan relacionadas (uno a varios) por el campo dni. Una persona
(un solo dni) puede tener varias entradas (varios dni).
Ante una nueva solicitud, introduzco el dni del solicitante en un formulario (cuyo
origen de datos es una consulta sobre ambas tablas). La B.D. puede llegar a
tener 30.000 personas.
Si ya existe ese dni, deberian mostrarse los campos de la tabla Personas (dni,
nombre, apellidos y direccion existentes) y, ademas, los campos en blanco de
la tabla Entradas (fecha_solicitud y motivo_solicitud). Yo relleno estos dos
ultimos campos y al salir se guarda un nuevo registro en la tabla Entradas.
Si no existe el dni, relleno ademas los campos nombre, apellidos y direccion,
y al salir se guardan dos registros, uno en cada tabla.
He creado un cuadro de texto independiente en el formulario, con el codigo:
- - - - - - - - - - - - - - - - -
Private Sub Busca_dni_AfterUpdate()
Dim X As Variant
X = DLookup("dni", "Personas", "dni = ' " & Me.Busca_dni & " ' ")
If X <> " " Then
Me.dni.SetFocus
DoCmd.FindRecord X, acEntire, , acSearchAll, , acCurrent
Else
DoCmd.GoToRecord , , acNewRec
Me.dni = Me.Busca_dni
Me.FREGISTRO.SetFocus
End If
End Sub
- - - - - - - - - - - - - - - - -
Si introduzco un dni nuevo, me da error: "Se ha producido el error "2137" en tiempo
de ejecucion. No se pueden usar Buscar ni Reemplazar ahora"
Si el dni es nuevo (no existe en la tabla Personas) entonces funciona.
Que hago mal ?
Podeis echarme una mano?
estos foros y no se hacer lo siguiente. Tengo dos tablas con los campos,
Personas: dni (clave, indexado, sin duplicados) , nombre, apellidos, direccion.
Entradas: dni (indexado, con duplicados), fecha_solicitud, motivo_solicitud.
Ambas tablas estan relacionadas (uno a varios) por el campo dni. Una persona
(un solo dni) puede tener varias entradas (varios dni).
Ante una nueva solicitud, introduzco el dni del solicitante en un formulario (cuyo
origen de datos es una consulta sobre ambas tablas). La B.D. puede llegar a
tener 30.000 personas.
Si ya existe ese dni, deberian mostrarse los campos de la tabla Personas (dni,
nombre, apellidos y direccion existentes) y, ademas, los campos en blanco de
la tabla Entradas (fecha_solicitud y motivo_solicitud). Yo relleno estos dos
ultimos campos y al salir se guarda un nuevo registro en la tabla Entradas.
Si no existe el dni, relleno ademas los campos nombre, apellidos y direccion,
y al salir se guardan dos registros, uno en cada tabla.
He creado un cuadro de texto independiente en el formulario, con el codigo:
- - - - - - - - - - - - - - - - -
Private Sub Busca_dni_AfterUpdate()
Dim X As Variant
X = DLookup("dni", "Personas", "dni = ' " & Me.Busca_dni & " ' ")
If X <> " " Then
Me.dni.SetFocus
DoCmd.FindRecord X, acEntire, , acSearchAll, , acCurrent
Else
DoCmd.GoToRecord , , acNewRec
Me.dni = Me.Busca_dni
Me.FREGISTRO.SetFocus
End If
End Sub
- - - - - - - - - - - - - - - - -
Si introduzco un dni nuevo, me da error: "Se ha producido el error "2137" en tiempo
de ejecucion. No se pueden usar Buscar ni Reemplazar ahora"
Si el dni es nuevo (no existe en la tabla Personas) entonces funciona.
Que hago mal ?
Podeis echarme una mano?