Bueno, he simplificado, dejando solo la variable que el usuario realmente modifica en ejecución (VOpe). El problema de los paréntesis, resuelto. Funciona con esto:
Adodc_Ruta.RecordSource = "select * from AVISOS where (OPERARIOS='" & VOpe & "' and INCIDENCIAS in('ESPERA','P.PAGO','P.GESTIONAR')) or (OPERARIOS='" & VOpe & "' and (INCIDENCIAS='HECHO' and PORCIENTO=0)) order by OPERARIOS & INCIDENCIAS & FEC_ENT"
Gracias a todos por su colaboración...