Querydef execute возвращает ошибку времени выполнения - PullRequest
0 голосов
/ 13 июня 2019

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

Ошибка возникает в qdf.execute.

У меня есть другая база данных, которая в основном совпадает с тем же кодом, это прекрасно работает.

Я попытался поместить строку sql в новый запрос вручную, это также отлично работает.


    Dim Dstring As Date

    Dstring = asofdate

    Set qdf = CurrentDb.CreateQueryDef("")

    qdf.SQL = "SELECT * INTO WIP_Report FROM Qry_WIP_Percentage"
    qdf.Parameters("AsofDate") = Dstring
    qdf.Execute

В запросе содержится около 900 записей, и этот параметр применяется.

это SQL из запроса -

SELECT Left([Qry_WIP].[rollup],5) AS Parent, Qry_WIP.rollup AS [Shared Parent], " " AS [Previous Wip], Qry_WIP.WIP AS [Current WIP], Qry_WIP.[PO Price Summed] AS [PO Value], "" AS [Anticipated PO], " " AS [Previous Percent Complete], Qry_Percentage.Percentage AS [Current Percent Complete], Qry_WIP.[prod code], Qry_WIP.[cust-id], " " AS [Customer / Project], " " AS Notes, " " AS [Previous Amt to Recognize], " " AS [Previous Status], "" AS [Current Amt to Recognize], Qry_WIP.status AS [Current Status], Qry_WIP.[enter date]
FROM Qry_WIP LEFT JOIN Qry_Percentage ON Qry_WIP.rollup = Qry_Percentage.rollup
GROUP BY Left([Qry_WIP].[rollup],5), Qry_WIP.rollup, Qry_WIP.WIP, Qry_WIP.[PO Price Summed], Qry_Percentage.Percentage, Qry_WIP.[prod code], Qry_WIP.[cust-id], Qry_WIP.status, Qry_WIP.[enter date]

Понятия не имею, что здесь происходит, так как на днях все работало отлично.

Я вижу, что есть куча вопросов об отсутствии текущей записи, однако все они, похоже, относятся к наборам записей, а не к запросу.

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Мне снова удалось заставить это работать, хотя это не очень хорошо.

Примерно 6 месяцев назад у меня была резервная копия на стороне сервера, которая выдавала ту же ошибку. Я попытался создать новую базу данных и импортировать все, что все еще выдало ту же ошибку. Я пытался создать эту вещь с нуля, но она продолжала иметь ошибку.

Единственное, что сработало, - это зайти в свойства файла и восстановить предыдущую версию. Почему это работает, я не знаю, потому что точка восстановления, которую я использовал, была более поздней, чем резервная копия сервера, которая была у меня, и не было никаких изменений между сервером, восстановленными и текущими файлами.

У меня сейчас есть рабочая база данных, хотя я даже не могу догадаться, что произошло.

0 голосов
/ 13 июня 2019

Во-первых, дважды проверьте, что параметр в запросе явно объявлен как DateTime .

Во-вторых, преобразуйте в значение даты:

Dstring = DateValue(asofdate)

Редактировать :

Попробуйте переместить параметр вперед:

qdf.SQL = "PARAMETERS Asofdate DateTime; SELECT * INTO WIP_Report FROM Qry_WIP_Percentage"
qdf.Parameters("AsofDate").Value = asofdate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...