Cálculos financieros en access

Me gustaría saber como calcular el valor presente neto(npv) y la tasa interna de retorno(tir) en access, para aplicarlo en un subformulario que toma los datos de otro subformulario(parent), para el calculo. El calculo se haría por cada registro(cada beneficiario reistrado en la bd)

3 respuestas

Respuesta
1
Bueno debes tener las fórmulas para hacer estos cálculos luego tienes programar un botón que ejecute estas fórmulas a cada registro imprimiendo la respuesta ya sea en la misma tabla o en otra nueva
Gracias, dos preguntas por favor.
1. Como imprimo el resultado en una tabla, si esta en un campo calculado(cuadro de texto independiente)
2. He leído por ahí que tantos campos calculados( más de 100 para el flujo de caja hecho en un formulario) son potencialmente inseguras para la bd puesto que podría crear inestabilidad en la bd. Este problema lo tengo a veces al no cargar todos los controles al abrir un formulario con código de programación.
Bueno debes crear un modulo independiente o colgar el código a un botón para realizar esta operación, cargar la tabla en el modulo, realiza los cálculos necesarios y enviarlos al campo adecuado en la misma tabla.
Respuesta
1
Tasa Interna de Retorno
MIRR(values(), finance rate, reinvest rate)
Ejemplo
Dim LoanAPR, InvAPR, Fmt, RetRate, Msg
Static Valores(5) As Double ' Define la matriz.
LoanAPR = .1 ' Tipo de crédito.
InvAPR = .12 ' Tipo de reinversión.
Fmt = "#0.00" ' Define el formato.
Valores(0) = -70000 ' Costes iniciales.
' Flujos positivos representando ingresos en cuatro años siguientes.
Valores(1) = 22000 : Valores(2) = 25000
Valores(3) = 28000 : Valores(4) = 31000
RetRate = MIRR(Valores(), LoanAPR, InvAPR) ' Calcula tasa interna.
Msg = "La tasa interna de retorno modificada para estos cinco flujos de efectivo es "
Msg = Msg & Format(Abs(RetRate) * 100, Fmt) & "%."
MsgBox Msg ' Muestra la tasa interna de
' retorno.
VALOR NETO PRESENTE
NPV(rate, values())
Ejemplo
Dim Fmt, Guess, RetRate, NetPVal, Msg
Static Valores(5) As Double ' Define la matriz.
Fmt = "###,##0.00" ' Define el formato.
Guess = .1 ' Guess comienza con el 10%.
RetRate = .0625 ' Establece la tasa interna fija.
Valores(0) = -70000 ' Costes iniciales del negocio.
' Flujos positivos representando ingresos en cuatro años siguientes.
Valores(1) = 22000 : Valores(2) = 25000
Valores(3) = 28000 : Valores(4) = 31000
NetPVal = NPV(RetRate, Valores()) ' Calcula el valor actual neto.
Msg = "El valor actual neto de estos flujos de efectivo es "
Msg = Msg & Format(NetPVal, Fmt) & "."
MsgBox Msg ' Muestra el valor actual neto.
Suerte.
AZB
Gracias por la respuesta, pero tengo una duda, los valores son constantes.
Hice un estado de resultados y un flujo de caja en Access. La base de datos consiste en llevar un historial de beneficiarios que quieran emprender negocios productivos.
La idea es que yo relaciono la tabla "datos beneficiarios" con la tabla "estado de resultados" y la tabla "flujo de caja" en una relación tipo uno a uno. Entonces cuando abro el formulario flujo de caja o estado de resultado, me muestre dichos documentos por beneficiario(cambian los datos pero no la estructura del formulario). Por lo que mi duda consiste si no es más conveniente hacer el calculo de la TIR o VPN con valores que no sean fijos si no variables y ahí es donde me bloqueo.
Gracias
Gracias por tu colaboración
Lewishsarmie : Las funciones que te mostré están dentro del Access, y en realidad son constantes pero no hay otra forma de entrarlas en la función a menos que se llene esa matriz. No es tan complicado, lo que vos necesitas es una función intermedia que te llene la matriz antes de pasársela a la TIR o VPN.
Debes tomar el recodsert y recorrerlo mientras llenas la matriz.
Voy a probar si se puede meter directamente un recordset como matriz y te aviso, sino lo único que podes hacer es eso de llenar la matriz a partir del recordset.-
Respuesta
1
Se tendría que ver... ahora con solo esto
No lo veo nada claro para responder nada
Si te parece, Puedes mandarme un mail a
[email protected] y nos ponemos en contacto
Ok, te estaré enviando un mail
El pasado 06/11/07 te contesté
Un mail y no he recibido respuesta
Por tu parte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas