I have created the following interest to calculate the interest for
the following currency pairs. I have tried to combine them in macros
using conditions but the next query that is run in the macro ends up
deleting the previous interest value that has been generated by the
query. For example if query 1 is run on the table with currency pair
USD/CHF then the interest will be updated without any problem but if
there is another entry in the table with another currency pair for
example EUR/JPY which is calculated say in query two then the interest
of USD/CHF which has been calculated previously will be deleted. I
think the only way to solve this would be to combine the queries
instead of seperating them using macro conditions. Please tell me how
I would appreciate it alot.
This is query1:
UPDATE [Spot Open Positions], [Sell Rate], [Buy Rate] SET [Spot Open
Positions].[INTEREST WED] = IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='USD/CHF' AND [Spot Open
Positions].[DAY]=4,([Sell Rate].[USD/CHF]*[Spot Open
Positions].[Sell]*100000*3)/36000,IIf([Spot Open Positions].[Sell]>0
And [Spot Open Positions].[ITEM]='EUR/USD' AND [Spot Open
Positions].[DAY]=4,([Sell Rate].[EUR/USD]*[Spot Open
Positions].[Sell]*100000*3)/36000,IIf([Spot Open Positions].[Sell]>0
And [Spot Open Positions].[ITEM]='USD/JPY'AND [Spot Open
Positions].[DAY]=4,([Sell Rate].[USD/JPY]*[Spot Open
Positions].[Sell]*100000*3)/36000,IIf([Spot Open Positions].[Sell]>0
And [Spot Open Positions].[ITEM]='GBP/USD' AND [Spot Open
Positions].[DAY]=4,([Sell Rate].[GBP/USD]*[Spot Open
Positions].[Sell]*100000*3)/36000,IIf([Spot Open Positions].[Sell]>0
And [Spot Open Positions].[ITEM]='AUD/USD' AND [Spot Open
Positions].[DAY]=4,([Sell Rate].[AUD/USD]*[Spot Open
Positions].[Sell]*100000*3)/36000,IIf([Spot Open Positions].[Sell]>0
And [Spot Open Positions].[ITEM]='XAU/USD' AND [Spot Open
Positions].[DAY]=4,([Sell Rate].[XAU/USD]*[Spot Open
Positions].[Sell]*100000)/36000*3,IIf([Spot Open Positions].[Buy]>0
And [Spot Open Positions].[ITEM]='USD/CHF' AND [Spot Open
Positions].[DAY]=4,([Buy Rate].[USD/CHF]*[Spot Open
Positions].[Buy]*100000*3)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='EUR/USD' AND [Spot Open
Positions].[DAY]=4,([Buy Rate].[EUR/USD]*[Spot Open
Positions].[Buy]*100000*3)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='USD/JPY' AND [Spot Open
Positions].[DAY]=4,([Buy Rate].[USD/JPY]*[Spot Open
Positions].[Buy]*100000*3)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='GBP/USD' AND [Spot Open
Positions].[DAY]=4,([Buy Rate].[GBP/USD]*[Spot Open
Positions].[Buy]*100000*3)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='AUD/USD' AND [Spot Open
Positions].[DAY]=4,([Buy Rate].[AUD/USD]*[Spot Open
Positions].[Buy]*100000*3)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='XAU/USD' AND [Spot Open
Positions].[DAY]=4,([Buy Rate].[XAU/USD]*[Spot Open
Positions].[Buy]*100000*3)/36000)))))))))) ));
This is query2:
UPDATE [Spot Open Positions], [Sell Rate], [Buy Rate] SET [Spot Open
Positions].INTEREST = IIf([Spot Open Positions].[Buy]>0 And [Spot Open
Positions].[ITEM]='EUR/JPY' AND NOT [Spot Open
Positions].[DAY]=4,((([Buy Rate].[EUR/USD]+[Buy
Rate].[USD/JPY])/2)*[Spot Open
Positions].[Buy]*100000)/36000,IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='EUR/JPY' AND NOT [Spot Open
Positions].[DAY]=4,((([Sell Rate].[EUR/USD]+[Sell
Rate].[USD/JPY])/2)*[Spot Open Positions].[Sell]*100000)/36000,
IIf([Spot Open Positions].[Buy]>0 And [Spot Open
Positions].[ITEM]='GBP/JPY' AND NOT [Spot Open
Positions].[DAY]=4,((([Buy Rate].[GBP/USD]+[Buy
Rate].[USD/JPY])/2)*[Spot Open
Positions].[Buy]*100000)/36000,IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='GBP/JPY' AND NOT [Spot Open
Positions].[DAY]=4,((([Sell Rate].[GBP/USD]+[Sell
Rate].[USD/JPY])/2)*[Spot Open
Positions].[Sell]*100000)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='AUD/JPY' AND NOT [Spot Open
Positions].[DAY]=4,((([Buy Rate].[AUD/USD]+[Buy
Rate].[USD/JPY])/2)*[Spot Open
Positions].[Buy]*100000)/36000,IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='AUD/JPY' AND NOT [Spot Open
Positions].[DAY]=4,((([Sell Rate].[AUD/USD]+[Sell
Rate].[USD/JPY])/2)*[Spot Open
Positions].[Sell]*100000)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='EUR/CHF' AND NOT [Spot Open
Positions].[DAY]=4,((([Buy Rate].[EUR/USD]+[Buy
Rate].[USD/CHF])/2)*[Spot Open
Positions].[Buy]*100000)/36000,IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='EUR/CHF' AND NOT [Spot Open
Positions].[DAY]=4,((([Sell Rate].[EUR/USD]+[Sell
Rate].[USD/CHF])/2)*[Spot Open
Positions].[Sell]*100000)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='USD/CAD' AND NOT [Spot Open
Positions].[DAY]=4,([Buy Rate].[USD/CAD]*[Spot Open
Positions].[Buy]*100000)/36000,IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='USD/CAD' AND NOT [Spot Open
Positions].[DAY]=4,([Sell Rate].[USD/CAD]*[Spot Open
Positions].[Sell]*100000)/36000)))))))))) ;
This is query3:
UPDATE [Spot Open Positions], [Sell Rate], [Buy Rate] SET [Spot Open
Positions].INTEREST = IIf([Spot Open Positions].[Buy]>0 And [Spot Open
Positions].[ITEM]='EUR/GBP' AND NOT [Spot Open
Positions].[DAY]=4,((([Buy Rate].[EUR/USD]+[Buy
Rate].[GBP/USD])/2)*[Spot Open
Positions].[Buy]*100000)/36000,IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='EUR/GBP' AND NOT [Spot Open
Positions].[DAY]=4,((([Sell Rate].[EUR/USD]+[Sell
Rate].[GBP/USD])/2)*[Spot Open Positions].[Sell]*100000)/36000,
IIf([Spot Open Positions].[Buy]>0 And [Spot Open
Positions].[ITEM]='EUR/AUD' AND NOT [Spot Open
Positions].[DAY]=4,((([Buy Rate].[EUR/USD]+[Buy
Rate].[AUD/USD])/2)*[Spot Open
Positions].[Buy]*100000)/36000,IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='EUR/AUD' AND NOT [Spot Open
Positions].[DAY]=4,((([Sell Rate].[EUR/USD]+[Sell
Rate].[AUD/USD])/2)*[Spot Open
Positions].[Sell]*100000)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='NZD/USD' AND NOT [Spot Open
Positions].[DAY]=4,([Buy Rate].[NZD/USD]*[Spot Open
Positions].[Buy]*100000)/36000,IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='NZD/USD' AND NOT [Spot Open
Positions].[DAY]=4,([Sell Rate].[NZD/USD]*[Spot Open
Positions].[Sell]*100000)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='GBP/CHF' AND NOT [Spot Open
Positions].[DAY]=4,((([Buy Rate].[GBP/USD]+[Buy
Rate].[USD/CHF])/2)*[Spot Open
Positions].[Buy]*100000)/36000,IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='GBP/CHF' AND NOT [Spot Open
Positions].[DAY]=4,((([Sell Rate].[GBP/USD]+[Sell
Rate].[USD/CHF])/2)*[Spot Open
Positions].[Sell]*100000)/36000,IIf([Spot Open Positions].[Buy]>0 And
[Spot Open Positions].[ITEM]='CHF/JPY' AND NOT [Spot Open
Positions].[DAY]=4,((([Buy Rate].[USD/CHF]+[Buy
Rate].[USD/JPY])/2)*[Spot Open
Positions].[Buy]*100000)/36000,IIf([Spot Open Positions].[Sell]>0 And
[Spot Open Positions].[ITEM]='CHF/JPY' AND NOT [Spot Open
Positions].[DAY]=4,((([Sell Rate].[USD/CHF]+[Sell
Rate].[USD/JPY])/2)*[Spot Open
Positions].[Sell]*100000)/36000)))))))))) ;
Under the conditions column I inserted the the following statements to
open the following queries:
Query1
("[ITEM]","Spot Open Positions")='EU R/USD' Or 'USD/JPY' Or 'GBP/USD'
Or 'USD/CHF' Or 'AUD/USD'
Query2
("[ITEM]","Spot Open Positions")='EU R/JPY' Or 'GBP/JPY' Or 'AUD/JPY'
Or 'EUR/CHF' Or 'USD/CAD'
Query3
("[ITEM]","Spot Open Positions")='EU R/GBP' Or 'EUR/AUD' Or 'NZD/USD'
Or 'GBP/CHF' Or 'CHF/JPY'
Please tell me if just changing the conditions statements would help
or would I have to combine the sql statements using vba. Please tell
me how because I keep getting the query to complex when tryin to
combine them.
Thank You Very Much,
Ravi