Доступ - проблема с кодом VBA Дата - проблема - PullRequest
0 голосов
/ 20 октября 2010

Привет всем, удалось завершить базу данных; но столкнулся с проблемой с чем-то, что я сделал в начале. В основном, вычисления в базе данных выполняются с использованием кода VBA. Теперь я столкнулся с проблемой, когда вместо того, чтобы отбирать данные за последние два года, он теперь отбирает и использует данные более двух лет назад. Данные, которые он должен выбрать, взяты из таблицы Historical_Stock_Data и таблицы Historical_Currency.

Теперь причина, по которой мне нужно установить двухлетний лимит, - это индекс, который мы используем на работе, который выполняет некоторые вычисления на основе данных за два года. Я не буду помещать весь код здесь, потому что это может быть слишком много, но если вы хотите, я могу поместить здесь часть кода SQL, которая выбирает таблицы для помещения в набор записей.

    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-месячные значения High и Low также должны измениться, поэтому он должен работать. Забавно то, что раньше это действительно работало, но я не могу понять, что я добавил в базу данных или что случилось, что сделало ее неработоспособной.

Я могу вставить здесь полный код VBA, если это поможет.

1 Ответ

2 голосов
/ 20 октября 2010

Дата в этом формате не будет работать, если вы не включите оба разделителя и не отформатируете их однозначно. Итак:

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

Однако я не вижу причин, по которым вы не должны использовать:

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

EDIT

" where CompanyLocation.StockCode='" & strStockcode & _
"' AND Historical_Stock_Data.Dates=[Historical_Currency].[Dates] " & _
" AND Historical_Stock_Data.Dates > DateAdd(""yyyy"",-2,Date()) " & _
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...