Pasar datos a listbox desde una consulta sql vba access

Caballeros buen dia.

Necesito ayuda con lo siguiente:

Tengo dos formularios uno llamado factura y otro llamado buscar productos.

Desde el formulario factura abro el formulario buscarproducto, y quiero que una ves encontrado el producto al darle doble clic me enve los datos a un list box del formulario factura.

El codigo que tengo actualmente es el siguientes

Private Sub Lista0_DblClick(Cancel As Integer)
'mandar los datos del cliente a el formulario de factura
On Error GoTo Err_Salir_Click

Select Case Me.Lista1
Case Is = "Codigo"
Form_Factura.Lista0.RowSource = "SELECT Productos.Codigo, Productos.Nombre, Productos.Presentacion, Productos.Laboratorio, Productos.Descripcion,Productos.CostoU, Productos.Precioventa,Productos.Precioetiqueta FROM Productos WHERE [Productos].[Codigo] like '*" & Busca.Text & "*' ORDER BY Productos.Codigo DESC;"
Case Is = "Nombre"
Form_Factura.Lista0.RowSource = "SELECT Productos.Codigo, Productos.Nombre, Productos.Presentacion, Productos.Laboratorio, Productos.Descripcion,Productos.CostoU, Productos.Precioventa,Productos.Precioetiqueta FROM Productos WHERE [Productos].[Nombre] like '*" & Busca.Text & "*' ORDER BY Productos.Nombre DESC;"
Case Is = "Laboratorio"
Form_Factura.Lista0.RowSource = "SELECT Productos.Codigo, Productos.Nombre, Productos.Presentacion, Productos.Laboratorio, Productos.Descripcion,Productos.CostoU, Productos.Precioventa,Productos.Precioetiqueta FROM Productos WHERE [Productos].[Laboratorio] like '*" & Busca.Text & "*' ORDER BY Productos.Nombre DESC;"
Case Is = "Descripcion"
Form_Factura.Lista0.RowSource = "SELECT Productos.Codigo, Productos.Nombre, Productos.Presentacion, Productos.Laboratorio, Productos.Descripcion,Productos.CostoU, Productos.Precioventa,Productos.Precioetiqueta FROM Productos WHERE [Productos].[Descripcion] like '*" & Busca.Text & "*' ORDER BY Productos.Nombre DESC;"
End Select
Me.Busca.SetFocus
Set rst = Nothing
'Liberamos el recordset

Exit_Salir_Click:
Exit Sub

Err_Salir_Click:
MsgBox Err.Description
Resume Exit_Salir_Click
End Sub

Pero me da el siguiente error

No se puede hacer referencia a una propiedad o a un control a menos que el control tenga el enfoque.

1 Respuesta

Respuesta

Quisiera ayudarte, pero no entiendo la mitad de lo que pones, entre otras cosas hablas de un cuadro de texto Busca que no se sabe donde está ni para que sirve.

Voy a tratar de explicarme, suponiendo algunas cosas. Tienes el formulario Factura, que entre otras cosas tiene un cuadro de lista llamado Lista0, y tienes un formulario BuscaProducto que también tiene un cuadro de lista Lista1, donde eliges algo, que por lo que se ve no es un producto sino valores como Código, Laboratorio, etc.

Vamos por partes. Para abrir el formulario Buscaproducto desde el formulario Factura puedes poner algo así como

DoCmd. OpenForm "buscaproducto",,,,, acDialog

En el formulario Buscaproducto, en el evento al cerrar de ese formulario puedes poner algo así como:

If CurrentProject.AllForms("factura").IsLoaded Then
Forms!factura.Lista0.RowSource = "select nombrecompañia from clientes where pais='" & Me.Lista1 & "'"
End If

Me explico. Desde el formulario Factura abres el formulario BuscaProducto en vista diálogo. Una vez hayas elegido algo en el cuadro de lista Lista1(basta con eso) y cierres el formulario, comprobará si el formulario Factura está abierto, que si está, y en ese caso el origen de la fila del cuadro de lista Lista0 serán aquellos valores de la tabla clientes( en tu caso productos), que cumplan con el criterio que has elegido en el cuadro de lista Lista1.

ok creo que no me explique bien. comenzare desde cero.

tengo dos formularios uno que se llama factura que tiene y tiene un listbox que se llama lista0. y otro formulario que se llama buscar producto. este segundo es un buscador con listbox. lo que quiero hacer  es que al dar doble click me cargue el registro que le estoy dando el doble click, olvida el codigo anterior, lo que necesito saber en resumen es como cargar un recordset en la lista0 del formulario factura.( cargar recordset en listbox)
muchas gracias por tu ayuda saludos.

Es lo que te dije en la anterior respuesta. Para que en el cuadro de lista te presente X campos, tienes que darle X columnas.

Tengo el formulario Clientes, con el cuadro de lista Lista0 y un botón para abrir el formulario Formulario1

Si pulso el botón Abrir formulario 1

Y en este caso elijo España, tu tendrías que `poner tus valores. Cuando lo cierro

Y lo único que le digo en el código

ok explico la ultima vez, y gracias de antemano por la ayuda. lo que me dices que haga esta bien por que en un parte del proyecto lo hago asi por que el listebox esta dentro del mismo formulario.

Paso 1 abrir el formulario factura.

al presionar el botón verde se abre otro formulario que es el que uso para buscar los productos y así de esta forma añadirlos a supuestamente a este listbox del formulario factura (lista0).

en este nuevo formulario abierto recientemente (buscarproductos) busco los productos todo funciona bien no es necesario hacer nada, ahora lo que necesito es que al hacer doble click en el registro de este formulario me lo copie al listbox de el formulario factura abierto previamente.

El siguiente codigo que te escribo hace lo mismo que quiero hacer pero con cuadros de texto para a;adir el cliente. pero no encuentro forma de hacerlo con listbox y a;ador los productos.

es codigo funciona para colocar el registro que busque y le doble click y mandarlo a los cuadros de texto del formulario factura. pero ahora necesito hacerlo para enviar a un listbox.

Mil disculpas si no estoy entendiendo brother pero soy nuevo en esto de la programación llevare talves 3 o 4 semanas en esto.

saludos y gracias.

Lo mismo que te decía para el evento después de actualizar del cuadro de lista lo puedes poner en el evento Al hacer doble clic.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas