Problema con ORDER BY

Konde
01 de Agosto del 2003
Hola. Estara muy agradecido si alguien me pudiese decir cmo resolver un problema que tengo con el siguiente cdigo:

strsql = "SELECT * FROM listado where UCase(tipo) like '%" & UCase(Request("tipo")) &"%' AND UCase(tamanyo) like '%" & UCase(Request("tamanyo")) & "%' order by "& UCase(Request("precio")) & " asc"

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("bd1.mdb")

' creo el RecordSet y defino la cantidad de registros a mostrar
Set RS = Server.CreateObject("ADODB.Recordset")
RS.PageSize = mostrar
RS.CacheSize = mostrar

' Abro la tabla... A veces me da error en esta lnea siguiente
RS.Open strSQL, oConn,3,1

El ORDER BY no me funciona de ningn tipo. He estdo mirando ejemplos, por eso he puesto lo de " asc" y he probado mil maneras pero eso no me va. Sin embargo, si quito el order by y lo que lleva a continuacin y cierro el select con una comilla s que me va. o sea que es ese slo el problema. Espero que alguien sepa resolverlo. Muchas gracias por adelantado.

Cristian
01 de Agosto del 2003
Mira, me parece que el Order By lo puedes utilizar solamente con los nombres de los campos que tienes en la tabla (como por Ejemplo Precio Tamanyo que tienes en tu query), osea, no con variables, como veo que tienes el tu cdigo

y mira como tu intentas ordenar por el precio, pero a travs de una variable, intentalo con esto :

order by UCase(tipo) asc;

(Osea, con el nombre del campo de la tabla)

Ojala sea eso

Shao !!

LILLO
01 de Agosto del 2003
Si, asi es solo se puede utilizar con los campos, y ademas de eso si estas trabajando con funciones de grupo como por ejemplo puede ser un count, tampoco dejar usar order by.
Si la cosa se pone complicada usa group by.
Por ejemplo si quieres sacar numero de forma decreciente pues pones Group by -1 * (Nombre del campo)
Saludos