MP84 ha scritto:
Pensavo di fare un campo calcolato dove attraverso una formula mi creava la stringa.
ma a questo punto viste le vostre risposte deduco che sia completamente sbagliato.
No, no, lo puoi fare sicuramente, solo che farai un uso di funzioni non SQL in un ambiente, la query, che darebbe il meglio se potesse fare solo la query. Ah, occhio: campo calcolato in una query, non campo calcolato in tabella.
Paradossalmente una delle difficoltà principali che troverai è l'uso del generatore di espressioni che quando ci si mette è in grado di rendere difficile anche la cosa più banale, tanto che personalmente mi trovo meglio a digitare in SQL o nella finestrella di Zoom, così non parte niente in automatico ad aiutarmi.
Pochissimi giorni fa abbiamo affrontato una cosa simile in questo thread:
masterdrive.it/microsoft-excel-80/conversione-numero-in-base36-102393/#post380552
Ovviamente il thread trattava un argomento molto più ampio ma sono intervenuto proprio per la parte che interesserebbe a te.
Molto dipende da quanta conoscenza hai della materia VBA e da quanto vuoi che il codice sia "riutilizzabile". Potresti fare tutto con una funzione creata da te (UDF, User Defined Function) a cui passare il tipo di campo, il carattere di riempimento, la lunghezza della stringa ecc ecc.
La soluzione terra terra è
- per i numeri da allineare a destra con zeri di riempimento: concatenare ad una stringa costituita da tanti zeri quanti sono quelli della lunghezza prevista il valore del campo che stai trattando e con la funzione Right$ prendere gli N caratteri che ti servono
- per il testo allineato a sinistra con gli spazi di riempimento a destra: concatenare al testo che hai una stringa costituta da tanti spazi quanti sono quelli previsti per quel campo (come se tutto il campo fosse costituito da spazi) e prendere con la funzione Left$ gli N caratteri che ti servono