Следуя вашему примеру, решение с правильной конкатенацией строк будет следующим. Он встраивает Forms!comboItemName.Value
как строку.
Private Sub rptAllOders_Open(Cancel As integer)
Dim strq As String
strq = "SELECT tbl1.ItemNo, tbl1.ItemName, " & _
"tbl2.OderDate, tbl2.OderNo FROM tbl1 UNION ALL ON " & _
"tbl1.ItemNo = tbl2.ItemNo AND ItemName = '" & _
Forms!comboItemName.Value & "' ORDER BY oderDate ASC"
Me.RecordSource = strq
End Sub
Вы должны проверить свой запрос в конструкторе запросов с жестко закодированным параметром, чтобы доказать это, я не уверен, что сам запрос (даже без или жестко закодирован)параметр) работает хорошо.
И как всегда: Посмотрите, как использовать параметризованные запросы, потому что использование конкатенации строк для встраивания параметров представляет собой риск в виде SQL-инъекции !
Смотрите здесь: https://stackoverflow.com/a/49509616/7658533