Ordinamento

di il
4 risposte

Ordinamento

Ciao ragazzi come faccio ad ordinare dei campi in ordine alfabetico partendo da un carattere che dico io?? per esempio order by nome (ma partendo dalla c)

quindi
claudio
danilo ecccc.
zeta
aladino

sapete indicarmi come fare??
Grazie mille

4 Risposte

  • Re: Ordinamento

    Anche io ho lo stesso problema. Si può ordinare dalla A alla Z e viceversa ma per avere un ordinamento personalizzato come si fa?
  • Re: Ordinamento

    Che ordinamento assurdo
    Non non mi risulta si possa fare.
    Al limite potete fare una sporca, cioè fare una copia della colonna facendo il replace del primo carattere del dato (nei casi inizi con a o b) aggiungendo "zz" d'avanti;
    Ovvero 'aladino' -> 'zzaladino'.
    Ovviamente fate l'ordine per questa colonna ma visualizzate quella corretta.
  • Re: Ordinamento

    Io proverei a fare così.
    1) Consideriamo che la tua tabella si chiami "Nomi", con il campo in questione "Nome"
    2) Crea una query, importando la tabella Nomi, trascina nella griglia il campo Nome, Ordinamento Crescente,
    Criteri >="C"
    (volendo puoi ulteriormente personalizzare l'inizio dell'ordinamento, immaginando di avere nomi come Clarissa, Claudio, Cosimo, Cristiano.....se volessi partire da Cosimo, potresti usare anche questa sintassi per Criteri >="Co").
    Salva la query che chiamerei "Post"(che ordinerà i nomi dalla C alla Z)
    2) Crea un'altra query analoga alla precedente, questa volta a Criteri scrivi
    <"C"
    Salva la query che chiamerei "Pre" (che ordinerà i nomi dalla A alla B)
    3) Crea una nuova tabella che chiamerei "NomiOP" (OP sta per Ordinamento Personalizzato), avente un campo Contatore (Ordinamento Crescente) e un campo testo Nome (con le stesse proprietà di Nomi.Nome).
    4) Modifica le query di selezione Post e Pre in query di accodamento in modo che Nomi.Nome venga accodato in NomiOP.Nome. Abbi cura di eseguire prima Post e poi Pre.
    5) Prova ora ad aprire la tabella NomiOP e vedrai il risultato che ti aspettavi.
    6) Se devi fare questa operazione più volte con altre lettere, ricorda di cancellare tutti i record di NomiOP prima di svolgere i punti 2)-5).

    Osservazioni:
    - Quello che ti ho descritto è ciò che volgarmente deve accadere.
    - Forse ti torna scomoda l'idea di dover creare una nuova tabella (che non era un tuo obiettivo), ma soprattutto dovresti continuamente modificare le strutture delle due query nella cella Criteri.
    - Penso che Access non possa risolvere in maniera diretta al tuo quesito, quindi devi costruire qualcosa di artificioso, che sia una procedura in Visual Basic o Macro.
  • Re: Ordinamento

    Richiesta decisamente anomala...

    Per risolvere hai poche soluzioni solo uno sporco trucchetto... devi crearti un Campo specifico
    fatto inquesto modo:
    
    SELECT *, Abs(ASC(cstr([CarattereIniziale:]))-Asc(Left([CAMPOTESTO],1))) & Mid$([CAMPOTESTO],1,Len([CAMPOTESTO])) AS ORDERCHAR
    FROM TuaTabella
    ORDER BY Abs(ASC(cstr([CarattereIniziale:]))-Asc(Left([CAMPOTESTO],1))) & Mid$([CAMPOTESTO],1,Len([CAMPOTESTO]))
    
    Ora rendila Parametrica e passa il CHAR... io ti ho già reso la query parametrica, ora con QueryDefs e parameter lo valorizzi, oppure al posto del Parametro metti il Riferimento alla TaxtBox della Form nella quale inserisci il CHAR di ordinamento...
Devi accedere o registrarti per scrivere nel forum
4 risposte