私はテキストフィールドに選択したクエリパラメータを表示するレポートヘッダーを作成しています。具体的には、ユーザはフォームにアクセスし、利用可能なコンボボックスの任意の組み合わせを選択し、送信ボタンをクリックして、レポートを生成するために使用されるクエリに選択されたパラメータを渡す。AccessでNzとDLookupを使用して#Errorを抑制できない
コンボボックスには、検索クエリのレコードが表示されます。たとえば、私のパラメータの1つはステータスです。 Statusコンボボックスの行ソースには、Statusテーブルの単なるクエリであるqry_StatusLookupという行ソースがあります。コンボボックスに動的な結果が表示されます。コンボボックスの列数は2で、列幅は0、 "1"に設定されています。これにより、ユーザーが選択内容を送信するときにID番号がクエリに渡されるように、ID列(名前列ではない)がバインドされます。
私のレポートヘッダーには、フォームに選択されたパラメーターを反映する必要があるフィールドと同じフィールドがあります。例えば、ヘッダ内のステータステキストボックスのように制御源と設定され:
=DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & [Forms]![frm_ParameterSelection]![cboStatusLookup])
これは、ID番号の代わりに、選択されたパラメータの名前を示しています。フォームを送信すると、値がクエリに渡され、レポートが表示されます。フォーム上でステータスが選択されていれば、正常に表示されます。ただし、ユーザーがステータスを選択しない場合、クエリは正常に実行され(ステータス別にフィルタリングしない)、レポートは正しくなりますが、選択されたステータスパラメータを表示するはずのヘッダーフィールドは#Errorとして表示されます。
DlookupをNZ関数でラップしようとしましたが、これはまだ#Errorが表示されます。パラメータはフォームから選択されていません。しかし、フォームからパラメーターを選択すると、状況は正常に表示されます。
私のNz関数の構文に問題はありますか?
=Nz(DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & [Forms]![frm_ParameterSelection]![cboStatusLookup]),"")
または、コンボボックスの空の値が技術的にnullでないクエリに渡されていますか?
+1!説明と提案をありがとう。 Nz関数を削除し、0を追加すると、機能が期待どおりに動作します。私は援助に感謝します。 (私はupvotedしかし、私はそれが表示されませんが記録されているので、15ポイント未満repのポイントがある) – dgibbons82