Seleccionar registro desde cuadro de lista a subformulario

Soy nuevito en VBA asique trataré de explicar lo mas claro posible, tengo un formulario de llamado "Ventas" que tiene un subform "Factura" y otro subformulario "Detalle", Todos con sus respectivas tablas, y relaciones ID Cliente con ID Factura y ID Factura con Detalle, a su vez Detalle con ID Inventario (Que es donde tengo todos los artículos cargados). Dentro del subformulario "Detalle" van los artículos, con su código que hasta ahora ingreso manualmente, la cuestión es que tengo otro formulario que se llama "Buscar Articulo" desde donde tengo un cuadro de lista donde busco los artículos, lo que quiero hacer es que al presionar el articulo en este formulario me lleve, o me copie el código del articulo y me lo ponga en el subformulario "Detalle". Estoy rompiéndome la cabeza hace días y no se como hacerlo...

Respuesta
1

Aunque personalmente no lo haría así, creo que lo estás complicando demasiado, si ese formulario Buscar artículo lo abres desde el subformulario Detalle o desde el subformulario Factura, o directamente desde el formulario Ventas, y suponiendo que en ese cuadro de lista que mencionas( al que para el ejemplo llamaremos Lista0), la columna dependiente sea la del nombre del artículo, lo más sencillo sería que en el evento Después de actualizar del cuadro de lista pusieras

If currentproject.allforms("ventas").isloaded then

docmd.runsql"insert into Detalle(nombrearticulo)values(Lista0)"

docmd.runsql"update Detalle set Idcliente=forms!ventas!idcliente, iddetalle = forms!ventas!facturas.form!idfactura where idcliente is null and idfactura=null"

forms!ventas!detalle.form.requery

end if

Me explico. Cuando selecciones algo en el cuadro de lista( en este caso el nombre de un artículo), primero comprueba que el formulario Ventas está cargado, que sí lo está pues lo has abierto des él o alguno de sus controles. En ese caso, inserta en el campo Nombrearticulo de la tabla Detalle el valor del cuadro de lista. Luego actualiza el valor del campo Idcliente de esa tabla Detalle al valor que figura en el control Idcliente del formulario Ventas e inserta en el campo IdDetalle de la tabla Detalle el valor que figure en ese momento en el subformulario Factura(para que ambos estén relacionados). Y por último le digo que el subformulario Detalle "reconsulte" su origen de registros.

Te decía que es más sencillo hacer un formulario Facturas, con un subformulario DetalleFactura. ¿Qué luego quieres saber las ventas entre fecha, en un mes, en una semana, ventas por clientes, etc.? Hay 3000 formas de hacerlo.

Si es cierto, me la complique mucho, por suerte hice lo que vos decís, un formulario facturas y con el detalle como cuadro de lista. Muchas gracias! Estaba ofuscado porque no me salia nada, pero ahora me saque el miedo de probar y me están saliendo varias cositas.. Gracias de nuevo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas