Ayuda con formulario de factura

Hola Telemaco!
Una vez más molestándote, pero eres el único que me ha ayudado con mis pequeños tropiezos, es lo siguiente.
Mira tengo una tabla donde doy de alta las ordenes de servicio que son solicitadas pero cada una de ella tiene un proveedor diferente.
En el formulario de la ordenes de servicio manejo al proveedor con su nombre común.
En el formulario de facturas tengo que manejar su razón social, ahí tengo los datos de facturación.
Tengo un subformularios que es de la factura donde quiero que aparezcan las ordenes de servicio, pero como le hago para que ahí pueda llamar de alguna manera las ordenes de servicio que le correspondan al proveedor que escogí.
Espero me allá explicado y me puedas ayudar.
De antemano te agradezco tu ayuda.

1 Respuesta

Respuesta
1
Por eso es que se deben unificar datos... como facturas y ordenes son hijos de proveedores (relación de uno a muchos) esto quiere decir que en ambas tablas (ordenes y facturas) debe llevar la llave de proveeedores... bueno dirás que en uno debes mostrar su nombre común y en otro la razón social... esto es problema... ya que para mostrar esto utilizamos un combo o cuadro combinado, en el ejemplo de las ordenes crearas un combo cuyo campo origen de la fila, se vasara en una consulta que recoja la llave del proveedor y el nombre común... luego en la ficha formato del cuadro combinado, en numero de columnas colocas 2, y en Ancho de filas colocaras:0 y el ancho del cuadro combinado que aparce más a bajo separado por punto y coma:algo así: 0;12.45
Porque cero y porquqe estos dos datos... primero respondo la segunda... porque debes guardar la llave del proveedor en este campo por eso traerás esta de primera en la consulta y ademas traerás el nombbre común de segunda... porque eso mostraras. En realidad si te das cuanta el cuadro combinado MOSTRARA en nombre común PERO TRABAJARA Y GUARDARA la llave del proveedor, por eso la ventaja del cuadro combinado... muestre una cosa pero guarde y trabaje con otra... por eso los anchos de columna 0 y luego el ancho del cuadro... cero para que oculte, ya que deseamos mostrar es el nombre común... esto se haría con factura solo que en vez de nombre común traeremos la razón social...
Bueno... pero hasta ahora no solucionamos el problema de traer las ordenes de cada proveedor en la factura... para allá iba...
Como en ordenes de servicios y facturas están guardando la llave del proveedor, ahora se hace fácil traer las ordenes según el proveedor que selecciones, para eso crearas (aunque ya creo aue lo habías hecho) un cuadro combinado donde se mostrara las ordenes de servicio SEGÚN EL PROVEEDOR SELECCIONADO...
Bueno entonces vamos al evento AfterUpdate (Después de actualizar) del cuadro combinado de proveedor en la factura (debe ser un cuadro combinado para selecciones uno y el otro cuador combinado te muestre sus ordenes)... entonces:
En este evento haremos una consulta según el proveedor seleccionado...
***********************
If Not Isnull(Cmbproveedor) then
sql = "SELECT NumOrden from [ordenes de servicio] where CodProv = " & CmbProveedor & ";"
CmbOrdenes.RowSource = sql
CmbOrdenes.Requery
end if
******************
Bueno aquí el combo donde seleccionas el proveedor lo llame Cmbproveedor y donde se mostrara las ordenes CmbOrdenes... debe tener datos el de proveedores para poder hacer la consulta por eso el if... If Not Isnull(Cmbproveedor) then
Ahora imaginemos que la tabla se llama ordenes de servicios (aunque no debería tener espacios el nombre de la tabla, por eso los corchetes) y de esta tabla quiero el Numero de orden (que llame NumOrden) pero debo filtrar según el proveddor por su llave (que llame CodProv) por eso se iguala al valor del cuadro combinado proveedores... ahora amarro esta consulta a la lista del combo:
CmbOrdenes.RowSource = sql
Y debo actualizar el combo
CmbOrdenes. Requery
Y LISTO...
Me avisas...
Att:telemaco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas