Se ti dice "tipo non corrispondente" ci sara' un motivo, no?

IDdirittocivile e' un numero o una stringa?

Se e' una stringa, allora

If rs.Fields("IDdirittocivile").Value = "2" Then