2

同じ Access 2010 データベースで他の 2 つのクエリを呼び出す Access 2010 データベースでクエリを作成しています。結果は、次のフィールドを含む表形式のレポートになります。

FirstName, LastName, HomePhone, ClientNumber, Level, nextDate, Type 

顧客/行のリストは Query1 によって生成され、FirstName、LastName、HomePhone、および Client Number も入力されます。次に、Query2 は、上記の最初のクエリで定義された FOR EACH の顧客行に、Level、nextDate、および Type を入力します。

これまでのところ、私が持っている要約クエリは次のとおりです。

SELECT Query1.FirstName, Query1.LastName, Query1.HomePhone, Query1.ClientNumber, Query2.[Level], Query2.nextDate, Query2.Type 
FROM Query1 
INNER JOIN Query2 ON Query1.ClientNumber=Query2.ClientNumber;  

しかし、この集計クエリの結果をデータシート ビューで表示しようとすると、Access で Query2.ClientNumber を求めるダイアログ ボックスが表示されます。これは、コード内の何かがその変数を適切に参照していないことを示しています。

参考までに、Query1 のコードを次に示します。

SELECT ActiveCustomers.FirstName, ActiveCustomers.LastName, tblClientAddress.HomePhone, ActiveCustomers.ClientNumber 
FROM 
(
    SELECT Clients.ClientNumber, Clients.FirstName, Clients.LastName   
    (     
        SELECT COUNT(ReferralDate)      FROM IntakeTable      WHERE Clients.ClientNumber = IntakeTable.ClientNumber AND Len(ReferralDate & '') > 0   
    ) AS IntakeCount, 
    (     
        SELECT COUNT(ExitDate)      FROM ExitTable      WHERE Clients.ClientNumber = ExitTable.ClientNumber AND Len(ExitDate & '') > 0   
    ) AS ExitCount 
FROM Clients
)  AS ActiveCustomers  
INNER JOIN tblClientAddress ON ActiveCustomers.ClientNumber=tblClientAddress.ClientNumber
WHERE IntakeCount > ExitCount  AND tblClientAddress.CurrentResidence = True;  

Query2 のコードは次のとおりです。

SELECT a.[Level], max(a.dte) AS nextDate, IIf([Type1Date]<[Type2Date],"t1","t2") AS [Type]
FROM (
    select [Level], Type1Date as dte
    FROM CommunicationTable WHERE ClientNumber=1  
    UNION
    select [Level], Type2Date as dte
    FROM CommunicationTable WHERE ClientNumber = 1  
)  AS a
GROUP BY a.[Level], IIf(a.[Type1Date]<a.[Type2Date],"t1","t2");  

正しく動作するように設定する方法を教えてもらえますか?

4

1 に答える 1