同じ 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");
正しく動作するように設定する方法を教えてもらえますか?