【发布时间】:2010-10-20 12:03:08
【问题描述】:
大家好,已成功完成数据库;但是我一开始做的事情遇到了问题。基本上,数据库中的计算是使用 VBA 代码完成的。现在我遇到了一个问题,不是只选择过去两年的数据,而是选择和使用两年多前的数据。它应该选择的数据来自Historical_Stock_Data 表和Historical_Currency 表。
现在我需要设置两年限制的原因是我们在工作中使用的索引仅根据两年的数据进行一些计算。我不会把所有代码都放在这里,因为它可能太多了,但是如果你愿意的话,我会把代码的 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 函数,但还是没有运气;我尝试将 SELCT 查询放在 Access 中,它仍然选择了超过两年的数据;所以我不确定该怎么做。这很重要的原因是因为他们每天都开始使用它;指数必须改变,24 个月的最高价和最低价也必须改变,所以它需要工作。有趣的是,它实际上之前工作过,但我似乎无法弄清楚我添加到数据库中的内容或发生了什么导致它无法工作。
如果有更多帮助,我可以在此处粘贴完整的 VBA 代码。
【问题讨论】:
标签: database ms-access vba date