Access - Orden de informe

 
Vista:
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Orden de informe

Publicado por Pablo (328 intervenciones) el 19/03/2023 19:19:13
Hola a todos:
Tengo un informe que me presenta datos de una muestra: fecha ,unidades, precio, etc
Mediante un formulario selecciono la referencia que quiero listar y el orden por el que quiero sacar el listado, fecha, precio etc
Acotar el listado por una referencia lo hago sin problemas, el problema está en el orden que es un tema que no controlo.
Al abrir el informe tengo un
select case Forms!listado_muestras!opcion_orden
case 1
me.orderby="precio_muestra Asc"
----
End select
Al abrir el informe puse un msgbox Forms!listado_muestras!opcion_orden y si cambia la opción, lo que no cambia es el orden del listado
Alguien podría echarme una mano?
Gracias
Pablo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Orden de informe

Publicado por Anonimo (3316 intervenciones) el 19/03/2023 20:21:02
Los informes no asumen ordenes externos, tienen opciones propias de las que carecen los formularios.

Asigna el orden en el propio informe con sus herramientas y el origen de datos que simplemente devuelva datos (ya se organizaran en el informe).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Orden de informe

Publicado por Pablo (328 intervenciones) el 20/03/2023 17:03:09
Hola
Dices: Los informes no asumen ordenes externos...
En el evento al abrir asigno un orden según una opción de un formulario, el orden lo creo en el informe, si no es así cómo se puede hacer?
Gracias
Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Orden de informe

Publicado por Anonimo (3316 intervenciones) el 20/03/2023 19:21:38
Si lo haces así, es correcto pero.... has de indicarle que active el orden (Me.OrderByOn = True) o no lo aplicara.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Orden de informe

Publicado por Pablo (328 intervenciones) el 20/03/2023 20:10:12
En el evento al abrir el informe tengo
Private Sub Report_Open(Cancel As Integer)
MsgBox "forms!listado_muestras!opcion_orden= " & Forms!listado_muestras!opcion_orden' entre muestras y opcion hay !
Me.OrderBy = ""
Select Case Forms!listado_muestras!opcion_orden
Case 1
'Me.OrderBy = "precio_muestra,fecha_muestra desc"
Me.OrderBy = "precio_muestra"
Case 2
Me.OrderBy = "100*PVP/UDADES,FECHA desc"
Case 3
'Me.OrderBy = "FECHA desc,PVP"
Me.OrderBy = "fecha_muestra"
Case 4
Me.OrderBy = "FECHA desc,100*PVP/UDADES"
End Select
Me.OrderByOn = True
End Sub
Vamos con el case 1. precio_muestra es un campo de la tabla/informe. No los ordena
Hay algo que no hago bien, no se lo qué
Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Orden de informe

Publicado por Anonimo (3316 intervenciones) el 20/03/2023 21:45:46
He puesto esto en un informe:
1
2
3
4
Private Sub Report_Open(Cancel As Integer)
Me.OrderBy = Forms.formulario2.Texto1
Me.OrderByOn = True
End Sub


Me ordena según le indico en el cuadro de texto por uno o varios campos y en ascendente o descendente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Orden de informe

Publicado por Pablo (328 intervenciones) el 21/03/2023 12:47:30
Yo tengo lo mismo:
Un select case que asigna un orderby a cada case
después del end select un me.orderbyon=true
Pero no funciona
Por qué...
Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Orden de informe

Publicado por Anonimo (3316 intervenciones) el 21/03/2023 13:17:03
Quiero suponer que para mostrar cada cambio se cierra el informe y se vuelve a lanzar (con el nuevo orden), los informes no interactúan dinámicamente como lo hacen los formularios.

Añade un punto de interrupción y un seguimiento paso a paso para ver si las variables toman los valores que les corresponden y estos son los adecuados.

¿Porqué no te planteas aplicar un orden (por ejemplo: con una variable publica) a la que de forma previa se le asigna el resultado del Select Case (que ya no estaría en el informe).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Orden de informe

Publicado por Pablo (328 intervenciones) el 21/03/2023 13:35:04
No entiendo lo que quieres decir con el último párrafo:¿Porque no te planteas...
Sería construir una select para cada opción de orden y pasarle esa select al informe?
Pablo
PD: La instrucción select anterior está sacada de una consulta hecha de la tabla muestras con un orden
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Orden de informe

