Hola, soy nueva por aqui, necesito si me pueden dar una
idea para enviar desde codigo visual, el campo por el cual
se quiere ordenar los datos de un Informe, el cual se abre
con la instrucción que adjunto. La variable "condicion" es
una cadena que contiene la condiciones para el Where.
DoCmd.OpenReport "Informe", acViewPreview, , condicion
RESPUESTAS
==========
(NOTA DEL BUHO)
Esta exposicion es la típica que se hace mal, como luego veremos.
Se lanza una pregunta, pero no se dan los datos necesarios para que se pueda
contestar bien de una vez....
Responde Victor Delgadillo
==========================
La condicion "WHERE .... " es para establecer filtros y/o condiciones. Para
el orden en un informe usa el ordenador del informe (en diseño de informe)
donde especificas el orden que deseas. No se si agregandole a la clasusla
"WHERE ... ORDER BY [campo]" funcionaria...
Responde Buho a la exposición de Victor
=======================================
Creo que si funcionaria.
Si el informe se basa en una SQL, pues sin problemas, no hay que tocar nada,
solo construir la Sql o consulta asi: "Select.......Order By...." sin
necesidad de hacer nada mas
Si se basa en una tabla, en la pestaña datos de las propiedades del informe,
se puede especificar el campo de ordenacion.
Por ejemplo si la tabla se llama Clientes y el campo por el que quiero
ordenar es un ID, por ejemplo, bastaria poner en esa casilla:
[Clientes].[Id]
y en la casilla 'activar orden' poner SI
VUELVE A PREGUNTAR LA PERSONA QUE HIZO LA PREGUNTA INCIAL Y ES CUANDO YA, DE UNA
VEZ MUESTRA TODA LA INFORMACION:
================================
Hola Victor, gracias por tu ayuda, pero la idea es que el
usuario seleccione desde un cuadro combinado el
ordenamiento (es por eso que desde el diseño del
formulario no lo puedo dejar preestablecido), yo intenté
enviar la variable del cuadro combinado al Informe, pero
éste valor se pierde cuando abro el informe. Tambien
utilice la propiedad "ordenar por" en el diseño del
informe llevando esta variable pero tampoco funciono, al
igual que agregar la clausula Order by en el Where. Espero
haberme explicado bien. Vilma
RESPONDE BUHO, AHORA SI, YA CON TODOS LOS DATOS Y CON LA RESPUESTA CORRECTA
===========================================================================
Creo que ahora si que te he entendio.
Otra posible solucion sería construir una Sql y pasarla como filtro al
reporte. Ojo que no lo he probado y lo mismo estoy diciendo una barbaridad.
(He creido entenderte que algo has hecho al respecto,pero que al abrir el
reporte, se pierde el Order By)
Es decir, supongamos que tu reporte se llama MiReporte y tiene como origen
de datos la tabla Clientes.
En el formulario desde el que mandas imprimir y donde tienes ese cuadro
combinado (Con valores Nombre, Ciudad,Apellido), podrías poner algo asi:
Dim SqlReporte as String
Select Case CuadroCombinado
case "Nombre"
SqlReporte="Select * From Clientes Orde By [Nombre];"
case "Ciudad"
SqlReporte="Select * From Clientes Orde By [Ciudad];"
case "Apellido"
SqlReporte="Select * From Clientes Orde By [Apellidos];"
End Select
DoCmd.OpenReport "Mireporte", acViewNormal, SqlReporte
Efectivamente, lo prueba el Buho y funciona.
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)