VB6 + SQL-Server: Como posso executar uma consulta com parâmetros nomeados usando ADODB.Command?

Eu tenho tentado executar uma consulta parametrizada com ADODB.Command. Eu sei que posso usar "?" para parâmetros, mas minhas consultas são bastante grandes e eu realmente não quero rastrear a ordem exata dos parâmetros. Eu tentei algo como o seguinte:

objCmd.CommandType = adCmdText
objCmd.CommandText = "SELECT ... WHERE field1=@p_Field1 ...."    
Dim objParam As ADODB.Parameter
Set objParam = objCmd.CreateParameter("@p_Field1" ...)
objCmd.Parameters.Append objParam
...
objCmd.Open

Ele funciona para parâmetros de procedimento armazenado (definindo CommandType = adCmdStoredProc, obviamente), mas não posso fazer isso dentro de um Stored Procedure por causa da natureza dinâmica da consulta em si. Quando tento executar a consulta, recebo o erro:

 Must declare the scalar variable "@p_Field1"

Existe alguma outra maneira de contornar isso que não envolve o uso de procedimentos armazenados ou (argh) concatenar os valores dos parâmetros na própria consulta e não usar os parâmetros?