Necesito ayuda... Porfavoooor !
Quiero registrar las cuotas de un crédito otorgado a un empleado automáticamente sin tener que asentarlas mes por mes (a mano). Lo que quiero es que con el formulario yo pueda decir: Préstamo 500 y 5 cuotas y que automáticamente me registre en una tabla las 5 cuotas de 100 con el mes que le corresponde a cada una. ¿Se entiende?
1 respuesta
Respuesta de lantach
1
1
lantach, He desarrollado Bases de Datos en MS Access y Visual para...
Bueno la solución a tu problema no es tan complicada como parece, primero debes crear una tabla paralela de prestamos, en ella cuatro campos, empleado (o código), cantidad, cuotas y cuotas descontadas,
así al generar la nomina un pequeño código que verifique esta nueva tabla y haga el descuento.
Para poder orienterte con el código necesitaría más detalles de la base de datos.
Lantach
así al generar la nomina un pequeño código que verifique esta nueva tabla y haga el descuento.
Para poder orienterte con el código necesitaría más detalles de la base de datos.
Lantach
Bueno en primer lugar en nombre de la tabla que controla la nomina y de cada uno de los campos de la misma
En segundo lugar el procedimiento por el cual se hace la liquidación de nomina necesito conocer todo el código ya que dentro de este iría la rutina que te esplique anteriormente, en caso de no tener código el procedimiento que siguen para hacer la liquidación.
Lantech
En segundo lugar el procedimiento por el cual se hace la liquidación de nomina necesito conocer todo el código ya que dentro de este iría la rutina que te esplique anteriormente, en caso de no tener código el procedimiento que siguen para hacer la liquidación.
Lantech
lantech
Te equivocaste conmigo hermano ya que no tengo ni idea de código.
Tengo hecha las tablas pero no se como puedo hacerlas trabajar.
Una tabla se llama Descuentos y los campos de esta son
Legajo, Cuota, Mes, Monto, y Total.
Con esto yo esperaba hacer un formulario en donde yo ingresara el legajo
del empleado, el monto total del crédito y el interés y que a partir de ahí
se agregara en la tabla Descuentos el legajo del empleado, las cuotas en
las que se divide el préstamo, el número de las cuotas, el mes y el total
del préstamo.
Pero no se como hacerlo ! Sin tener que ingresar las cuotas una por una
en la tabla.
Espero tu ayuda. please !
Te equivocaste conmigo hermano ya que no tengo ni idea de código.
Tengo hecha las tablas pero no se como puedo hacerlas trabajar.
Una tabla se llama Descuentos y los campos de esta son
Legajo, Cuota, Mes, Monto, y Total.
Con esto yo esperaba hacer un formulario en donde yo ingresara el legajo
del empleado, el monto total del crédito y el interés y que a partir de ahí
se agregara en la tabla Descuentos el legajo del empleado, las cuotas en
las que se divide el préstamo, el número de las cuotas, el mes y el total
del préstamo.
Pero no se como hacerlo ! Sin tener que ingresar las cuotas una por una
en la tabla.
Espero tu ayuda. please !
¿Alfajores? no se que es eso.
Bueno si no has comenzado lo más importante es el diseño de la Base de Datos en esto radica el éxito y la efectividad de la misma.
1. Debe tener una tabla [Empleados] en donde se encuentre el Empleado, cargo, sueldo, etc. (esencialmente estos datos).
2. Luego una tabla [Descuentos] en la que se encuentren los descuentos, Empleado, monto, Cuotas, Interés, Cuotas_canceladas, etc.
3. Otra tabla [Nomina] en la cual se liquide la nomina (también sirve para los recibos) debe tener Empleado, Sueldo, descuento, total (Por lo menos).
4. Debe crear un formulario direccionado a la primera tabla y llenar los datos de los empleados.
5. En esta tabla en vista de diseño ubique el nombre el empleado y en la pestaña de la parte inferior [Busueda], en la primera fila colocar cuadro combinado y en la tercera seleccionar la tabla en donde esta la información de los empleados. (Esto con el fin de no equivocarse con el nombre de alguno a la hora de registrar un préstamo).
6. Ahora Copie y pegue la tabla de desuentos y puede nombrarla como [descuento1]
7. Después crear otro formulario direccionado a la tabla descuentos1 sin incluir las cuotas canceladas.
8. Cree un botón en este formulario que cierre el formulario. Seleccione las propiedades del formulario y en datos en Premitir filtros, ediciones y eliminación colocar no y en las dos filas siguientes colocar si.
- Ahora comienza lo difícil.
9. Con el formulario en vista de diseño, haga click en em menu ver y seleccione código, debe abrirse una ventana de código, allí click en herramientas y referencias.
10. Debe verificar que las siguientes librerías estén cluleadas y en el orden a continuación:
- Visual Basic for applications
- Microsoft access 9.0 Object Library
- Microsoft DAO 3.6 Objetc Library
- OLE Automation
- Microsoft ActiveX Data Objects 2.1 Library
11. Una vez tenga esto podemos empezar con el código. En el cuarto reglón de código debe encontrar DoCmd. Close desde aquí empezamos.
12. Dim Resdb As Database, Resws As Workspace, Res As Recordset
Dim Rasdb As Database, Rasws As Workspace, Ras As Recordset
Set Resws = DBEngine.Workspaces(0)
Set Resdb = Resws.Databases(0)
Set Res = Resdb.OpenRecordset("Descuento")
Set Rasws = DBEngine.Workspaces(0)
Set Rasdb = Rasws.Databases(0)
Set Ras = Rasdb.OpenRecordset("Descuento1")
If Ras.EOF = False Then
Ras.MoveFirst
Res.AddNew
Res![Empleado] = Ras![Empleado]
Res![Monto] = Ras![Monto]
Res![Cuotas] = Ras![Cuotas]
Res![Interes] = Ras![Interes]
Res![Cuotas_Canceladas] = Ras![Cuotas_Canceladas]
Res.Update
While Ras.EOF = False
Ras.Delete
Ras.MoveNext
Wend
End If
13. Hasta ahora solo hemos registrado el préstamo, falta descontarlo de la nomina, se debe crear un formulario direccionado a la tabla nomina con todos los campos de la tabla en el formulario.
14. Debe ir a modulos en la pantalla de la base de datos y alli nuevo y copie
Function Nomina()
Dim Rasdb As Database, Rasws As Workspace, Ras As Recordset
Dim Resdb As Database, Resws As Workspace, Res As Recordset
Dim Risdb As Database, Risws As Workspace, Ris As Recordset
Dim Descuento, Interes, Cuota
Set Rasws = DBEngine.Workspaces(0)
Set Rasdb = Rasws.Databases(0)
Set Ras = Rasdb.OpenRecordset("Nomina")
Set Resws = DBEngine.Workspaces(0)
Set Resdb = Resws.Databases(0)
Set Res = Resdb.OpenRecordset("Descuento")
Set Risws = DBEngine.Workspaces(0)
Set Risdb = Risws.Databases(0)
Set Ris = Risdb.OpenRecordset("Empleados")
If Ras.EOF = False Then
Ras.MoveFirst
While Ras.EOF = False
Ras.Delete
Ras.MoveNext
Wend
End If
If Res.EOF = False Then
Ris.MoveFirst
While Ris.EOF = False
Descuento = 0
Des = 0
Res.MoveFirst
While Res.EOF = False
If Res![Empleado] = Ris![Empleado] Then
If Res![Cuotas] = Res![Cuotas_Canceladas] Then
Res.Delete
Else
Cuota = Res![Monto] / (Res![Cuotas] - Res![Cuotas_Canceladas])
Interes = Res![Monto] * (Res![Interes] / 100)
Descuento = Descuento + Cuota + Interes
Res.Edit
Res![Monto] = Res![Monto] - Cuota
Res![Cuotas_Canceladas] = Res![Cuotas_Canceladas] + 1
Res.Update
End If
End If
Res.MoveNext
Wend
Ras.AddNew
Ras![Empleado] = Ris![Empleado]
Ras![Sueldo] = Ris![Sueldo]
Ras![Descuento] = Descuento
Ras![Total] = Ras![Sueldo] - Descuento
Ras.Update
Ris.MoveNext
Wend
Else
Ris.MoveFirst
While Ris.EOF = False
Ras.AddNew
Ras![Empleado] = Ris![Empleado]
Ras![Sueldo] = Ris![Sueldo]
Ras![Total] = Ras![Sueldo]
Ras.Update
Ris.MoveNext
Wend
End If
DoCmd.OpenForm "Nomina"
End Function
15. Guerde el modulo con el nombre generar nomina.
16. Ahora debe ir a macros en la ventana principal de la base y seleccione nuevo, allí busque ejecutar código y en la aprte inferior en nombre de la función escriba Nomina ()
17. Guarde el modulo como liquidar nomina. OJO ninguno de los nombres puede ser igual.
18. Ahora debe crear un formulario de inicio en donde estén los botones para abrir las opciones, una de ellas es generar nomina.
15. Para este botón busque en otras y ejecutar macro y seleccione la macro que acaba de crear.
16. Listo para la próxima.
Apéndice A:
La liquidación del los intereses se hace de acuerdo al saldo.
Ejemplo:
Un empleado tiene un préstamo de 100.000 al 5% por 5 cuotas,
primera cuota amortiza 20000 y 5000 de intereses
segunda cuota amortiza 20000 y 4000 de intereses
tercera cuota amortiza 20000 y 3000 de intereses
cuarta cuota amortiza 20000 y 2000 de intereses
ultima cuota amortiza 20000 y 1000 de intereses
Apéndice B:
Los nombres que coloque en la parte superior para las tablas y los campos deben coincidir exactamente con los suyos, ya que el código fue generado en base a estos.
Espero que le sirva y este lo suficientemente claro, cualquier duda no dude en preguntar.
Lantach
Bueno si no has comenzado lo más importante es el diseño de la Base de Datos en esto radica el éxito y la efectividad de la misma.
1. Debe tener una tabla [Empleados] en donde se encuentre el Empleado, cargo, sueldo, etc. (esencialmente estos datos).
2. Luego una tabla [Descuentos] en la que se encuentren los descuentos, Empleado, monto, Cuotas, Interés, Cuotas_canceladas, etc.
3. Otra tabla [Nomina] en la cual se liquide la nomina (también sirve para los recibos) debe tener Empleado, Sueldo, descuento, total (Por lo menos).
4. Debe crear un formulario direccionado a la primera tabla y llenar los datos de los empleados.
5. En esta tabla en vista de diseño ubique el nombre el empleado y en la pestaña de la parte inferior [Busueda], en la primera fila colocar cuadro combinado y en la tercera seleccionar la tabla en donde esta la información de los empleados. (Esto con el fin de no equivocarse con el nombre de alguno a la hora de registrar un préstamo).
6. Ahora Copie y pegue la tabla de desuentos y puede nombrarla como [descuento1]
7. Después crear otro formulario direccionado a la tabla descuentos1 sin incluir las cuotas canceladas.
8. Cree un botón en este formulario que cierre el formulario. Seleccione las propiedades del formulario y en datos en Premitir filtros, ediciones y eliminación colocar no y en las dos filas siguientes colocar si.
- Ahora comienza lo difícil.
9. Con el formulario en vista de diseño, haga click en em menu ver y seleccione código, debe abrirse una ventana de código, allí click en herramientas y referencias.
10. Debe verificar que las siguientes librerías estén cluleadas y en el orden a continuación:
- Visual Basic for applications
- Microsoft access 9.0 Object Library
- Microsoft DAO 3.6 Objetc Library
- OLE Automation
- Microsoft ActiveX Data Objects 2.1 Library
11. Una vez tenga esto podemos empezar con el código. En el cuarto reglón de código debe encontrar DoCmd. Close desde aquí empezamos.
12. Dim Resdb As Database, Resws As Workspace, Res As Recordset
Dim Rasdb As Database, Rasws As Workspace, Ras As Recordset
Set Resws = DBEngine.Workspaces(0)
Set Resdb = Resws.Databases(0)
Set Res = Resdb.OpenRecordset("Descuento")
Set Rasws = DBEngine.Workspaces(0)
Set Rasdb = Rasws.Databases(0)
Set Ras = Rasdb.OpenRecordset("Descuento1")
If Ras.EOF = False Then
Ras.MoveFirst
Res.AddNew
Res![Empleado] = Ras![Empleado]
Res![Monto] = Ras![Monto]
Res![Cuotas] = Ras![Cuotas]
Res![Interes] = Ras![Interes]
Res![Cuotas_Canceladas] = Ras![Cuotas_Canceladas]
Res.Update
While Ras.EOF = False
Ras.Delete
Ras.MoveNext
Wend
End If
13. Hasta ahora solo hemos registrado el préstamo, falta descontarlo de la nomina, se debe crear un formulario direccionado a la tabla nomina con todos los campos de la tabla en el formulario.
14. Debe ir a modulos en la pantalla de la base de datos y alli nuevo y copie
Function Nomina()
Dim Rasdb As Database, Rasws As Workspace, Ras As Recordset
Dim Resdb As Database, Resws As Workspace, Res As Recordset
Dim Risdb As Database, Risws As Workspace, Ris As Recordset
Dim Descuento, Interes, Cuota
Set Rasws = DBEngine.Workspaces(0)
Set Rasdb = Rasws.Databases(0)
Set Ras = Rasdb.OpenRecordset("Nomina")
Set Resws = DBEngine.Workspaces(0)
Set Resdb = Resws.Databases(0)
Set Res = Resdb.OpenRecordset("Descuento")
Set Risws = DBEngine.Workspaces(0)
Set Risdb = Risws.Databases(0)
Set Ris = Risdb.OpenRecordset("Empleados")
If Ras.EOF = False Then
Ras.MoveFirst
While Ras.EOF = False
Ras.Delete
Ras.MoveNext
Wend
End If
If Res.EOF = False Then
Ris.MoveFirst
While Ris.EOF = False
Descuento = 0
Des = 0
Res.MoveFirst
While Res.EOF = False
If Res![Empleado] = Ris![Empleado] Then
If Res![Cuotas] = Res![Cuotas_Canceladas] Then
Res.Delete
Else
Cuota = Res![Monto] / (Res![Cuotas] - Res![Cuotas_Canceladas])
Interes = Res![Monto] * (Res![Interes] / 100)
Descuento = Descuento + Cuota + Interes
Res.Edit
Res![Monto] = Res![Monto] - Cuota
Res![Cuotas_Canceladas] = Res![Cuotas_Canceladas] + 1
Res.Update
End If
End If
Res.MoveNext
Wend
Ras.AddNew
Ras![Empleado] = Ris![Empleado]
Ras![Sueldo] = Ris![Sueldo]
Ras![Descuento] = Descuento
Ras![Total] = Ras![Sueldo] - Descuento
Ras.Update
Ris.MoveNext
Wend
Else
Ris.MoveFirst
While Ris.EOF = False
Ras.AddNew
Ras![Empleado] = Ris![Empleado]
Ras![Sueldo] = Ris![Sueldo]
Ras![Total] = Ras![Sueldo]
Ras.Update
Ris.MoveNext
Wend
End If
DoCmd.OpenForm "Nomina"
End Function
15. Guerde el modulo con el nombre generar nomina.
16. Ahora debe ir a macros en la ventana principal de la base y seleccione nuevo, allí busque ejecutar código y en la aprte inferior en nombre de la función escriba Nomina ()
17. Guarde el modulo como liquidar nomina. OJO ninguno de los nombres puede ser igual.
18. Ahora debe crear un formulario de inicio en donde estén los botones para abrir las opciones, una de ellas es generar nomina.
15. Para este botón busque en otras y ejecutar macro y seleccione la macro que acaba de crear.
16. Listo para la próxima.
Apéndice A:
La liquidación del los intereses se hace de acuerdo al saldo.
Ejemplo:
Un empleado tiene un préstamo de 100.000 al 5% por 5 cuotas,
primera cuota amortiza 20000 y 5000 de intereses
segunda cuota amortiza 20000 y 4000 de intereses
tercera cuota amortiza 20000 y 3000 de intereses
cuarta cuota amortiza 20000 y 2000 de intereses
ultima cuota amortiza 20000 y 1000 de intereses
Apéndice B:
Los nombres que coloque en la parte superior para las tablas y los campos deben coincidir exactamente con los suyos, ya que el código fue generado en base a estos.
Espero que le sirva y este lo suficientemente claro, cualquier duda no dude en preguntar.
Lantach
Bien, vuelvo a empezar. Quiero crear un formulario en donde yo pueda ingresar los datos de un préstamo como por ejemplo: 1. Agente, 2.Monto, 3.Cantidad de Cuotas, 4. Interés y que automáticamente, este formulario, registre en una tabla todas las cuotas del préstamo de este agente y los meses de descuento para no tener que hacerlo a mano cuota por cuota. ¿Me explique bien? Además, desde el principio, en ningún momento dije que tenía hecho algo. No conozco el código. Lo que necesito es una ayuda para empezar para que yo pueda seguir más adelante solo. Gracias por tu paciencia lantech...! ¿Te gustan los alfajores?
Bueno mi pregunta anterior era como se realiza la liquidación de la nomina, es automática o maual y en dosde se almacena.
Por otro lado si no haz realizado código va a ser un poco difícil realizar el procedimiento que necesitas pero si eres un poco más explicito en el díselo de la base de datos te puedo colaborar
Por otro lado si no haz realizado código va a ser un poco difícil realizar el procedimiento que necesitas pero si eres un poco más explicito en el díselo de la base de datos te puedo colaborar
Tres cosas:
1- Hice todo y cuando intento registrar un préstamo me sale un error que dice "No coinciden los tipos"
2- ¿Por qué los intereses se amortizan en forma decreciente y no uniforme? O sea todos los meses igual.
3- La parte del Código donde va la nómina no me hace falta ya que no voy a descontarlo del sueldo de los empleados ni a liquidar sueldos, simplemente voy a registrar los prestamos y cuantos meses me debe cada empleado.
Inmensas gracias por tu ayuda, se ve que sabes mucho...!
PD1: Los alfajores son masas dulces muy conocidos y ricos aquí en Córdoba-Argentina.
PD2: ¿Dónde puedo empezar a aprender código para MS Access?
Gracias otra vez...!
1- Hice todo y cuando intento registrar un préstamo me sale un error que dice "No coinciden los tipos"
2- ¿Por qué los intereses se amortizan en forma decreciente y no uniforme? O sea todos los meses igual.
3- La parte del Código donde va la nómina no me hace falta ya que no voy a descontarlo del sueldo de los empleados ni a liquidar sueldos, simplemente voy a registrar los prestamos y cuantos meses me debe cada empleado.
Inmensas gracias por tu ayuda, se ve que sabes mucho...!
PD1: Los alfajores son masas dulces muy conocidos y ricos aquí en Córdoba-Argentina.
PD2: ¿Dónde puedo empezar a aprender código para MS Access?
Gracias otra vez...!
Bueno el error aparece por que en alguna parte del código no coinciden exactamente con el nombre del campo de la tabla o con la tabla en si, debes verificar los datos exactos o si quieres te envío el archivo de ejemplo para que lo mires y lo adecues a tus necesidades.
Por otro lado lo de los interés, en Colombia se liquidan siempre un interés del saldo no de un total ya que se estarían cobrando un interés por una plata que ya se pago, pero si quieres se pueden liquidar como quieras, simplemente hazmenlo saber.
Por otro lado lo del código es algo de mucha paciencia y practica, yo tengo una academia pero en Colombia pero si realmente quieres aprender podemos llegar a un acuerdo.
Por otro lado lo de los interés, en Colombia se liquidan siempre un interés del saldo no de un total ya que se estarían cobrando un interés por una plata que ya se pago, pero si quieres se pueden liquidar como quieras, simplemente hazmenlo saber.
Por otro lado lo del código es algo de mucha paciencia y practica, yo tengo una academia pero en Colombia pero si realmente quieres aprender podemos llegar a un acuerdo.
Lantach
1. Aquí en la Argentina los intereses de
un préstamo se descuentan uniformemente.
2. Me serviría mucho tu archivo de ejemplo...!
Me sacaría del aprieto en que me encuentro ahora
mi mail es [email protected]
3. Analizando el código que me enviaste tan
amablemente me doy cuenta de que es mucho más
de lo que me hace falta y te cuento por qué:
Lo del descuento de las cuotas del sueldo de cada
empleado no importa ya que lo importante es tener
un formulario que cuando yo ingrese el número de cuotas
del préstamo, me genere automáticamente las cuotas que
me debe esa persona, por Ej.:
Yo ingreso en el formulario:
Empleado: Luis
Préstamo: 1000
Cuotas: 10
Interés: 12%
Mes: Junio
Y que el formulario me genere una tabla con 10 registros
correspondientes a las 10 cuotas que debe Luis con su
correspondiente mes a partir del mes que se genera el préstamo.
Sería mucho mejor si te lo enviara por mail porque lo que me
hace falta es mucho más simple de lo que me enviaste.
Y lo de la idea de aprender código contigo sería genial y lo
mejor que me podría pasar pero no se como lo podríamos hacer
pero me gustaría mucho.
Alejandro Merlo
[email protected]
PD1: Me gustaría mucho comunicarme contigo por mail.
PD2: ¿Qué libro me aconsejas para empezar a leer sobre código
en MS Access?
1. Aquí en la Argentina los intereses de
un préstamo se descuentan uniformemente.
2. Me serviría mucho tu archivo de ejemplo...!
Me sacaría del aprieto en que me encuentro ahora
mi mail es [email protected]
3. Analizando el código que me enviaste tan
amablemente me doy cuenta de que es mucho más
de lo que me hace falta y te cuento por qué:
Lo del descuento de las cuotas del sueldo de cada
empleado no importa ya que lo importante es tener
un formulario que cuando yo ingrese el número de cuotas
del préstamo, me genere automáticamente las cuotas que
me debe esa persona, por Ej.:
Yo ingreso en el formulario:
Empleado: Luis
Préstamo: 1000
Cuotas: 10
Interés: 12%
Mes: Junio
Y que el formulario me genere una tabla con 10 registros
correspondientes a las 10 cuotas que debe Luis con su
correspondiente mes a partir del mes que se genera el préstamo.
Sería mucho mejor si te lo enviara por mail porque lo que me
hace falta es mucho más simple de lo que me enviaste.
Y lo de la idea de aprender código contigo sería genial y lo
mejor que me podría pasar pero no se como lo podríamos hacer
pero me gustaría mucho.
Alejandro Merlo
[email protected]
PD1: Me gustaría mucho comunicarme contigo por mail.
PD2: ¿Qué libro me aconsejas para empezar a leer sobre código
en MS Access?
Alejandro que pena hermano que no le había respondido pero es que estado re full de trabajo y ademas haubo un problema con los servidores en Colombia ya que Telecom fue rematada en fin.
Puede escribirme a me mail y envierme su archivo yo lo miro y le digo que se puede hacer listo.
mi mail es [email protected]
Puede escribirme a me mail y envierme su archivo yo lo miro y le digo que se puede hacer listo.
mi mail es [email protected]
- Compartir respuesta
- Anónimo
ahora mismo