Duda con formulario

- Tengo un formulario con varios campos, uno de ellos (Función) es un cuadro combinado con varias opciones, otro campo es Responsable. Mi duda es la que sigue: deseo que al seleccionar determinada función el campo Responsable se actualice de acuerdo a la función respectiva. Además tengo una tabla que se llama Funciones de la que se alimenta el cuadro combinado y otra se llama Responsables de la que se alimenta un cuadro combinado de otro formulario. Son trece funciones y trece responsables
Saludos y espero que me puedas ayudar

1 Respuesta

Respuesta
1
Se supone que cada registro de la tabla responsable tiene cierta relación (que no mencionas) con la tabla función.
En ese caso parece que estamos ante el clásico ejemplo de combos encadenados (o en cascada). Mira esto: http://www.mvp-access.com/foro/forum_posts.asp?TID=9935
Xavi
La información en el link que proporcionas resuelve mi duda.
Pero tengo otra más, tengo un formulario en el que he incluido un cuadro combinado en el que están disponibles todos los valores ingresados de un campo en una tabla, lo que deseo es lo siguiente: al seleccionar determinado campo en el cuadro combinado se completen los demás campos del formulario respecto de la tabla de la que se alimenta el cuadro combinado, ¿cómo lo podría hacer?
Saludos
Otra pregunta super clásica.
Se supone (porque así lo interpreto) que no solo quieres ver los datos, también quieres guardarlos. Ello nos descarta la técnica del origen del control de esos controles, puesto que es uns propiedad ocupada por el nombre del campo del origen del registro dónde se almacenara dicho valor.
Así nos quedan las tácticas del cuadro combinado, el DLookup y el recordset.
Cuadro combinado.
Añade las columnas con los datos necesarios al cuadro combinado. En el evento AfterUpdate, asigna los valores de las columnas al control adecuado:
Me!uncuadrodetexto = Me!elcuadrocombinadi.Column(2) ' por ejemplo
Recuerda que la primera columna del combo es 0, la segunda es 1, y sucesivamente.
Puedes no mostrar esos datos en el cuadro combinado simplemente poniendo la anchura de las columnas a 0.
DLookup
En el mismo evento (AfterUpdate) del combo, lanzas tantos DLookup's a la tabla que contiene los datos para recuperar los valores y asignarlos a los controles. Se supone que la columna dependiente del cuadro combinado es una que guarda el identificador único del registro:
Me!uncuadrodetexto = Dlookup("uncampo", "unatabla", "Id=" & Me!cuadrocombinado)
Recordset
Es una táctica muy parecida pero abriendo un recordset sobre la tabla filtrada al registro que queremos recuperar:
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT * FROM unatabla WHERE Id = " & Me!cuadrocombinado)
Me!uncontrol = rst!UnCampo
Me!otrocontrol = rst!otrocampo
rst.Close
Set rst = Nothing
Espero que alguna te sirva.
http://www.mvp-access.com
http://www.aesoft-databases.com
Probé Recordset y Cuadro combinado, resulto lo del cuadro combinado.
Pero ahora tengo un problema, al seleccionar una opción del cuadro combinado el resto de los cuadros de texto se carga correctamente, pero al momento de editar algún campo o agregar información en alguno de los cuadros vacíos, se sobre-escriben los registros de la primera fila de la tabla de origen. ¿Cómo puedo hacer para que ello no suceda?
Pues... posicionandote en el registro que:
a) Quieras editar o
b) uno nuevo
Eso es algo que depende de ti

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas