O Access exporta números inteiros longos como tipo de dados duplo com casas decimais no formato dBase IV (.dbf)

Número original da BDC: 891775

Sintomas

Quando cria uma tabela do Microsoft Office Access que contém números inteiros longos e, em seguida, exporta essa tabela como tipo dBase IV (.dbf), os números são convertidos para o tipo de dados duplo e mostrarão casas decimais.

Por exemplo, pode exportar a seguinte tabela:

UNIDADES
23411
111111111
1121212

Quando importar e ver os dados no dBase IV, os dados são apresentados de forma semelhante ao seguinte:

UNIDADES
23411.00000
111111111.00000
1121212.00000

Nota

Quando cria um campo numérico numa tabela no Access, utiliza a propriedade Tamanhodo Campo para controlar a quantidade de espaço alocado a um campo específico. Para campos numéricos, pode escolher um dos seguintes tipos numéricos a partir de uma lista:

  • Byte
  • Número inteiro
  • Número Inteiro Longo
  • Único
  • Duplo
  • ID da Replicação
  • Decimal

Por predefinição, a definição para campos numéricos é Número Inteiro Longo. O valor de Número Inteiro Longo armazena números inteiros que variam entre -2 mil milhões e +2 mil milhões. Em alternativa, pode escolher o valor Duplo para armazenar números com casas decimais.

Causa

Este problema ocorre porque não existe um tipo de dados Número inteiro no dBase. O dBase utiliza tipos de dados Numéricos ou Flutuantes. O Access mapeia Números Inteiros Longos para o tipo de dados Numérico no dBase.

Solução

Para contornar este problema, utilize um dos seguintes métodos:

Método 1: Modificar o ficheiro de base de dados no dBase

Modifique a estrutura do ficheiro de base de dados depois de ter sido adicionado ao catálogo dBase. Por exemplo, defina a coluna Dec como 0 (zero). Para obter mais informações sobre a conceção de ficheiros de base de dados no dBase, veja a documentação do dBase.

Método 2: Utilizar o Microsoft Office Excel para formatar os dados

Utilize o Excel para formatar os dados na tabela que exportou. Para tal, siga estes passos:

  1. No Excel, abra a tabela que exportou como tipo dBase IV (*.dbf) a partir do Access.
  2. Formate as células que não estão corretamente formatadas. Para tal, selecione as células e, em seguida, clique em Células no menu Formatar .
  3. Depois de formatar as células, exporte a folha de cálculo como um ficheiro dBase IV. Para tal, siga estes passos:
    1. No menu Ficheiro , clique em Guardar Como.
    2. Na caixa Guardar com o tipo , clique em DBF 4 (dbase IV) (*.dbf) e, em seguida, clique em Guardar.

Método 3: Utilizar código de exemplo para formatar os dados

A Microsoft fornece exemplos de programação apenas a título informativo, sem qualquer garantia expressa ou implícita, incluindo, sem limitações, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador está familiarizado com a linguagem de programação demonstrada e as ferramentas utilizadas para criar e depurar procedimentos. Os engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um procedimento específico. No entanto, não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às suas necessidades específicas.

Pode utilizar o seguinte exemplo de código para automatizar o processo de formatação dos dados. O exemplo irá guardar uma tabela como um ficheiro de texto. Em seguida, irá automatizar o Excel para abrir o ficheiro de texto e, em seguida, guardá-lo no formato dBase IV.

Nota

Tem de alterar os nomes de ficheiro neste exemplo de código para corresponder aos nomes dos ficheiros.

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