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:
- I Excel öppnar du tabellen som du exporterade som typ dBase IV (*.dbf) från Access.
- Formatera celler som inte är korrekt formaterade. Det gör du genom att markera cellerna och sedan klicka på Celler på menyn Format.
- När du har formaterat cellerna exporterar du kalkylbladet som en dBase IV-fil. Gör så här:
- Klicka på Spara som på Arkiv-menyn.
- Klicka på 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