Eso es porque openrowset no acepta variables en sus parametros (para mayor referencia consultar la ayuda de SQL).
Lo que puedes hacer, si es que necesitas que varien dichos parametros es utilizar sql dinamico para ejecutar la sentencia de select.
quedaria algo como:
Código:
execute ('SELECT * FROM OPENROWSET(''MSDASQL'',''' + @direcc + ''',''' + @consult + ''')'
Aunque se recomienda utilizar el sp sp_executesql para ejecutar codigo dinamico.
En el foro hay varios post al respecto.
Saludos!