Cuadro combinado que se actualize en un formulario Access 2010

Estoy tratando de desarrollar una base de dato sencilla con Panel de Control (manejo macros, no VBA) pero me encuentro con un problema, no puedo hacer que se actualize un campo combinado.

El formulario recoge datos de una consulta a una tabla intermedia (Observaciones) en la que se vinculan dos tablas. Así, hay un formulario principal (Tabla Especies) y un subformulario (Tabla Observadores). El subformulario tiene un cuadro combinado que recoge los datos de la Tabla Observadores, pero no puedo añadir ninguno más... Y no sé como resolverlo.

La estructura de la base:

Y la consulta Observaciones que recoge los campos Tabla Especies: Nombre castellano, Nombre científico, AERC, Estatus Valladolid y Tabla Observaciones: Cuadrícula, Municipio, Observador, Número observado, Fecha y Notas.

El formulario Observaciones recoge en el formulario principal Nombre castellano, Nombre científico, AERC, Estatus Valladolid y Criterios. Y como subformulario Cuadrícula, Municipio, Observador (cuadro combinado), Número observado, Fecha y Notas.

1

1 Respuesta

817.675 pts. No responderé preguntas de usuarios que no valoren las...

Me he liado un poco con el planteamiento de tu pregunta, pero creo entender que el problema está en que el cuadro combinado de observadores solo te deja elegir un valor que existe previamente en la tabla Observadores, ¿no?

Si eso es así, es porque en sus propiedades le tienes puesto Limitar a la lista en Sí.

Para que te permita añadir nuevos valores desde el cuadro combinado (y se guarden en la tabla Observaciones), has de programar su evento "Al no estar en la lista" así (revisa que los nombres de las tablas, campos y controles sean efectivamente los tuyos):

Private Sub Observador_NotInList(NewData As String, Response As Integer)
 Response = acDataErrContinue
 CurrentDb.Execute "INSERT INTO [3 - Observadores](Observador) VALUES('" & NewData & "')"
 'Coges el último ID, que coincide con el valor recién agregado y se lo pasas al combo
 Me.Observador= DLast("ID", "[3 - Observadores]")
 Me.Municipio.SetFocus
 Me.Observador.Requery
 Me.Observador.SetFocus
End Sub

Tienes una explicación más detallada, en este ejemplo explicado: http://neckkito.xyz/nck/index.php/ejemplos/16-controles/127-cuadros-combinados-inteligentes  (tu estarías en el segundo caso)

Un saludo.


     bit.ly/ForoNkSv 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas