Problema Espressine di ordine personalizzato in una subquery

di il
3 risposte

Problema Espressine di ordine personalizzato in una subquery

Salve ritorno per un vostro aiutino o chiarimento su ordinamento personalizzato secondo i miei criteri e non il crescente o decrescente.
partiamo dalla query "QElenco_utenti_reparto" dove ci sono i soliti campi, grado,cognome,nome, un campo IDcat, dove ci sta la lettera U=ufficiali, S=sottufficiali, T=truppa, C=civili. quindi tutti i record inseriti avranno anche questa lettera a fianco, il perche di questa lettera e che da qui creo una subquery di raggruppamento e totali chiamata "SQConteggio_cat". fin qui tutto bene! nella subquery mi raggruppa ste lettere su 4 record, e con un espressione nel campo dopo mi faccio dare i totali di ogni categoria, e fin qui anche tutto bene.
il problema e sull'ordine dei 4 record, cioe la colonna IDcat da come ordine U,T,S,C, con i rispettivi totali nalla colonna a fianco, ma (chi e militare lo sa) io voglio un ordine personalizzato con U,S,T,C, quindi vedendo in questa guida:

Ordinare un numero ridotto e limitato di valori di campi univoci

http://office.microsoft.com/it-it/access-help/ordinare-record-in-base-a-un-ordinamento-personalizzato-HA010062658.aspx

sostituisco la riga dell' esempio con la mia riportandola nella riga campo:
IIf([IDcat] = "U", 1, IIf([IDcat] = "S", 2, IIf([IDcat] = "T", 3, IIf([IDcat] = "C", 4, 5))))

proseguendo con la guida vado su ordinamento e cerco di mettere crescente ma mi da una finestra di errore, cioe questo:

ERRORE DI SINTASSI NELL'ESPRESSIONE
Operando o operatore mancante, carattere o virgola non valida oppure testo immesso non racchiuso tra virgolette.


Ho confrontato con l'espressione della guida e non vedo la diferenza, quindi come mai mi da questo errore?

a titolo informativo sto facendo tutto questo perchè creero un report della query e una della subquery per avere un report con tutti gli utenti e a fondo pagina con un sottoreport metterò i totali del ragruppamento e i i totali di tutti gli utenti, quindi vi chiedo pure se sto procedendo bene, grazie per ora

3 Risposte

  • Re: Problema Espressine di ordine personalizzato in una subquery

    Ciao,
    non serve che testi C:

    IIf([IDcat]="U";1;IIf([IDcat]="S";2;IIf([IDcat]="T";3;4)))

    in ogni caso preferirei switch invocata così, per ottenere in campo su effettuare l'ordinamento :

    Switch([IDcat]="U";1;[IDcat]="S";2;[IDcat]="T";3;[IDcat]="C";4)

    la performance potrebbe non essere ottimale, essendo richiamata per ogni singolo record del recordset.
    un saluto.
  • Re: Problema Espressine di ordine personalizzato in una subquery

    Metodo assurdo per nulla Funzionale.

    Nella Tabella Categorie, aggiungi un campo di tipo Numerico, che ne definisce il Criterio di ORDINAMENTO, e nella query lo usi per dare la giusta sequenza.

    Non inventarti cose incredibili, mantieni SEMPLICITA' ed otterrai la massima funzionalità del sistema.
  • Re: Problema Espressine di ordine personalizzato in una subquery

    Goku ha scritto:


    iao,
    non serve che testi C:

    IIf([IDcat]="U";1;IIf([IDcat]="S";2;IIf([IDcat]="T";3;4)))

    in ogni caso preferirei switch invocata così, per ottenere in campo su effettuare l'ordinamento :

    Switch([IDcat]="U";1;[IDcat]="S";2;[IDcat]="T";3;[IDcat]="C";4)

    la performance potrebbe non essere ottimale, essendo richiamata per ogni singolo record del recordset.
    un saluto.
    Grazie goku funziona, ma allora perchè la guida lo portava diversamente??

    @Alex ha scritto:


    Metodo assurdo per nulla Funzionale.

    Nella Tabella Categorie, aggiungi un campo di tipo Numerico, che ne definisce il Criterio di ORDINAMENTO, e nella query lo usi per dare la giusta sequenza.

    Non inventarti cose incredibili, mantieni SEMPLICITA' ed otterrai la massima funzionalità del sistema.
    alex non ho una tabella categorie perchè erano solo 4 voci ho optato per un elenco personalizzato, e cmq l'ordine dei record alla creazione dell'elenco era u,s,t,c poi per via del ragruppamento e totale si inverte in base al totale crescente della categoria, per quello ho optato per quell'espressione. solo che nella subquery tutto bene ma se estrapolo sotto forma report mi risulta di nuovo sballato l'ordine, io mi ci sto mettendo, ma se ci so altre vie gradito di ascoltarvi! poi ho notato che quell'espressine si potrebe mettere anche nel report sotto raggruppa e ordina, pure li apre il pannello zoom , ma vedo che anche scrivendola non va.
Devi accedere o registrarti per scrivere nel forum
3 risposte