Pasar dato formulario busqueda a otro formulario

Tengo un formulario de busqueda donde tengo un idproducto descripcion y precio del producto

Utilizando el siguiente codigo logro hacer las busquedas de un campo de texto sobre un campo de lista de valores

Private Sub cmdVer_Click()
'Declaramos las variables
Dim ctlList As Control
Dim Opcion As Variant
Dim miSeleccion As String
'Iniciamos la estructura del filtro
miSeleccion = "[ID] IN ("
Set ctlList = Me.lstproductos
'Cogemos los valores seleccionados en el cuadro de lista, y los añadimos al filtro
For Each Opcion In ctlList.ItemsSelected
miSeleccion = miSeleccion & ctlList.ItemData(Opcion) & ","
Next Opcion
'Si la longitud del filtro es 9, es que no seleccionamos ninguna opcion
If Len(miSeleccion) = 9 Then
MsgBox "No has seleccionado ningun producto", vbInformation, "AVISO"
Exit Sub
End If
'Quitamos la última coma (,) del filtro
miSeleccion = Left(miSeleccion, Len(miSeleccion) - 1) & ")"
'Abrimos el mensaje en Modo COnsulta y cerramos el Buscador
Call abreFormfrmproductos(3, miSeleccion)
DoCmd.Close acForm, Me.Name
End Sub

campo de texto

Private Sub txtbuscar_Change()
Me.lstproductos.RowSource = "SELECT tblproductos.idproducto,tblproductos.descripcion,tblproductos.preciopublico FROM tblproductos" _
& " WHERE tblproductos.descripcion " _
& "LIKE '*" & Me.txtbuscar.Text & "*' ORDER BY descripcion"
Me.lstproductos.Requery
End Sub

Mi pregunta es como podria pasarle el idproducto a un formulario que almacena el detalle de los productos que se facturan a partir de la busqueda

1 Respuesta

Respuesta
2

Muy sencillo, por ejemplo, en el evento "Al hacer doble click" del campo idproducto del formulario de búsqueda, le pones un código de este estilo:

Forms("NombreFormularioDestino").idproducto=Me.Idproducto

Para que te funcione necesitas dos cosas:

1.- Cambiar los nombres en negrita por los que tengas en tu formulario (nombre del formulario que almacena el detalle y nombre del control que recoge el idproducto)

2º.- Que el formulario de destino esté abierto.

Un saludo.


saludos eh intentado lo que me has recomendado y en mi caso seria

Forms("subformdetventa").idproducto = miSeleccion  donde mi seleccion toma el codigo del producto que necesito, sin embargo se me olvio mencionar que el  campo al que quiero cargar la variable esta en un subformulario y al escoger un valor de la lista se genera un error 2450 que me dice no se encuentra el formulario "subformdetventa" al que se hace referencia eh intentado con

Forms!frm_pedido!subformdetventa.idproducto = miSeleccion  , haciendo referencia al formulario y al subformulario  pero en este caso me da error 2450 indicandome que no encuentra el formulario frm_pedido, segun eh leido el forms hace referencia a todos los formularios de la base de datos y el form a un campo en especifico

intente esto

Forms!frm_pedido!subformdetventa!Form!idproducto = miSeleccion

pero igual  error 2450

gracias

Claro, si el valor lo quieres pasar a un subformulario, y no lo indicas, malamente te puede funcionar el código que te propuse para pasarlo a un formulario... jejeje.

Luego le pasas el valor de miSeleccion, no sé por qué porque tampoco es lo que te dije que tenías que hacer, y además en principio no sería lo correcto.

La sintaxis que pones en último lugar parece correcta (http://www.llodax.com/Tutoriales/SintaxisSubForms.htm ) siempre que el CONTROL que contiene el subformulario se llame efectivamente "subformdetventa" (ojo, el control, no el subformulario en sí)

A mí me gusta más usar esta sintaxis:

Forms("frm_pedido").subformdetventa.Form.idproducto=Me.Idproducto

Saludos


¡Gracias! Excelente me ha funcionado como me lo indicaste

Forms("frm_pedido").subformdetventa.Form.txtidprod = miSeleccion

Ahora quisiera preguntarte al capturar dicho código debo cargar los valores correspondientes a la descripción del producto su precio anteriormente lo hacia con un cuadro combinado y funcionaba bien el problema era que la búsqueda del producto solo la podía hacer por las primeras letras que identificaban el producto ahora con el buscador adicional puedo hacerlo por cualquier letra que este identificada dentro del texto de la descripción del producto pero ya no me carga los campos que te menciono, he intentado con una sentencia sql en el evento después de actualizar

 txtidprod.Value = txtdesc.Value = "SELECT qrybuscarproducto.descripcion FROM qrybuscarproducto WHERE txtidprod=idproductoqrybuscarproducto"
    Me.Refresh

Sin éxito gracias

Usa la función Dlookup() para traer ese valor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas