Permitting UDP and TCP separately will do the exact same thing as permitting IP. The OP's problem more than likely lies with the way the ACL is being applied to the interface, not with the actual command.