2013-10-22 45 views
1

在MS Access 2010數據庫中,我有一個導航子窗體,其中有幾個文本框的值由底層查詢填充,並且有一個文本框已計算。我想添加一些條件邏輯到計算的文本框。在運行vba表達式之前檢查結果是否在查詢中

兩個填充的文本框是ClientNumber和DOB。在表達式生成器,計算出的文本框是年齡,目前計算如下:

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

我想改年齡計算成爲類似下面的僞代碼:

=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是不一樣的查詢什麼的其他控件的填充。

回答

2

我相信你正在尋找的東西是這樣的:

=IIf( 
    DCount("*", "qryActiveClients", "ClientNumber=" & [ClientNumber]) > 0, 
    DateDiff("yyyy",[DOB],Now())+Int(Format(Now(),"mmdd")<Format([DOB],"mmdd")), 
    "NA" 
    ) 
+0

+1這解決了這個問題。謝謝。 – CodeMed

相關問題