The problem is that you are reusing the paramVoucherID parameter.
a defined parameter can only be used once in the where clause. if you need to use the same perimeter settings more than once, you need to create a separate perimeter with those settings for each instance.
This is true for a standard DW recordset also.