1

MS Access 2010 データベースには、基になるクエリから値が入力されるいくつかのテキスト ボックスと、計算される 1 つのテキスト ボックスを持つナビゲーション サブフォームがあります。計算されたテキスト ボックスに条件付きロジックを追加したいと考えています。

入力されたテキストボックスの 2 つは、ClientNumber と DOB です。式ビルダーでは、計算されたテキスト ボックスは Age であり、現在次のように計算されています。

=DateDiff("yyyy",[DOB],Now())+Int(Format(Now(),"mmdd")<Format([DOB],"mmdd"))  

Age の計算を次の疑似コードのように変更したいと思います。

=IiF( 
    ClientNumber IN qryActiveClients, 
    DateDiff("yyyy",[DOB],Now())+Int(Format(Now(),"mmdd")<Format([DOB],"mmdd"))  ,
     "NA"
    )

この疑似コードを変更して、目的のタスクを達成するための実際の作業コードにする方法を教えてもらえますか?

参考までに、qryActiveClients は次のとおりです。

SELECT DISTINCT 
    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 (((ActiveCustomers.IntakeCount)>[ExitCount]) AND ((tblClientAddress.CurrentResidence)=True));

qryActiveClients は、他のコントロールの入力元と同じクエリではないことに注意してください。

4

1 に答える 1

2

私はあなたがこのようなものを探していると信じています:

=IIf( 
    DCount("*", "qryActiveClients", "ClientNumber=" & [ClientNumber]) > 0, 
    DateDiff("yyyy",[DOB],Now())+Int(Format(Now(),"mmdd")<Format([DOB],"mmdd")),
    "NA"
    )
于 2013-10-22T09:43:37.790 に答える