Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    [ACCESS 2003] - Campo numerico di 5 cifre

    Ciao ragazzi ho un campo CAP (i codici di avviamento postale) in formato numerico!

    La rogna è che se inserisco 09100 (per esempio) mi formatta il campo come 9100.
    C'è un modo perchè me lo lasci a 5 cifre senza dover rinunciare ad avero in formato numerico (che mi è utile se devo metterli sorted)

    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Il CAP deve essere una stringa di 5 caratteri e l'ordinamento funziona regolarmente ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    se access lo supporta, gli puoi dire di farlo ZERO FILLED

    su mysql il mio campo cap lo tengo come MEDIUMINT(5) UNSIGNED NOT NULL ZERO FILLED:
    - mediumint perché se lo facessi smallint supererei il valore massimo di 65000
    - 5 perché mi servono 5 cifre
    - unsigned perché non esistono cap con valore negativo
    - not null, mi pare ovvio
    - zero filled ... riempe di zero le cifre non "utilizzate" quindi se ci carichi 123 avrai 00123 o, nel caso di 9100 avrai 09100

    non è corretto cambiare il "tipo" dell'informazione, cambia piuttosto il modo in cui lo visualizzi utilizzando la funzione Format di access

    prova qualcosa con
    ... Format([cap], "00000") ...
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    conta quanti caratteri ci sono nel cap "Len([cap])"
    e li integra all'inizio con il Right di una stringa di 5 zeri
    codice:
    Right("00000";(5-Len([cap]))) & [cap]
    __________________________________________________ ______

    Oppure
    codice:
    Right("000000" & [cap];5)
    __________________________________________________ ______

    Oppure (come consigliato da Daniele )
    codice:
    Format([cap];"00000")


    La differenza fra le 3 possibilita sta nel tipo di output
    che ricevi
    ___nel caso scrivi erroneamente un cap
    con un numero di caratteri maggiore di 5
    ___nel caso di cap vuoto


    Saluti

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da daniele_dll
    non è corretto cambiare il "tipo" dell'informazione

    E perchè mai?
    Personalmente faccio (e farei) un banale campo di 5 caratteri e fine del circo (son 5 byte invece di 4, ma pazienza, la rottura di maroni risparmiata val di gran lunga la "spesa")

  6. #6
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    mmmm io avevo usato interi perchè devo poi generare degli output in txt che verranno reimportati in un altro software (che non è mio) e usa quel campo come numerico! Ma a sto punto mi sa che è meglio mettere testuale e via e poi mi ricavo il numero con vb.net (con cui sto interfacciando il db)

    Grazi a tutti per le idee cmq! :P

  7. #7
    Originariamente inviato da franzauker

    E perchè mai?
    Personalmente faccio (e farei) un banale campo di 5 caratteri e fine del circo (son 5 byte invece di 4, ma pazienza, la rottura di maroni risparmiata val di gran lunga la "spesa")
    a parte che sono 5 invece di 3 (è un mediumint -> 24 byte, almeno su mysql ... non so come access memorizzi i numeri interi), ma non è tanto per la "dimensione" ma per la correttezza formale della struttura dati

    cambiare il dato di per sé perché ti serve visualizzarlo in un modo è concettualmente errato, poi nessuno impedisce di farlo ^^
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.