0

ここにあるような MS Access 2010 での実行中の合計の作成について質問があります。

Access 2010 - 複数のレコードの現在の合計を表示するクエリ、古いレコードを削除し、各行に新しいレコードを追加する

ただし、そのスレッドから同等のコードを入力すると、データベースが見つからないというエラーが表示されます (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;
4

2 に答える 2

1

私が気づいたことの 1 つは、メイン クエリが使用しDMax()DMin()いくつかのエイリアス列を作成することです。

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

サブクエリは、その WHERE 句でこれらのエイリアスを使用しようとします

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

サブクエリは「親」クエリの列エイリアスを認識しないと確信しているため、認識されないアイテムである可能性があります。

于 2013-06-29T20:24:26.930 に答える
0

次のクエリを実行して開始します。

SELECT * FROM V4_Try;

次に、複雑さのために開発します。何よりも先に、ネストされたクエリを構築します。それが実行されることがわかったら、エイリアスを追加してから、DMax()関数などを追加してみてください。エラーが発生しているポイントを特定します。

これは、クエリを修正するプロセスです。

ああ、Access によって発生した正確なエラーを指定してください。また、これが VBA から実行されている場合は、トラブルシューティングに影響するためお知らせください。

于 2013-06-29T17:35:50.877 に答える