Vincular cuadro combinado a subformulario

Es posible vincular, dentro de un formulario, los datos de un cuadro combinado de nombre 'titulo' a un campo, con el mismo nombre, ¿ubicado en un subformulario?
¿Cómo puedo hacerlo?

1 respuesta

Respuesta
1
Tendrás que establecer como 'origen del control' del cuadro combinado el campo del subformulario de esta forma:(NombreDelSubformulario. Form! NombreDeCampo)
Con esto conseguirás que en el cuadro se muestre el elemento seleccionado en el subform, pero no te permitirá cambiar el valor del campo del subform. Para ello si lo que quieres es que al seleccionar un elemento del cuadro se le asigne a un campo del subform, te recomiendo lo siguiente:
En el evento después de actualizar del cuadro combinado escribir la instrucción que se encarga de actualizar con el valor del cuadro como ( NombreSubFormulario.Form!NombreCampo = NombreCuadroCombinado.Column(NColumaDelCuadro) )
Siendo NColumaDelCuadro el nº de la columna del cuadro que le quieras asignar al campo del subform teniendo en cuenta que la 1ª es 0, la 2ª es 1 y así sucesivamente para el resto.
Pruébalo y me comentas.
Hola query,
perdona el retraso en contestar pero he tenido mucho trabajo...
Tengo problemas para aplicar las ordenes que me comentas en tu mensaje...
A ver, en el origen del control del cuadro combinado:
(NombreDelSubformulario. Form!NombreDeCampo)
Yo escribo:
(sencillo.Form Títol)
en el cuadro combinado,
( NombreSubFormulario.Form!NombreCampo = NombreCuadroCombinado.Column(NColumaDelCuadro) )
voy a generar evento y escribo:
( sencillo.Form!Títol = cuadro.Column(2) )
pero la cosa no funciona... ¿escribo las ordenes bien? ¿No habría otra forma de hacerlo?
Espero me puedas ayudar! Gracias de antemano!
jordi
Las respuestas van en función de lo que quieras hacer con el cuadro combinado.
1º Si lo que queremos es que al seleccionar un elemento del cuadro combinado, este se muestre en el cuadro de texto del subformulario, lo que tendremos que hacer será en el evento AfterUpdate del cuadro tendremos que escribir:
Private Sub Títol_AfterUpdate()
me.sencillo.Form!Títol = Me.Títol.Column(2)
End Sub
2º Si lo que quieres es que al escribir un valor en el cuadro de texto del subformulario, el cuadro combinado del formulario principal muestre un elemento de la lista:
- Establece como origen del control del cuadro combinado la expresión (sencillo. Form! Títol)
Como puedes observar todo depende de si la actualización se realiza del cuadro combinado -> cuadro de texto
O por el contrario
Cuadro de texto -> cuadro combinado.
query, la actualización que quiero hacer es, dentro de un formulario, del cuadro combinado -> cuadro de texto, este último ubicado dentro de un subformulario.
Dentro de las 'propiedades' del cuadro combinado he insertado en el evento 'AfterUpdate' la orden:
Private Sub Títol_AfterUpdate()
me.sencillo.Form!Títol = Me.Títol.Column(2)
End Sub
Pero sigue sin actualizarse el campo del subformulario...
ya no se como seguir... ¿se te ocurre alguna otra solución?
Gracias query!
jordi
Antes de continuar leyendo el resto de la respuesta, comprueba que en la ficha formato de las propiedades del cuadro combinado tienes en 'Número de columnas' el total de columnas que se seleccionan en la tabla o consulta.
Cuando seleccionas el elemento en el cuadro combinado. ¿Access te muestra algún mensaje de error? O simplemente no dice ni hace nada.
¿La tercera columna del cuadro combinado títol de tu formulario contiene algún dato?
Si el nombre del subformulario es 'sencillo' el nombre del cuadro combinado es 'Títol', si la tercera columna del cuadro
Me resulta un poco raro, porque yo he estado haciendo pruebas con mis bases y lo que te comentaba en los otros mensajes me funciona.
Contesta pronto.
query,
El número de columnas que aparece en la ficha formato de las propiedades del cuadro combinado es correcto, 1.
Access no da ningún error al seleccionar el elemento en el cuadro combinado, simplemente no actualiza el campo 'Título' del subformulario 'sencillo'.
A que te refieres con lo de la 'tercera columna...¿'? El cuadro combinado simplemente tiene el titulo del cuadro y el desplegable con los datos de la tabla.
Si, el nombre del subformulario es 'sencillo', el nombre del cuadro combinado es 'Títol'.
Pero, espera... acabo de entrar en 'propiedades' del cuadro combinado y en 'nombre' aparece 'cuadro'... lo he cambiado por 'Títol' y ahora Access, al seleccionar un elemento del cuadro me dice:
Se ha producido el error '3314' en tiempo de ejecución: El campo 'document. Títol' no puede contener un valor Null porque la propiedad Required de este campo es True. Escriba un valor en este campo.
Y el campo del subformulario no se actualiza...
¿Alguna idea?
¿Y si te mando el fichero con la base de datos?
Saludos,
jordi
Jordi si como me indicas el nº de columnas es 1, la expresión títol. Column(2) será incorrecta, en su lugar tendría que ser simplemente títol para acceder a la primera columna.
Por eso al intentar actualizar el cuadro de texto accede a una columna vacía y no guarda ningún valor.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas