In un File di EXCEL se la Colonna è definita come NUMERO non visualizza nemmeno in EXCEL lo ZERO iniziale, e questo anche se la colonna è definita “GENERALE”.
La conseguenza è che lo Zero iniziale viene soppresso, e perso come informazione, quindi Impossibile da recuperare anche per Access….
Quindi se in Excel hai 123574, ma dovrebbe essere 000123574 beh il problema è che in Excel hai un dato ERRATO e non coerente.
Detto questo per i campi come PIVA la soluzione è semplice.
Come si può aggirare il problema… si costruisce in Access una Tabella di Import Formatta correttamente, quindi con i Campi Nominati come i nomi delle Colonne del File di Excel, ma con i FIELDTYPE coerenti… il campo PIVA sarà Testo di 11 Caratteri.
Nel campo PIVA della Tabella, definito come Campo TESTO da 11 Caratteri, si modifica la proprietà FORMATO mettendo 11 ZERI.
A quel punto si effettua l'IMPORTAZIONE con TransfertSpreadsheet, ed il campo che in EXCEL era “GENERALE” 123574 in Access diventa Testo 00000123574
La Tabella non si cancella ma si SVUOTA e SI RIEMPIE.
Questo è il metodo più fuzionale e veloce, se invece si vuole operare su più Campi con particolarità di Formattazione più flessibili allora conviene effettuare l'Import in modo differente, ovvero Aprire il file di EXCEL con l'Automazione, effettuare un Ciclo Riga/Colonna, aprire un RS su Tabella ed effettuare un ADDNEW per ogni Riga ed un EDIT su ogni Campo dove per Campo si intende la Cella puntata dal Ciclo RIGA/COLONNA e si applica la Formattazione desiderata prima di fare l'UPDATE…
rs!PIVA=Format$(xls.Cells(Riga,Colonna).Value,"00000000000")
Questo metodo è molto più lento, ma decisamente più personalizzabile.
Spero sia utile.