Do you have a table that is storing the values of a fund with a start date and termination date (or at the least a start date where you can infer the termination date from the next sequential record by date)?
For instance you should have a table listing all your possible funds
Another table that lists the value of that fund during a specific period (has nothing to do with number of units owned, it's the cost of one unit during the time span)
So
Code:
tbl_Funds
fund_id Fund_name
1 Fund A
2 Fund B
3 Fund C
tbl_FundValuations
FV_ID Fund_ID FV_StartDate FV_EndDate FV_UnitCost
1 1 1/1/2013 1/31/2013 50.00
2 1 2/1/2013 2/28/2013 52.00
3 1 3/1/2013 3/31/2013 60.00
So now let's say you have customers where you want to track the initial value vs the current value of their fund choices
so let's say you have
Code:
tbl_Customers
Cust_ID Cust_Name ------> other customer related fields
1 Customer A
2 Customer B
tbl_Customer_Funds
CF_ID Cust_ID Fund_ID CF_PurchaseDate CF_Quantity ----> other purchase related fields
1 1 1 1/7/2013 100
2 1 1 1/9/2013 50
3 1 1 2/7/2013 100
If I understand what you want to be able to do is to end up with something like (let's assume we're in march of 2013):
Code:
Customer FundOwned QtyHeld PurchaseValue CurrentValue
Customer A Fund A 250 12,700 15,000
Though looking at your post you don't seem to care about the purchase value.
There are a couple of things you can do to facilitate this.
1. In your queries used to calculate the current value of their funds you'd have to use DLOOKUP or DSUM functions (look at domain functions) to find the correct intial cost something like:
dlookup("[FV_ID]", "tbl_FundValuations", "[Fund_ID] = " & [fund_id] & " AND [FV_StartDate] <= #" & [Date of Report] & "# AND [FV_EndDate] >= #" & [Date of Report] & "#")
where [date of report] would be either a user input value or you can default it to today's date with the date() function.
that would give you the valuation ID and you could pull whatever information from that record you wanted in a subsequent query.
I do NOT favor dlookups used this way, they are very memory intensive and bog down queries/reports (make them take longer to run)
2. The second option is, at the time of data entry, to fill in another field that identifies the fund valuation period for quick retrieval. What I usually do is put an invisible field on the data entry form and when they've chosen the items that help you identify the correct fund valuation item (in this case the fund and the date of the purchase) you can run a piece of code that will fill in the invisible field (whether on a bound or unbound form).
Then when you run any queries you already have a link to the correct valuation item.