Combobox con tabla

Tengo una inquietud con lo siguiente
Tengo un combobox en un formulario que esta relacionado con una tabla de "productos", que debo de hacer para que al darle click a cualquier producto de la lista del combobox me direccione a otro formulario...

1 respuesta

Respuesta
1
Supongo que lo que tienes es un control con una lista de productos y quieres que, al pinchar en uno, se abra un segundo formulario con los datos del producto seleccionado.
Suponiendo que tu objeto se llame 'miLista', tendrías que incluir el siguiente código:
Private Sub miLista_Click()
    DoCmd.OpenForm "segundoFormulario", acNormal, , "idProducto=" & Me.miLista, , acDialog
End Sub
El parámetro 'acDialog' lo pongo para evitar que pulsen un nuevo código en el primer formulario mientras estés con el segundo abierto.
Hola
Muchas gracias por ayudarme, si en efecto tengo un cuadro de lista y lo que necesito es que al darle click a un producto en especifico de la lista me mande a otro formulario, agregue el código al control pero no me funciona ¿tengo una duda donde dice "idproducto"... debo colocar el nombre del producto que aparece en el cuadro de lista?...
Porque lo intente así y tampoco me funciona... gracias por la ayuda mil gracias
El código que te puse tienes que ponerlo en el formulario donde esté la lista.
Entra en las propiedades de la lista y pon '[Procedimiento de evento]' en el evento 'al hacer click'. Después pulsa el botón con los tres puntos "..." y te llevará al Visual Basic. Ahí es donde debes grabar la llamada al segundo formulario.
Donde te pongo 'idProducto' tienes que poner el nombre que tiene la clave del producto en tu tabla. Supongo que 'id', 'idProducto' o algo similar. Si esta clave es numérica, entonces el código es el que te puse. Si fuera de tipo texto la instrucción tendría la siguiente condición: "idProducto='" & Me. MiLista & "'" (poniendo el valor entre comillas).
Otra cosa que seguramente sea lo que te ocurre. En la lista que estás presentando seguramente mostrarás el nombre del producto, no su clave, y tendrás asignado a la lista dicho nombre.
Para solucionar eso lo que tienes que hacer es una lista con dos columnas: una para el código y otra para el nombre del producto. Tendrías que poner lo siguiente en las propiedades:
- Origen de la fila: select idProducto, nombreProducto from productos (traemos los dos campos)
- Número de Columnas: 2
- Columna dependiente: 1 (la que nos interesa es el identificador)
- Ancho de columnas: 0 cm;20 cm (la primera no se verá)
Haciendo eso, la lista presentará el nombre de los productos pero internamente almacenará el identificador que es lo que realmente necesitamos.
Si muchas gracias.. ya me funciona ... pero como debo hacer para que al darle click a un producto especifico de la lista me remita a otro formulario, ya que así como esta haciendo click sobre cualquier producto de la lista me remite al otro formulario
Si lo que quieres es que te envíe al otro formulario cuando el id del producto esté entre 1 y 20, pondrías:
if me.miLista>=1 and me.miLista<=20 then DoCmd.OpenForm "segundoFormulario", acNormal, , "idProducto=" & Me.miLista, , acDialog
Si lo que quieres es que abra el formulario cuando el campo 'snAbrirFormulario' de la tabla de productos tenga valor 'Sí' (campo de tipo Si/No), pondrías:
dim aux as variant
aux = dlookup("snAbrirFormulario","poductos","idProducto=" & Me.miLista)
if nz(aux,false) then DoCmd.OpenForm "segundoFormulario", acNormal, , "idProducto=" & Me.miLista, , acDialog
Creo que es eso lo que te refieres.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas