This procedure works. - criteria is Date() (today)
I want to get the date as a variable but this attempt doesn't work.
I assume the problem is related to how I do the variable date. Also, not using USA date system, if this is an issue.
Appreciate any advice
Code:
Public Function PortfolioBalance() As Currency 'Calculate Portfolio Balance as at today
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, Late fee and Legal Fees only up to and including today's date
' Add Sum TBLTRANS.TRNPR for Principal, fee Process and fee Aplic
' Deduct Sum tblMemberRepayments.PaymentAmt for all paymets made
sqlString = "SELECT TOP 1 Nz((SELECT Sum(TRNDR) AS SumOfTRNDR " & vbCrLf & _
" FROM TBLTRANS " & vbCrLf & _
" WHERE TRNACTDTE<=Date() " & vbCrLf & _
" AND TRNTYP In (""Interest"",""Late fee"", ""Legal Fees"") ),0)+Nz((SELECT Sum(TBLTRANS.TRNPR) AS SumOfTRNPR " & vbCrLf & _
" FROM TBLTRANS ),0)-Nz((SELECT Sum(tblMemberRepayments.PaymentAmt) AS SumOfPaymentAmt " & vbCrLf & _
" FROM tblMemberRepayments ),0) AS PortBalance " & vbCrLf & _
"FROM MSysObjects;"
'Open Recordset
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset(sqlString)
PortfolioSum = rst!PortBalance 'put result of sqlString as variable PortfolioSum
PortfolioBalance = PortfolioSum 'Return Variable to Function PortfolioBalance
'Close database variables
rst.Close
dbs.Close
End Function
I want to get the date as a variable but this attempt doesn't work.
Code:
Public Function PortfolioAnyDate(AnyDate As Date) As Currency 'Calculate Portfolio Balance for any date
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, Late fee and Legal Fees only up to and including today's date
' Add Sum TBLTRANS.TRNPR for Principal, fee Process and fee Aplic
' Deduct Sum tblMemberRepayments.PaymentAmt for all paymets made
sqlString = "SELECT TOP 1 Nz((SELECT Sum(TRNDR) AS SumOfTRNDR " & vbCrLf & _
" FROM TBLTRANS " & vbCrLf & _
" WHERE TRNACTDTE<=#AnyDate# " & vbCrLf & _
" AND TRNTYP In (""Interest"",""Late fee"", ""Legal Fees"") ),0)+Nz((SELECT Sum(TBLTRANS.TRNPR) AS SumOfTRNPR " & vbCrLf & _
" FROM TBLTRANS ),0)-Nz((SELECT Sum(tblMemberRepayments.PaymentAmt) AS SumOfPaymentAmt " & vbCrLf & _
" FROM tblMemberRepayments ),0) AS PortBalance " & vbCrLf & _
"FROM MSysObjects;"
'Open Recordset
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset(sqlString)
PortfolioSum = rst!PortBalance 'put result of sqlString as variable PortfolioSum
PortfolioAnyDate = PortfolioSum 'Return Variable to Function PortfolioBalance
'Close database variables
rst.Close
dbs.Close
End Function
I assume the problem is related to how I do the variable date. Also, not using USA date system, if this is an issue.
Appreciate any advice
