2010-10-20 41 views
0

嘿所有,都設法完成數據庫;但是在開始時我遇到了一些問題。基本上,數據庫中的計算是使用VBA代碼完成的。現在我遇到了一個問題,那就是不僅僅選擇過去兩年的數據,而是在兩年多前調查和使用數據。它應該選擇的數據來自Historical_Stock_Data表和Historical_Currency表。訪問 - VBA代碼問題日期問題

現在我需要設置兩年限制的原因是我們在工作中使用的索引,它根據僅兩年的數據進行一些計算。我不會把所有的代碼放在這裏,因爲它可能太多了,但是如果你想要的話,我會把代碼的SQL部分放在這裏,這些代碼選擇表放入Recordset中。

Set rst = db.OpenRecordset("SELECT Location.ID, Location.Location, CompanyLocation.StockCode, Company_Information.CompanyName, Company_Information.NOSH, " & _ 
" Company_Information.[CEP NAV], Company_Information.CompanyDescription, Company_Information.CurrencyCode, Historical_Stock_Data.StockCode, Historical_Stock_Data.Dates, " & _ 
" Historical_Stock_Data.SharePrice, Historical_Stock_Data.Volume, Historical_Currency.Rates " & _ 
" FROM Location RIGHT JOIN (((Historical_Currency RIGHT JOIN Company_Information ON Historical_Currency.CurrencyCode = Company_Information.CurrencyCode) " & _ 
" RIGHT JOIN CompanyLocation ON Company_Information.StockCode = CompanyLocation.StockCode) LEFT JOIN Historical_Stock_Data ON " & _ 
" Company_Information.StockCode = Historical_Stock_Data.StockCode) ON Location.ID = CompanyLocation.LocationID " & _ 
" where CompanyLocation.StockCode='" & strStockcode & "' AND ((Historical_Stock_Data.Dates)=[Historical_Currency].[Dates]) AND (Historical_Stock_Data.Dates) >" & Date & " - 730 " & _ 
" ORDER BY Historical_Stock_Data.SharePrice") 

現在的事情是我嘗試使用DateAdd函數以及但再次沒有運氣;我嘗試在Access中放置SELCT查詢,它仍然會選擇超過兩年的數據;所以我不確定該怎麼做。這很重要的原因是因爲他們每天開始使用它;該指數必須改變,24個月的最高值和最低值也必須改變,因此需要運作。有趣的是,它實際上工作之前,但我似乎無法弄清楚我添加到數據庫或發生了什麼,使它無法正常工作。

我可以在這裏粘貼完整的VBA代碼,如果它會幫助更多。

回答

2

該格式的日期將不起作用,除非您包含兩個分隔符並將其明確格式化。所以:

(Historical_Stock_Data.Dates) >#" & Format(Date - 730, "yyyy/mm/dd") "# ... 

不過,我看不出有什麼理由你不應該使用:

Historical_Stock_Data.Dates > DateAdd(""yyyy"",-2,Date()) 

編輯

" where CompanyLocation.StockCode='" & strStockcode & _ 
"' AND Historical_Stock_Data.Dates=[Historical_Currency].[Dates] " & _ 
" AND Historical_Stock_Data.Dates > DateAdd(""yyyy"",-2,Date()) " & _ 
+0

我想,我不斷收到語法錯誤,當我使用DateAdd函數,它會一直彈出「預期列表分隔符錯誤」。 – md85 2010-10-20 14:11:36

+0

請發佈您正在使用的顯示dateadd的SQL。 – Fionnuala 2010-10-20 14:37:32