Access exporta números enteros largos como tipo de datos doble con posiciones decimales en formato dBase IV (.dbf)

Número de KB original: 891775

Síntomas

Al crear una tabla de Microsoft Office Access que contiene números enteros largos y, a continuación, exportar esa tabla como tipo dBase IV (.dbf), los números se convierten en tipo de datos doble y mostrarán posiciones decimales.

Por ejemplo, puede exportar la tabla siguiente:

UNIDADES
23411
111111111
1121212

Al importar y ver los datos en dBase IV, los datos parecen similares a los siguientes:

UNIDADES
23411.00000
111111111.00000
1121212.00000

Nota:

Al crear un campo numérico en una tabla en Access, se usa la propiedad FieldSize para controlar la cantidad de espacio que se asigna para un campo determinado. Para los campos numéricos, puede elegir uno de los siguientes tipos numéricos de una lista:

  • Byte
  • Entero
  • Entero largo
  • Simple
  • Doble
  • ReplicationID
  • Decimal

De forma predeterminada, la configuración de los campos numéricos es Entero largo. El valor entero largo almacena números enteros que oscilan entre -2 mil millones y +2 mil millones. O bien, puede elegir el valor Double para almacenar números con decimales.

Causa

Este problema se produce porque no hay ningún tipo de datos Integer en dBase. dBase usa tipos de datos Numeric o Float. Access asigna enteros largos al tipo de datos numérico en dBase.

Solución alternativa

Para solucionar este problema, use uno de los métodos siguientes:

Método 1: Modificar el archivo de base de datos en dBase

Modifique el diseño del archivo de base de datos después de agregarlo al catálogo de dBase. Por ejemplo, establezca la columna Dec en 0 (cero). Para obtener más información sobre el diseño de archivos de base de datos en dBase, consulte la documentación de dBase.

Método 2: Uso de Microsoft Office Excel para dar formato a los datos

Use Excel para dar formato a los datos de la tabla que exportó. Para ello, siga estos pasos:

  1. En Excel, abra la tabla que exportó como tipo dBase IV (*.dbf) desde Access.
  2. Dar formato a las celdas que no tienen el formato correcto. Para ello, seleccione las celdas y, a continuación, haga clic en Celdas en el menú Formato .
  3. Después de dar formato a las celdas, exporte la hoja de cálculo como un archivo dBase IV. Para ello, siga estos pasos:
    1. En el menú Archivo, haga clic en Guardar como.
    2. En el cuadro Guardar como tipo , haga clic en DBF 4 (dbase IV) (*.dbf) y, a continuación, haga clic en Guardar.

Método 3: Usar código de ejemplo para dar formato a los datos

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía, ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Se considera que está familiarizado con el lenguaje de programación que se muestra y con las herramientas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento. Sin embargo, no modificarán estos ejemplos para proporcionar una funcionalidad adicional o procesos de construcción para que se cumplan sus requisitos específicos.

Puede usar el ejemplo de código siguiente para automatizar el proceso de dar formato a los datos. El ejemplo guardará una tabla como un archivo de texto. A continuación, automatizará Excel para abrir el archivo de texto y, a continuación, guardarlo en formato dBase IV.

Nota:

Debe cambiar los nombres de archivo de este ejemplo de código para que coincidan con los nombres de archivo.

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