Cmq ora scappo e siccome sono in ferie non so se ci sarò!
Se usi access allora al posto dei tuoi valori nella stringa metti il simbolo ?
ad esempio [categoria] = ? and [produttore] = ?

e credo tu debba rispettare l'ordine, credo perche non l'ho mai fatto su access

se invece usi sql server allora usa il carattere @ seguito dal nome campo cioè

categoria = @categoria and produttore = @produttore ....

buone vacanze a tutti