2013-06-29 2 views
0

У меня есть вопрос о создании текущих итогов в MS Access 2010, аналогичной той, здесь:SQL-кода для запуска Total не распознает имя таблицы

Access 2010 - query showing running total for multiple records, dropping old record and adding new record on each line

Однако, когда я входной эквивалентный код из этого потока Я получаю ошибку о том, что база данных не может быть найден (Access, кажется, думает таблица Я уточнял это имя базы данных)

Вот код из исходной нити: -

SELECT hbep1.EmployeeID, hbep1.PayPeriodID, 
    (
    SELECT Sum(hbep2.HoursUsed) 
    FROM Hours_by_Empl_PP hbep2 
    WHERE hbep2.EmployeeID=hbep1.EmployeeID 
     AND (hbep2.PayPeriodID Between hbep1.[PayPeriodID]-3 
     And hbep1.[PayPeriodID]) 
    ) AS Sum_of_Hours_last_4_PPs 
FROM Hours_by_Empl_PP hbep1; 

Вот код, который я вводится в мой запрос: -

SELECT 
    V4_Try.ID_NIS_INV_HDR, 
    V4_Try.ID_ITM, 
    V4_Try.RunTot3, 
    V4_Try.BomVsActQty, 
    DMin("RunTot3","V4_Try","[ID_Itm]=" & [ID_ITM]) AS IDItmMin, 
    DMax("RunTot3","V4_Try","[ID_Itm]=" & [ID_ITM]) AS IDItmMax, 
    (
     SELECT Sum([V4_Try].[BomVsActQty]) 
     FROM [V4_Try].[BomVsActQty] 
     WHERE [V4_Try].[ID_ITM]=[V4_Try].[ID_ITM] 
      AND (IDItmMax < IDItmMin) 
    ) AS RunTot6 
FROM V4_Try 
ORDER BY V4_Try.ID_ITM, V4_Try.RunTot3; 

ответ

0

Start, выполнив запрос:

SELECT * FROM V4_Try; 

Затем разработать для сложности. Создайте вложенный запрос раньше всего. Когда вы знаете, что работает, попробуйте добавить свои псевдонимы, затем функцию DMax() и т. Д. Изолируйте точку, в которой появляется ошибка.

Это процесс исправления запроса.

О, и, пожалуйста, укажите точную ошибку, вызванную Access. Кроме того, если это выполняется из VBA, сообщите нам, потому что это влияет на вашу проблему.

1

Одна вещь, которую я замечаю, что основной запрос использует DMax() и DMin() создать несколько псевдонимов столбцов

... 
DMin("RunTot3","V4_Try","[ID_Itm]=" & [ID_ITM]) AS IDItmMin, 
DMax("RunTot3","V4_Try","[ID_Itm]=" & [ID_ITM]) AS IDItmMax, 
... 

, а затем подзапрос пытается использовать эти псевдонимы в ИНЕКЕ

(
    SELECT ... 
    WHERE... 
     AND (IDItmMax < IDItmMin) 
) AS RunTot6 

I Я уверен, что подзапрос не будет знать псевдонимы столбцов в «родительском» запросе, поэтому они могут быть непризнанными.

+0

+1 - Право на. Я не мог сказать, что это беспокоит меня. – Smandoli