2017-02-17 48 views
0

我想在Access中創建一個查詢使用TempVars,使得當查詢運行時,tempvars已經填充它使用該值,但如果它沒有已填充它會提示用戶輸入日期。 這是我正在嘗試作爲我目前的查詢條件,它不工作。TempVars標準 - 但提示用戶,如果tempvars爲空

IIF(IsNull([TempVars]![Role_DT]), [TempVars]![Role_DT],[please enter the date to report]) 

即使填入TempVars,每次運行查詢都會顯示一個對話框以輸入日期。

有沒有這樣做?

+0

https://support.office.com/en-gb/article/IIf-Function-32436ecf-c629-48a3-9900-647539c764e3 IIf總是評估truepart和falsepart 數字.... –

+1

由於您使用VBA來設置您的TempVars,您是否可以將一個很好的值傳遞給查詢(即,如果當前爲空,請詢問用戶的值)。或者只是創建一個函數,它將返回一個很好的值並在查詢中引用該函數? –

+0

我這樣做的原因是一個查詢,我改變了使用TempVars原來用於相當多的地方,並且繞過它們全部更新它們以使用TempVars是不可行的。我嘗試了用戶定義的函數路由,不幸的是,這也沒有工作。查詢引用SQL Server表和ODBC連接。使用用戶定義的功能將性能停下來!我最終放棄並克隆了查詢,以便我的位使用TempVars版本的查詢,其他人繼續使用舊的提示。 –

回答

0

它是IIf其他方式「圓:

IIf([TempVars]![Role_DT] Is Not Null, [TempVars]![Role_DT], [Please enter the date to report]) 
+0

不幸的是,iif仍然會評估雙方並提示用戶。 –

+0

是的,任何參數必須解決。您可能需要按照@Wayne的建議創建自定義函數。 – Gustav