Access - Hacer que al clickear un objeto de una lista vaya a al objeto origen

   
Vista:

Hacer que al clickear un objeto de una lista vaya a al objeto origen

Publicado por Facundo (15 intervenciones) el 11/07/2016 17:46:34
Buenas,

Yo tengo un cuadro de lista que tiene como origen un campo de otro formulario. Este cuadro de lista va cambiando su contenido, cada vez que agrego un registro en el otro formulario se agrega en el cuadro de lista.

El objetivo que tengo con este cuadro de lista es que al hacer click sobre algún objeto (nose si está bien llamado objeto, pero me refiero a una fila dentro del cuadro de lista) me lleve al formulario de origen y al registro correspondiente segun a qué objeto le hice click.

Por ejemplo:

Yo en el formulario origen tengo el campo Nombre con varios registros (Carlos, Juan, Arturo).
Y en otro formulario tengo un cuadro de lista con esos nombres.
Lo que busco es que al hacer click en Carlos me lleve al formulario origen y al registro donde se encuentra Carlos, y lo mismo con Juan y Arturo.

Espero que se entienda.

Saludos y Gracias!
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

Hacer que al clickear un objeto de una lista vaya a al objeto origen

Publicado por Jesús Manuel (202 intervenciones) el 12/07/2016 08:54:59
Tu formOrigen seguramente tiene como origen de datos un tabla, tblOrigen. En esta tabla seguramente tienes un campo ID

En cuanto a la lista de datos, listaNombres, en el origen de fila (Propiedades/Datos/Origen de la fila) tendrías que tener los dos campos, ID y Nombres.

Tendrías un elemento lista con 2 columnas y para no ver la columna ID le pondrías tamaño 0 (Propiedades/Formato/Ancho de columnas)

Ahora, en el evento doble click (puedes elegir otro evento) de listaNombres, tendrías que poner:

1
2
3
If Not IsNull(Me.listaNombres) Then
DoCmd.OpenForm "formOrigen", , , "[ID]=" & Me.listaNombres
End If


Tienes que adaptar los nombres de los campos, tablas y formularios a tu caso.




Si no tienes un campo ID o no quieres usarlo, tendrías que cambiar la línea de código para abrir el formulario:

1
DoCmd.OpenForm "formOrigen", , , "[NombreCampoNombresEnFormOrigen]= '" & Me.listaNombres & "'"


En el primer caso el campo ID es tipo numérico y en el segundo el campo Nombres es tipo texto.


En el segundo caso corres es riesgo de tener algún nombre repetido y que no se abra el registro deseado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Hacer que al clickear un objeto de una lista vaya a al objeto origen

Publicado por Facundo (15 intervenciones) el 12/07/2016 19:20:58
Gracias Jesús!!

Usé el "primer caso" con el campo ID y funcionó perfecto!!

Ahora necesitaría lo mismo pero, en vez de un cuadro de lista ahora es un subformulario (osea al hacer click en una de las filas me lleve al formulario origen y al registro correpondiente).
Tengo que usar el mismo proceso?

1
2
3
If Not IsNull(Me.listaNombres) Then
DoCmd.OpenForm "formOrigen", , , "[ID]=" & Me.listaNombres
End If

O hay otra forma?

Gracias por la ayuda!!

Saludos, Facundo.
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

Hacer que al clickear un objeto de una lista vaya a al objeto origen

Publicado por Jesús Manuel (202 intervenciones) el 13/07/2016 09:04:47
Puedes usar la misma función DoCmd.OpenForm, asegúrate de tener el campo id en el subformulario. Tendrías que cambiar Me.listaNombres por el nombre del campo ID en el subformulario.


No sé si tiene mucho sentido en el evento al hacer clic, porque si luego tienes que modificar algún dato desde el subformulario, siempre estarías abriendo el formOrigen.


Puedes utilizar el evento doble clic en el subformulario, tendrías que hacer el doble clic en la "casilla" que hay a la izquierda del registro, en el selector de registros, o tu mismo, vete haciendo pruebas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar