Access exporte des nombres entiers longs en tant que type de données double avec des décimales au format dBase IV (.dbf)
Numéro de la base de connaissances d’origine : 891775
Symptômes
Lorsque vous créez une table Microsoft Office Access qui contient des nombres entiers longs, puis que vous exportez cette table en tant que type dBase IV (.dbf), les nombres sont convertis en type de données double et affichent des décimales.
Par exemple, vous pouvez exporter le tableau suivant :
UNITÉS
23411
111111111
1121212
Lorsque vous importez et affichez ensuite les données dans dBase IV, les données ressemblent à ce qui suit :
UNITÉS
23411.00000
111111111.00000
1121212.00000
Remarque
Lorsque vous créez un champ numérique dans une table dans Access, vous utilisez la propriété FieldSize pour contrôler la quantité d’espace allouée à un champ particulier. Pour les champs numériques, vous pouvez choisir l’un des types numériques suivants dans une liste :
- Octet
- Entier
- Entier long
- Unique
- Double
- ReplicationID
- Décimal
Par défaut, le paramètre des champs numériques est Entier long. La valeur de l’entier long stocke des nombres entiers compris entre -2 milliards et +2 milliards. Vous pouvez également choisir la valeur Double pour stocker des nombres avec des décimales.
Cause
Ce problème se produit car il n’existe aucun type de données Integer dans dBase. dBase utilise les types de données Numeric ou Float. Access mappe les entiers longs au type de données Numeric dans dBase.
Solution de contournement
Pour contourner ce problème, utilisez l’une des méthodes suivantes :
Méthode 1 : Modifier le fichier de base de données dans dBase
Modifiez la conception du fichier de base de données après son ajout au catalogue dBase. Par exemple, définissez la colonne Dec sur 0 (zéro). Pour plus d’informations sur la conception de fichiers de base de données dans dBase, consultez la documentation dBase.
Méthode 2 : Utiliser Microsoft Office Excel pour mettre en forme les données
Utilisez Excel pour mettre en forme les données du tableau que vous avez exporté. Pour cela, procédez comme suit :
- Dans Excel, ouvrez le tableau que vous avez exporté en tant que type dBase IV (*.dbf) à partir d’Access.
- Mettez en forme les cellules qui ne sont pas correctement mises en forme. Pour ce faire, sélectionnez les cellules, puis cliquez sur Cellules dans le menu Format .
- Après avoir mis en forme les cellules, exportez la feuille de calcul en tant que fichier dBase IV. Pour cela, procédez comme suit :
- Dans le menu Fichier, cliquez sur Enregistrer sous.
- Dans la zone Type de fichier, cliquez sur DBF 4 (dbase IV) (*.dbf), puis sur Enregistrer.
Méthode 3 : Utiliser un exemple de code pour mettre en forme les données
Microsoft fournit des exemples de programmation à titre d’illustration uniquement, sans garantie expresse ou implicite. Cela inclut, sans y être limité, les garanties implicites de commercialisation et d’adaptation à un but en particulier. Cet article considère que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les ingénieurs du support Microsoft peuvent expliquer la fonctionnalité d’une procédure en particulier. Toutefois, ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques.
Vous pouvez utiliser l’exemple de code suivant pour automatiser le processus de mise en forme des données. L’exemple enregistre une table en tant que fichier texte. Ensuite, il automatise Excel pour ouvrir le fichier texte, puis l’enregistrer au format dBase IV.
Remarque
Vous devez modifier les noms de fichiers dans cet exemple de code pour qu’ils correspondent à vos noms de fichiers.
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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour