I Access exporteras långa heltal som dubbel datatyp med decimaler i dBase IV-format (.dbf)

Ursprungligt KB-nummer:   891775

Symptom

Om du skapar en Microsoft Office Access-tabell som innehåller långa heltal och sedan exporterar den tabellen som dBase IV (.dbf), konverteras talen till dubbel datatyp och visar decimaler.

Du kan till exempel exportera följande tabell:

ENHETER
23411
111111111
1121212

När du sedan importerar och visar data i dBase IV ser data ut ungefär så här:

ENHETER
23411.00000
111111111.00000
1121212.00000

Anteckning

När du skapar ett talfält i en tabell i Access kan du använda egenskapen Fältstorlek till att styra mängden utrymme som tilldelas för ett visst fält. För nummerfält kan du välja någon av följande numeriska typer i en lista:

  • Byte
  • Heltal
  • Långt heltal
  • Enkel
  • Double
  • Replikerings-ID
  • Decimal

Som standard är inställningen för talfält Långt heltal. Med värdet Långt heltal lagras hela tal från cirka -2 till +2 miljoner. Eller så kan du välja värdet Double för att lagra tal med decimaler.

Orsak

Det här problemet uppstår eftersom det inte finns någon heltalsdatatyp i dBase. dBase använder antingen numeriska datatyper eller flytande datatyper. Långa heltal mapps till den numeriska datatypen i dBase.

Lösning

Använd någon av följande metoder för att komma runt det här problemet:

Metod 1: Ändra databasfilen i dBase

Ändra designen på databasfilen när den har lagts till i dBase-katalogen. Du kan till exempel ange kolumnen Dec till 0 (noll). Mer information om hur du utformar databasfiler i dBase finns i dBase-dokumentationen.

Metod 2: Microsoft Office Excel formatera data

Använd Excel för att formatera data i tabellen som du exporterade. Gör så här:

  1. I Excel öppnar du tabellen som du exporterade som typ dBase IV (*.dbf) från Access.
  2. Formatera celler som inte är korrekt formaterade. Det gör du genom att markera cellerna och sedan klicka på Cellermenyn Format.
  3. När du har formaterat cellerna exporterar du kalkylbladet som en dBase IV-fil. Gör så här:
    1. Klicka på Spara som på Arkiv-menyn.
    2. Klicka DBF 4 (dbase IV) (*.dbf) i rutan Spara som och klicka sedan på Spara.

Metod 3: Formatera data med exempelkod

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa dig att förklara funktionaliteten i en viss procedur. De ändrar dock inte de här exemplen för att ge ytterligare funktioner eller skapa procedurer så att de uppfyller dina specifika krav.

Du kan använda följande kodexe exempel för att automatisera formateringen av data. Med exemplet sparas en tabell som en textfil. Därefter automatiseras processen Excel att öppna textfilen och sedan spara den i dBase IV-format.

Anteckning

Du måste ändra filnamnen i det här kodexe exemplet så att de matchar filnamnen.

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