Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ordinamento di un report in base ad opzioni di una maschera

85 views
Skip to first unread message

Zorro

unread,
May 13, 2008, 5:46:05 AM5/13/08
to
Ciao a tutti,
premesso che ho letto già nel NG se c'era qualcosa che mi poteva aiutare ma
mi ha aumentato la confusione a causa dei miei limiti tecnici.

Io Ho una maschera che deve lanciare un report , la particolarità è che
posso avere più ordinamenti , ovvero : se da maschera1 scelgo l'ordinamento
per codice articolo, visualizzo il report1 ordinato per articolo, se scelgo
l'ordinamento per modello articolo, il report1 deve essere ordinato per
modello.
Il corpo del report1 è sempre lo stesso, cambia solo l'ordinamento.
Leggo che si può fare con OrderbyOn e in alcuni esempi vedo l'istruzione
me.orderby ... ecc ... ma dove va fatto ? All'apertura del report ? Creo una
nuova origine dati , sempre sull'evento apertura report ? E dalla maschera
quando faccio il Docmd.openreport che istruzione devo fare ?
scusate ma non ho le idee molto chiare su come gestire un ordinamento report
variabile ...
grazie a tutti
Zorro

--------------------------------
Inviato via http://arianna.libero.it/usenet/

Karl Donaubauer

unread,
May 13, 2008, 5:52:58 AM5/13/08
to
Zorro wrote:
> ...

> Io Ho una maschera che deve lanciare un report , la particolarità è che
> posso avere più ordinamenti , ovvero : se da maschera1 scelgo
> l'ordinamento per codice articolo, visualizzo il report1 ordinato per
> articolo, se scelgo l'ordinamento per modello articolo, il report1 deve
> essere ordinato per modello.
> Il corpo del report1 è sempre lo stesso, cambia solo l'ordinamento.
> Leggo che si può fare con OrderbyOn e in alcuni esempi vedo l'istruzione
> me.orderby ... ecc ... ma dove va fatto ? All'apertura del report ? Creo
> una nuova origine dati , sempre sull'evento apertura report ? E dalla
> maschera quando faccio il Docmd.openreport che istruzione devo fare ?
> scusate ma non ho le idee molto chiare su come gestire un ordinamento
> report variabile ...

Prova così nel codice della maschera:
DoCmd.OpenReport "Report1", acViewPreview
Reports!Report1.OrderBy = Me.OrderBy
Reports!Report1.OrderByOn = True

--
HTH
Karl
*********
Access FAQ: www.donkarl.com/it

Zorro

unread,
May 13, 2008, 6:30:09 AM5/13/08
to
Innanzitutto grazie, però non ho capito dove compongo la mia stringa per
dare un ordinamento al report in base alla selezione fatta nella maschera .
La select + order by per intenderci ...

Karl Donaubauer

unread,
May 13, 2008, 7:22:17 AM5/13/08
to
Zorro wrote:
> Karl Donaubauer ha scritto:

>>> ...
>>> Io Ho una maschera che deve lanciare un report , la particolarità è
>>> che posso avere più ordinamenti , ovvero : se da maschera1 scelgo
>>> l'ordinamento per codice articolo, visualizzo il report1 ordinato
>>> per articolo, se scelgo l'ordinamento per modello articolo, il
>>> report1 deve essere ordinato per modello.
>>> Il corpo del report1 è sempre lo stesso, cambia solo l'ordinamento.
>>> Leggo che si può fare con OrderbyOn e in alcuni esempi vedo
>>> l'istruzione me.orderby ... ecc ... ma dove va fatto ? All'apertura
>>> del report ? Creo una nuova origine dati , sempre sull'evento
>>> apertura report ? E dalla maschera quando faccio il
>>> Docmd.openreport che istruzione devo fare ? scusate ma non ho le
>>> idee molto chiare su come gestire un ordinamento report variabile
>>> ...
>> Prova così nel codice della maschera:
>> DoCmd.OpenReport "Report1", acViewPreview
>> Reports!Report1.OrderBy = Me.OrderBy
>> Reports!Report1.OrderByOn = True
>>
> Innanzitutto grazie, però non ho capito dove compongo la mia stringa
> per dare un ordinamento al report in base alla selezione fatta nella
> maschera . La select + order by per intenderci ...

