Selecionar facturas de proveedores a pagar.

Estoy tratando de hacer una base de datos de pagos a proveedores. Por un lado tengo un formulario que me carga las facturas de los proveedores a una tabla que se llama TAltaDeFacturas.
Lo que quiero hacer, pero no se como es un formulario que se llame Ordenes de pago en el que mediante un cuadro combinado en el que selecciono un proveedor me muestre todas las facturas que tiene pendiente de pago ese proveedor y después pueda ir seleccionado las facturas que yo quiero pagar. Por supuesto una vez que se generó la orden de pago que las facturas que yo pagué no vuelvan a aparecer como pendientes de pago.
Por otro lado en otro formulario llamado Fondo fijo (para pago de facturas de proveedores de menor valor) me muestre todas las facturas pendiente de pago, ya no discriminadas por proveedor sino las que no están pagas y yo las pueda ir seleccionando para proceder a pagarlas con el formulario Fondo Fijo, las que una vez registradas que fueron pagadas con fondo fijo no me vuelvan a aparecer como pendiente de pago
Desde ya muchas gracias por su atención.
Aprovecho este consulta para felicitarlo por la muy buena página web de Access que desarrolló, me ha sido de mucha utilidad para novatos como yo.

1 Respuesta

Respuesta
1
Ya que la idea, al hacerla, era poder echar una mano, veo que algo de ese objetivo se ha cumplido, lo cual me llena de satisfacción. De verdad, muchas gracias ;)
Te explico un poco en general lo que debes hacer. Si tuvieras alguna duda me vuelves a pedir y ya entraré en detalles.
1.- En tu tabla TAltaDeFacturas deberías tener un campo de tipo Sí/No, con valor predeterminado cero (0), o si lo prefieres FALSE. Supongamos que ese campo se llama [YaPagado]
2.- Creas una consulta con los campos que necesites de TAltaDeFacturas, donde como mínimo incluyas el campo que te da el nombre del proveedor (yo lo llamaré [Proveedor]) y ese campo nuevo que hemos creado [YaPagado]. Supongamos que esa consulta se llama CPagosXProveedor
3.- En la línea de criterios, en la columna de Proveedor, escribes lo siguiente
Forms!FRealizarPagos.cboProveedor.Value
Y en la línea de criterios, en la columna de YaPagado, escribes, simplemente
False
4.- Creas un formulario basado en esa consulta. Llamémosle FPagosXProveedor.
5.- Creas una consulta basada en la tabla TAltaDeFacturas y añades, como único campo, el campo [Proveedor]. Conviertes esa consulta en una consulta de totales, sin tocar nada más. La guardas como CListaProveedores
6.- Creas un formulario en blanco y lo guardas como FRealizarPagos. Añades un combo y en el asistente le dices que busque los datos en la consulta CListaProveedores. Lo mejor sería ordenarlos ascendente por Proveedor (de la A a la Z). A ese combo le pones de nombre cboProveedor (Propiedades -> Pestaña Otras -> Nombre).
7.- Ahora, en las propiedades del combo, en el evento "Después de actualizar", generas el siguiente código:
...
Private Sub ...
Dim vProv as variant
vProv = me.cboProveedor.value
If IsNull(vProv) then Exit Sub
Docmd.openform "FPagosXProveedor", acFormDS
End Sub
...
8.- Crea una nueva consulta igual que CPagosXProveedor, pero esta vez no pongas ningún filtro en el campo Proveedor (mantienes el filtro del campo [YaPagado]). Si te interesa que la cantidad sea inferior a 100, por poner un ejemplo, en el campo donde se vea la cantidad pendiente, en la línea de criterios, podrías filtrar por
<=100
Guardas esa consulta como CFondoFijo
9.- Creas el formulario FFondoFijo basado en la consulta CFondoFijo.
10.- En tu formulario FRealizarPagos añades un botón de comando. En el evento "Al hacer click" le generas el siguiente código:
...
Private Sub ...
Docmd.openform "FFondoFijo", acFormDs
End Sub
...
A ver si así te sale lo que pides.
Un saludo,
3.- En la línea de criterios, en la columna de Proveedor, escribes lo siguiente
Forms!FRealizarPagos.cboProveedor.Value
Y en la línea de criterios, en la columna de YaPagado, escribes, simplemente
False
4.- Creas un formulario basado en esa consulta. Llamémosle FPagosXProveedor.
5.- Creas una consulta basada en la tabla TAltaDeFacturas y añades, como único campo, el campo [Proveedor]. Conviertes esa consulta en una consulta de totales, sin tocar nada más. La guardas como CListaProveedores
6.- Creas un formulario en blanco y lo guardas como FRealizarPagos. Añades un combo y en el asistente le dices que busque los datos en la consulta CListaProveedores. Lo mejor sería ordenarlos ascendente por Proveedor (de la A a la Z). A ese combo le pones de nombre cboProveedor (Propiedades -> Pestaña Otras -> Nombre).
7.- Ahora, en las propiedades del combo, en el evento "Después de actualizar", generas el siguiente código:
...
Private Sub ...
Dim vProv as variant
vProv = me.cboProveedor.value
If IsNull(vProv) then Exit Sub
Docmd.openform "FPagosXProveedor", acFormDS
End Sub
...
8.- Crea una nueva consulta igual que CPagosXProveedor, pero esta vez no pongas ningún filtro en el campo Proveedor (mantienes el filtro del campo [YaPagado]). Si te interesa que la cantidad sea inferior a 100, por poner un ejemplo, en el campo donde se vea la cantidad pendiente, en la línea de criterios, podrías filtrar por
<=100
Guardas esa consulta como CFondoFijo
9.- Creas el formulario FFondoFijo basado en la consulta CFondoFijo.
10.- En tu formulario FRealizarPagos añades un botón de comando. En el evento "Al hacer click" le generas el siguiente código:
...
Private Sub ...
Docmd.openform "FFondoFijo", acFormDs
End Sub
...
A ver si así te sale lo que pides.
Buenas tardes Neckkito
Te comento, los avances que logro en access son bastante pequeños, recien hoy y después de andar probando durante días logré que mediante el formulario alta de facturas se cargara la tabla, tenia problemas con la tabla alta de proveedores, no lograba crear la relación uno a varios, pero bueno, ya lo logré.
En relación a tu respuesta a mi consulta, la que agradezco mucho, te comento lo que me pasa:
1)Cuando quiero hacer la consulta del punto 3 CPagosXProveedor me sale un combobox, que supongo que debe estar bien, porque vos me la dijiste.
2)Me parece que tengo un problema con la consulta de totales, yo pongo el campo proveedor en la consulta y me aparece entre las lineas tabla y orden la linea totales y después me pregunta agrupar por. ¿es eso?, ¿por que agrupo?
3)En relación al punto 7) el código se carga perfecto, sin ningún error, pero no funciona porque tengo algo mal en CListaProveedor
Agradeciendote desde ya por tu dedicación te mando un saludo
Marcelo
Tu consulta es un poco compleja por la cantidad de puntos que abarca. Si te parece bien, pásame tu BD a mi mail, que es [email protected], y le echo un vistazo. Te responderé cómo solucionar tu problema en función de lo que pueda ver.
Te agradecería que la BD me la pasaras comprimida en zip o rar.
Neckkito:
has sido muy gentil en responderme, valoro tu dedicación y tu explicación, como te comentaba los avances que voy logrando son pequeños, pero voy a ir analizando el mail que me enviaste para tratar de implementar lo que quiero hacer, pero me has orientado bastante y muy didáctico
Muchas gracias.
Estuve mirando el capítulo 7 de tu manual de access, se va poniendo interesante
felicitaciones
Un saludo
Marcelo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas