Hi Excel Gurus,
I have this weird problem that is bugging me since yesterday.
I am trying to Automate a complex dashboard that queries data from various data input files (in CSV). I am using ADO connection to fetch the calculation queries such as below.
The issue I have is when I run this query, it ignores the YEAR specific in the Date. For e.g. the following query should return the sumvalue of 16,600,000 for (Jan-15 + Feb-15 + Mar-15). Though it returns 21,150,000 (Jan-15 + Feb-15 + Mar-15, Jan-16 + Feb-16 + Mar-16, Jan-17 + Feb-17 + Mar-17).
Code
strSQL = "SELECT One.COMMODITY, One.TRANSACTION, One.ADJBS, Sum(One.[" & strCalc & "]) as SumValue " & _ "FROM DerData.csv AS One LEFT JOIN DelCustomers.csv as Two ON One.COUNTERPARTY = Two.COUNTERPARTY " & _
"WHERE (((One.DELIVERY_MONTH)>=" & sDate & " AND (One.DELIVERY_MONTH)<" & eDate & ") " & _
"AND ((One.FIRMNESS)<>'FLEXIBLE') AND ((One.COUNTERPARTY) Not In (SELECT COUNTERPARTY FROM DelCustomers.csv))) " & _
"GROUP BY One.COMMODITY, One.TRANSACTION, One.ADJBS " & _
"HAVING (((One.COMMODITY)='" & strCommodity & "') AND ((One.TRANSACTION)='" & strTransaction & "') AND ((One.ADJBS)='" & strAjdBS & "'))"
objRecordset.Open strSQL, objConnection, adopenstatic, adlockoptimistic, adcmdtext
FetchCalc2 = objRecordset.Fields.Item("SumValue")
Display More
SQL as Debug.Print below:
SQL
SELECT One.COMMODITY, One.TRANSACTION,
One.ADJBS,
Sum(One.[VOLUME]) AS SumValue
FROM DerData.csv AS One
LEFT JOIN DelCustomers.csv AS Two ON One.COUNTERPARTY = Two.COUNTERPARTY
WHERE (((One.DELIVERY_MONTH)>=#2015-01-01 00:00:00#
AND (One.DELIVERY_MONTH)<#2015-04-01 00:00:00#)
AND ((One.FIRMNESS)<>'FLEXIBLE')
AND ((One.COUNTERPARTY) NOT IN
(SELECT COUNTERPARTY
FROM DelCustomers.csv)))
GROUP BY One.COMMODITY,
One.TRANSACTION,
One.ADJBS
HAVING (((One.COMMODITY)='Gas')
AND ((One.TRANSACTION)='Forward Transactions')
AND ((One.ADJBS)='BUY'))
Display More
I tried passing dates in various formats #dd/mm/yyyy#, #dd/mm/yy#, 'dd/mm/yyyy' etc. Please help me crack this challenge.
Thanks in advance.
Cheers,
Ravi.