2017-02-17 5 views
0

TempVarsを使用するAccessでクエリを作成しようとしていますが、クエリが実行されてtempvarsが読み込まれたときにその値が使用されますが、データが入力されると、ユーザーに日付の入力を促します。 ここで私は現在のクエリ基準として何をしようとしていますが、それは機能していません。TempVarsの基準 - ただし、tempvarsがnullの場合にはユーザーに問い合わせる

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を設定しているので、クエリに適切な値を渡すだけで済みます(現在Nullの場合は値を入力してください)。それとも、適切な値を返し、クエリでその関数を参照する関数を作成するだけですか? –

+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

関連する問題