ma qui:

"SELECT * FROM Prodotti where idProdotto="&prodotto&""

o qui:

"SELECT * FROM Prodotti where titoloProdotto='"&prodotto&"'"

c'è qualcosa alla corrispettiva scelta?

prova a mettere:

codice:
if not Recordset2.eof then id=(Recordset2.Fields.Item("idprodotto").Value)