Preparazione dei dati per l’importazione in Access (Microsoft Excel)
Se sei un programmatore di database, a volte potresti ottenere file Excel che devi “ripulire” per inserire in Access. Due problemi comuni sono causati dai numeri di previdenza sociale e dai codici postali. È meglio archiviarli come testo nel database e non come numeri come spesso lo sono in Excel.
(In Excel i numeri possono essere visualizzati correttamente a causa della formattazione delle celle e non perché sono memorizzati come testo.)
Anche quando l’intervallo è formattato come testo in Excel, completo di zeri iniziali, il più delle volte Access converte questi valori in numeri.
Tuttavia, se il numero è preceduto da un apostrofo, come per un’etichetta, Access lo importerà correttamente come testo senza l’apostrofo iniziale.
Per preparare i numeri di previdenza sociale per l’importazione in Access, può tornare utile una piccola macro veloce, che si assicura che siano presenti gli zeri iniziali e che l’apostrofo sia a posto per la cella. Per utilizzare la macro, è sufficiente selezionare l’intervallo di numeri di previdenza sociale e quindi eseguire la macro:
Sub SSN2Text() Dim c As Range Application.ScreenUpdating = False 'Format selected cells as text Selection.NumberFormat = "@" For Each c In Selection If Left(c, 1) = "'" Then 'strip the apostrophe, if any c = Mid(c, 2, 99) Else c = "'" & Right("000000000" & c, 9) End If Next c Application.ScreenUpdating = True End Sub
La soluzione per i codici postali è di natura simile. La macro per elaborare i codici postali passa attraverso ogni cella della selezione, la formatta come testo, aggiunge un apostrofo iniziale e inserisce gli zeri iniziali. La differenza è che la macro deve tenere conto anche dei casi in cui sono presenti codici postali a cinque o nove cifre.
Sub ZIP2Text() Dim c As Range Application.ScreenUpdating = False 'Format selected cells as text Selection.NumberFormat = "@" For Each c In Selection If Left(c, 1) = "'" Then 'strip the apostrophe, if any c = Mid(c, 2, 99) End If If Len(c) <= 5 Then c = "'" & Right("00000" & c, 5) Else c = "'" & Right("00000" & c, 10) End If Next c Application.ScreenUpdating = True End Sub
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (11228) si applica a Microsoft Excel 2007 e 2010. Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: