Access esporta numeri interi lunghi come tipo di dati double con posizioni decimali in formato dBase IV (con estensione dbf)
Numero KB originale: 891775
Sintomi
Quando si crea una tabella di Microsoft Office Access che contiene numeri interi lunghi e quindi si esporta tale tabella come tipo dBase IV (.dbf), i numeri vengono convertiti in tipo di dati double e verranno visualizzate le posizioni decimali.
Ad esempio, è possibile esportare la tabella seguente:
UNITÀ
23411
111111111
1121212
Quando si importano e si visualizzano i dati in dBase IV, i dati sono simili ai seguenti:
UNITÀ
23411.00000
111111111.00000
1121212.00000
Nota
Quando si crea un campo numerico in una tabella di Access, si utilizza la proprietà FieldSize per controllare la quantità di spazio allocata per un campo specifico. Per i campi numerici, è possibile scegliere uno dei tipi numerici seguenti da un elenco:
- Byte
- Numero intero
- Intero lungo
- Celibe/nubile
- Double
- REPLICATIONID
- Decimale
Per impostazione predefinita, l'impostazione per i campi numerici è Long Integer. Il valore Long Integer archivia numeri interi compresi tra circa -2 miliardi e +2 miliardi. In alternativa, è possibile scegliere il valore Double per archiviare i numeri con decimali.
Causa
Questo problema si verifica perché non esiste alcun tipo di dati Integer in dBase. dBase usa tipi di dati Numeric o Float. Access esegue il mapping di interi lunghi al tipo di dati Numeric in dBase.
Soluzione alternativa
Per risolvere questo problema, usare uno dei metodi seguenti:
Metodo 1: Modificare il file di database in dBase
Modificare la progettazione del file di database dopo che è stato aggiunto al catalogo dBase. Ad esempio, impostare la colonna Dec su 0 (zero). Per altre informazioni sulla progettazione di file di database in dBase, vedere la documentazione di dBase.
Metodo 2: Usare Microsoft Office Excel per formattare i dati
Usare Excel per formattare i dati nella tabella esportata. A tal fine, attenersi alla seguente procedura:
- In Excel aprire la tabella esportata come tipo dBase IV (*.dbf) da Access.
- Formattare le celle non formattate correttamente. A tale scopo, selezionare le celle e quindi fare clic su Celle dal menu Formato .
- Dopo aver formattato le celle, esportare il foglio di calcolo come file dBase IV. A tal fine, attenersi alla seguente procedura:
- Scegliere Salva con nome dal menu File.
- Nella casella Salva con nome fare clic su DBF 4 (dbase IV) (*.dbf) e quindi su Salva.
Metodo 3: Usare il codice di esempio per formattare i dati
Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. I tecnici di supporto tecnico Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessuno caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze.
È possibile usare l'esempio di codice seguente per automatizzare il processo di formattazione dei dati. L'esempio salverà una tabella come file di testo. Quindi, automatizzerà Excel per aprire il file di testo e quindi salvarlo in formato dBase IV.
Nota
È necessario modificare i nomi di file in questo esempio di codice in modo che corrispondano ai nomi dei file.
Sub exportFormat()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Const SAVETEXT = "C:\testValues.txt"
Const SAVEDBF = "C:\testDBF.dbf"
' Save the table as a text file.
DoCmd.TransferText acExportDelim, , "Table1", SAVETEXT, TRUE
' Set a reference to the Application object.
Set xlApp = ' Set a reference to the Workbook object.
Set xlBook = xlApp.Workbooks.Open(SAVETEXT, , , ' Save the file to dBase IV format.
xlBook.SaveAs Filename:=SAVEDBF, FileFormat:=xlDBF4
xlBook.Close savechanges:=False
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: nel corso del 2024 verranno dismessi i problemi di GitHub come meccanismo di feedback per il contenuto e verranno sostituiti con un nuovo sistema di feedback. Per altre informazioni, vedere:Invia e visualizza il feedback per