Publicado por Anonimo (3316 intervenciones) el 21/03/2023 15:37:48
La alternativa que he propuesto es eliminar el Select Case del informe (según lo publicado esta en su evento Open) y ponerlo en el formulario ANTES de llamar al informe (o en una función independiente)

.- El resultado del Select Case se le adjudica a una variable publica.
.- En el informe se le asigna la variable a su propiedad OrderBy (y mejor tras verificar que tiene contenido), eso creo que esta demostrado que funciona.

El concepto creo que esta claro y es correcto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Orden de informe

Publicado por Pablo (328 intervenciones) el 21/03/2023 17:39:38
Dices: En el informe se le asigna la variable a su propiedad Order By...
En evento open del informe eliminaría el select case y diría: Me.OrderBy=variable pública y después Me.OrderByOn=True
Es así?
Voy a probarlo y te cuento
Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Orden de informe

Publicado por Pablo (328 intervenciones) el 22/03/2023 20:24:41
¡¡¡Al fín!!!
Borré el informe, hice uno nuevo con los mismos datos y ya obtengo lo que quiero, no se porqué el primero agrupaba por un campo y entonces presentaba los datos mal.
Ahora me di cuenta de otro problema. En entrada de muestras tengo un campo, pack, que es un cuadro combinado cuyo origen es una lista de valores, por ejemplo:1,Botella,2,Garrafa..., en el campo se guarda el código y me lo presenta en el informe, quiero poner al lado un cuadro de texto con Bot, Gar, etc. Hay forma de hacerlo?
Se me ocurre cambiar el tipo de origen de la fila a tabla pero, no quiero crear otra tabla
otra forma sería guardar Bot, Gar en la tabla
me quedaría con la segunda idea, alguna idea más?
Gracias
Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Orden de informe

Publicado por Anonimo (3316 intervenciones) el 22/03/2023 23:05:49
Utiliza el mismo combo en el informe y para mostrar la descripción, añades un cuadro de texto y como origen de datos: la columna del combo.

En el informe el combo se mostrara como un cuadro de texto y a su lado (y sincronizado) la descripción.

Como en el origen es 'botella' y se desean solo tres letras:

1
= LEFT(El_Combo].column(1);3)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Orden de informe

Publicado por Pablo (328 intervenciones) el 23/03/2023 13:00:14
Por lo que dices aunque el origen sea una lista de valores, n o una tabla o consulta, lo de me!combo.column() funciona igual.
Lo que quiero es si en el combo hay 1 que me pinte el valor de la columna 1
Y la posibilidad de que si en el combo hay 0 => Texto4=Pet 5l, si 1=> Texto4=Botella, entiendes lo que quiero decir?
Gracias
Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Orden de informe

Publicado por Anonimo (3316 intervenciones) el 23/03/2023 13:44:13
Un combo simplemente contiene valores y su origen solo diferencia como se cargan los datos en el.

La mayor diferencia esta en que una lista de valores solo 'esta' en el combo y cuando el origen de datos es una tabla/consulta, las modificaciones se han de hacer en la tabla y refrescar el combo para que las presente.

Para el resto es lo mismo y lo del numero de columna solo hay que tener en cuenta que:
.- En VBA se tiene en cuenta el 'valor' cero (al contar las columnas)
.- Fuera de VBA se comienza a contar en uno
(para evitar 'conflictos' a usuarios con poca experiencia en el mundo de la programación).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Orden de informe

Publicado por Pablo (328 intervenciones) el 23/03/2023 19:30:11
O sea que si el origen del combo es lista de valores o tabla/consulta lo de las columnas funciona igual me!CC.Column(0)
Por esta regla de tres, si son pocos datos, es mejor tener una lista de valores que 'ocupar' espacio con una tabla, no?
Nunca de acostarás sin saber una cosa más
Gracias
Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Orden de informe

Publicado por Pablo (328 intervenciones) el 21/03/2023 13:26:26
SELECT muestras.codigo_muestra, muestras.producto_muestra, muestras.fecha_muestra, muestras.tienda_muestra, muestras.precio_muestra, muestras.unidad_muestra, muestras.unidades_muestra, [precio_muestra]/[unidades_muestra]*100 AS [PVP/Udades*100]
FROM muestras
WHERE (((muestras.producto_muestra)=1))
ORDER BY [precio_muestra]/[unidades_muestra]*100;

Esto es lo que quiero obtener, muestras ordenadas por precio, el campo precio_muestra y, mejor aún, ordenadas por el campo calculado [precio_muestra]/[unidades_muestra]*100
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar