Рассмотрите возможность использования параметризованного запроса, избегая конкатенации и пунктуации в кавычках, напрямую ссылаясь на элементы управления формы. Используйте такой запрос в форме RecordSource, вызывая NZ
, чтобы назначить пропущенные параметры поиска самому столбцу. Логически это сделает все параметры поиска необязательными. Обратите внимание, что ниже не учитываются значения NULL
.
SQL (сохранить как сохраненный объект запроса для использования в качестве RecordSource формы)
SELECT * FROM SageOrderLine_Live
WHERE [PromisedDeliveryDate] = NZ(Forms!myform!DateFrom, [PromisedDeliveryDate])
AND [CustomerAccountNumber] = NZ(Forms!myform!CustomerAccountNumber, [CustomerAccountNumber])
AND [Code] = NZ(Forms!myform!Codes, [Code])
AND [AnalysisCode1] = NZ(Forms!myform!Analysis, [AnalysisCode1])
AND [AnalysisCode2] = NZ(Forms!myform!Analysis, [AnalysisCode2])
AND [AnalysisCode3] = NZ(Forms!myform!Analysis, [AnalysisCode3])
VBA
Me.Form.Requery