Se ho capito bene basta il codice che ti ho scritto.
Il codice prende l'ordinamento della maschera (Me.OrderBy)
per impostare l'ordinamento del report.

Allora prova il codice e se non funziona riporta l'errore o l'effetto.

Zorro

unread,
May 13, 2008, 8:37:18 AM5/13/08
to

>
> Se ho capito bene basta il codice che ti ho scritto.
> Il codice prende l'ordinamento della maschera (Me.OrderBy)
> per impostare l'ordinamento del report.
>
> Allora prova il codice e se non funziona riporta l'errore o l'effetto.

No scusa, mi sa che mi sono espresso male, la maschera è semplicemente una
maschera di richiesta parametri, dove c'è una cornice che contiene 3 radio
button che vorrei usare per l'ordinamento del report.
radio1 = articolo , 2=descrizione , 3 = marca articolo
a seconda che l'utente clicca sul gruppo di opzioni , vorrei che il report
mi si ordinasse per il campo scelto.
Ho pensato di fare 3 query, identiche ma ordinte in modo diverso, ma poi
come faccio a dire nel report : guarda che la fonte dati è la query1 ,
piuttosto che le altre ?
Era una possibile idea , ma se c'è qualcosa di meglio ...
ancora grazie mille
Zorro

Karl Donaubauer

unread,
May 13, 2008, 8:50:27 AM5/13/08
to
Zorro wrote:
>> Se ho capito bene basta il codice che ti ho scritto.
>> Il codice prende l'ordinamento della maschera (Me.OrderBy)
>> per impostare l'ordinamento del report.
>>
>> Allora prova il codice e se non funziona riporta l'errore o
>> l'effetto.
>
> No scusa, mi sa che mi sono espresso male, la maschera č
> semplicemente una maschera di richiesta parametri, dove c'č una

> cornice che contiene 3 radio button che vorrei usare per
> l'ordinamento del report.
> radio1 = articolo , 2=descrizione , 3 = marca articolo
> a seconda che l'utente clicca sul gruppo di opzioni , vorrei che il
> report mi si ordinasse per il campo scelto.
> Ho pensato di fare 3 query, identiche ma ordinte in modo diverso, ma
> poi come faccio a dire nel report : guarda che la fonte dati č la

> query1 , piuttosto che le altre ?
> Era una possibile idea , ma se c'č qualcosa di meglio ...

Se vuoi usare radio buttons sarebbe meglio di usare
un gruppo di opzioni con i tre pulsanti di opzione. Cosě hai
un solo valore da controllare invece di tre. Il codice sarebbe:

Dim strOrderBy as String

Select Case Me!TuoGruppoOpzioni

Case 1
strOrderBy = "articolo"
Case 2
strOrderBy = "descrizione"
Case 3
strOrderBy = "marca articolo"

End Select

DoCmd.OpenReport "Report1", acViewPreview
Reports!Report1.OrderBy = strOrderBy
Reports!Report1.OrderByOn = True

Un altro metodo sarebbe una casella combinata con un
elenco valori: "articolo";"descrizione";"marca articolo"
E poi:

DoCmd.OpenReport "Report1", acViewPreview
Reports!Report1.OrderBy = Me!TuaCasellaCombinata
Reports!Report1.OrderByOn = True

Karl Donaubauer

unread,
May 13, 2008, 10:03:01 AM5/13/08
to
Karl Donaubauer wrote:
> ...

>
> Un altro metodo sarebbe una casella combinata

o una casella di riepilogo

Zorro

unread,
May 14, 2008, 5:02:42 AM5/14/08
to
Sei un grande!
grazie mille
0 new messages