Newsgroup: it.comp.appl.access
Titolo: Ordine Numerico

Ciao A tutti.
Una domanda.
Mi capita spesso di utilizzare Delle tabelle con un codice alfanumerico.
Ma al suo interno, diverse volte, memorizzare dei semplici numeri.
Il problema che se io tento di incolonnarli in ordine alfabetico lui si 
comporta giustamente
mettendo  tutti gli articoli che iniziano con lo 0 poi con 1 e avanti.
1
12
15
2
20
22
25
3
31
E' possibile poter ordinare questi numeri anche se in un campo alfanumerico 
in modo esatto ???
1
2
3
12
15
20
22
25
31
Grazie a tutti
Enrico Pietrobon 

 Enrico Pietrobon
Finchè il campo è di tipo Testo no, quando il campo sarà Numerico
si.
Altrimenti crea in una Query un campo calcolato che esegua un Clng
del campo quindi ordina su quest'ultimo.
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Ciao creati un campo calcolato con Ordine:Cint(Tuocampo) e ordina per questo
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 ha scritto nel messaggio 
news:dq5tcf$2o0$1...@area.cu.mi.it...

Purtroppo i campi potrebbero anche contenere dei record alfanumerici la 
funzione Cint mi darebbe un errore e non mi mostrerebbe tali campi.
Enrico Pietrobon 


IIF(isNumeric(Cint);0)


 ha scritto nel messaggio 
news:dq5uqi$5pq$1...@area.cu.mi.it...

Ho provato così
pippo: IIf(IsNumeric([Codice]);CInt([Codice]);([Codice]))
Ma nulla da fare il risultato è sempre uguale.
Non mi incolonna i numeri 


Devi mettere 0 non codice e ordinare la query per questo campo


 ha scritto nel messaggio 
news:dqftp9$v5o$1...@area.cu.mi.it...

Scusami Ma allora non ho capito......
La mia tabella contiene Un campo Testo chiamato codice.
I dati memorizzati in questo campo sono alfanumerici
Mi creo una query dove inserisco tutti i campi che mi interessano + la 
funzione detta da te
IIF(isNumeric(Cint);0)
Cosi comè naturalmente non può funzionare e non riesco a capire come 
utilizzarla.
Ho provato con varie formule e sistemi.
Ho persino creato una query  con dentro due codici
Numerico: Val([Codice]) (ordinato Az)
Alfanumerico: Codice (ordinato Az)
Dopo di che ho creato una nuova query con questa formula
Codice: IIf([Numerico]=[Alfanumerico];[Numerico];[Alfanumerico])
Così funziona, unico problema è che nel momento in qui inserisco un altro 
campo perdo completamente l'ordinamento.
Non so propiocome risolverlo.

 Codice: IIf([Numerico]=[Alfanumerico];[Numerico];[Alfanumerico])
se hai una tabella di nome Tabella1
e due campi di nome id e ord
SELECT Tabella1.id, IIf(IsNumeric([ord]),CInt([Ord]),[ord]) AS Ordine
FROM Tabella1
ORDER BY IIf(IsNumeric([ord]),CInt([Ord]),[ord]);
Funziona.


 Info:  
www.donkarl.com/it
Più vado avanti più mi rendo conto di essere veramente ingorante.
Ho provato come hai detto tu ma il risultato è sempre uguale.
Ho riportato su una tabella delle mie la tua query
Ta tabella si chiama Clienti
La query è questa
SELECT Clienti.RagioneSociale1, 
IIf(IsNumeric([codicecliente]),CInt([codicecliente]),[codicecliente]) AS 
Codice
FROM Clienti
ORDER BY 
IIf(IsNumeric([codicecliente]),CInt([codicecliente]),[codicecliente]);
Che praticamente è uguale alla tua.
Il risultato ottenuto è questo.
   RagioneSociale1 Codice
      pippo1 1
      pippo2 10
      pippo3 1001
      pippo4 1A
      pippo5 2
      pippo6 A
Sbaglio da qualche parte ????
TI ringrazio per la pazienza
Enrico Pietrobon

 Enrico Pietrobon
No sbagliavo io, anche perchčč cosě facendo lui gestiva tutto come testo, ma
allora fregalo cosě
SELECT clienti.ragionesociale1, clienti.codicecliente,
IIf(IsNumeric([codicecliente]),CInt([codicecliente]),9999) AS Num,
IIf(IsNumeric([codicecliente]),99999,[codicecliente]) AS Codice
FROM clienti
ORDER BY IIf(IsNumeric([codicecliente]),CInt([codicecliente]),9999),
IIf(IsNumeric([codicecliente]),99999,[codicecliente]);
In pratica scomponi i due criteri e poi ordini per i due campi


 ha scritto nel messaggio 
news:dqkvb0$54j$1...@area.cu.mi.it...

Dunque sei stato di mio aiuto sicuramente.
Ma la tua query ancora mi dava dei probelmi infatti mi ordinava in questo 
sistema:
   CodiceCliente RagioneSociale1 Num Codice
      1 pippo1 1 99999
      2 pippo5 2 99999
      3 Pippo8 3 99999
      10 pippo2 10 99999
      1001 pippo3 1001 99999
      1A pippo4 9999 1A
      2A Pippo9 9999 2A
      2B pippo10 9999 2B
      A pippo6 9999 A
      AA Pippo7 9999 AA
Ho rivisto la query e lo modificata cosě
SELECT clienti.CodiceCliente, clienti.RagioneSociale1, 
Val([CLienti].[CodiceCLiente]) AS Numerico, clienti.CodiceCliente AS 
alfanumerico
FROM clienti
ORDER BY Val([CLienti].[CodiceCLiente]), clienti.CodiceCliente;
il risultato ottenuto finalmente funziona correttamente anche inserendo 
altre tabelle
   CodiceCliente RagioneSociale1 Numerico alfanumerico
      A pippo6 0 A
      AA Pippo7 0 AA
      1 pippo1 1 1
      1A pippo4 1 1A
      2 pippo5 2 2
      2A Pippo9 2 2A
      2B pippo10 2 2B
      3 Pippo8 3 3
      10 pippo2 10 10
      1001 pippo3 1001 1001
Grazie Tante. SPero di essere di aiuto un giorno.
Enrico Pietrobon 

 Enrico Pietrobon
Certo che puoi, se mi presentassi la tua parente Fiorella... saremmo in pari


 ha scritto nel messaggio 
news:dql23o$9kp$1...@area.cu.mi.it...

Eh Eh.
Purtroppo lei è Pierobon io Sono Pietrobon, c'e' in mezzo un T di troppo.
SIcuramente sarà un errore di trascrizione in qualche ufficio anagrafico, ma 
chissà quanto si deve tornare indietro per trovarlo.
Ciao Grazie
Enrico Pietrobon 

 Enrico Pietrobon
Vabbè, ma adesso vado da lei e faccio come nella pubblicità "Zio... zio
Mario..."
