I have just done another Function Procedure which uses earlier functions to arrive at a final result. - It works.
Is the acceptable way or should I have made a long winded sql to gather the data again?
Is the acceptable way or should I have made a long winded sql to gather the data again?
Code:
Public Function PortfolioBalance() As Currency
Dim dbs As DAO.Database, rst As DAO.Recordset
Dim sqlString As String
Dim PortfolioSum As Currency 'Hold the Portfolio Balance as calculated
PortfolioSum = 0 ' set variable to Zero to start
'sql query to Sum TBLTRANS.TRNDR for Interest only up to and including today's date
sqlString = "SELECT Sum(TRNDR) AS SumOfTRNDR " & vbCrLf & _
"FROM TBLTRANS " & vbCrLf & _
"WHERE TRNACTDTE<=Date() AND TRNTYP In (""Interest"");"
'Open Recordset
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset(sqlString)
PortfolioSum = rst!SumOfTRNDR 'put result of sqlString (Interest to Date)as variable PortfolioSum
PortfolioSum = PortfolioSum + GetRecordSums("TBLTRANS.TRNDR", "Late fee")
PortfolioSum = PortfolioSum + GetRecordSums("TBLTRANS.TRNDR", "Legal Fees")
PortfolioSum = PortfolioSum + GetRecordSums("TBLTRANS.TRNDR", "Principal")
PortfolioSum = PortfolioSum + GetRecordSums("TBLTRANS.TRNDR", "Fee Aplic")
PortfolioSum = PortfolioSum + GetRecordSums("TBLTRANS.TRNDR", "Fee Process")
PortfolioSum = PortfolioSum - GetRecordSums("RepaymentsAll")
PortfolioBalance = PortfolioSum 'Return Variable to Function PortfolioBalance
'Close database variables
rst.Close
dbs.Close
End Function