Access exporteert lange gehele getallen als dubbel gegevenstype met decimalen in dBase IV-indeling (.dbf)

Origineel KB-nummer: 891775

Symptomen

Wanneer u een Microsoft Office Access-tabel maakt die lange gehele getallen bevat en u die tabel vervolgens exporteert als het type dBase IV (.dbf), worden de getallen geconverteerd naar een dubbel gegevenstype en worden de decimalen weergegeven.

U kunt bijvoorbeeld de volgende tabel exporteren:

EENHEDEN
23411
111111111
1121212

Wanneer u vervolgens de gegevens in dBase IV importeert en weergeeft, zien de gegevens er ongeveer als volgt uit:

EENHEDEN
23411.00000
111111111.00000
1121212.00000

Opmerking

Wanneer u een numeriek veld maakt in een tabel in Access, gebruikt u de eigenschap FieldSize om de hoeveelheid ruimte te bepalen die aan een bepaald veld is toegewezen. Voor getalvelden kunt u een van de volgende numerieke typen kiezen in een lijst:

  • Byte
  • Geheel getal
  • Lang geheel getal
  • Enkel
  • Dubbel
  • ReplicationID
  • Decimale waarde

De instelling voor getalvelden is standaard Lang geheel getal. De waarde voor lange gehele getallen slaat gehele getallen op die variëren van ongeveer -2 miljard tot +2 miljard. U kunt ook de dubbele waarde kiezen om getallen met decimalen op te slaan.

Oorzaak

Dit probleem treedt op omdat dBase geen gegevenstype Geheel getal bevat. dBase maakt gebruik van het gegevenstype Numeriek of Float. Lange gehele getallen worden toegewezen aan het numerieke gegevenstype in dBase.

Tijdelijke oplossing

Gebruik een van de volgende methoden om dit probleem te omzeilen:

Methode 1: Het databasebestand wijzigen in dBase

Wijzig het ontwerp van het databasebestand nadat het is toegevoegd aan de dBase-catalogus. Stel bijvoorbeeld de kolom Dec in op 0 (nul). Zie de dBase-documentatie voor meer informatie over het ontwerpen van databasebestanden in dBase.

Methode 2: Microsoft Office Excel gebruiken om de gegevens op te maken

Gebruik Excel om de gegevens op te maken in de tabel die u hebt geëxporteerd. Ga hiervoor als volgt te werk:

  1. Open in Excel de tabel die u hebt geëxporteerd als type dBase IV (*.dbf) vanuit Access.
  2. Maak de cellen op die niet correct zijn opgemaakt. Hiervoor selecteert u de cellen en klikt u op Cellen in het menu Opmaak .
  3. Nadat u de cellen hebt opgemaakt, exporteert u het werkblad als een dBase IV-bestand. Ga hiervoor als volgt te werk:
    1. Klik op Opslaan als in het menu Bestand.
    2. Klik in het vak Opslaan als opDBF 4 (dbase IV) (*.dbf) en klik vervolgens op Opslaan.

Methode 3: Voorbeeldcode gebruiken om de gegevens op te maken

Microsoft verstrekt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. Ondersteuningsmedewerkers van Microsoft kunnen helpen bij de uitleg over de functionaliteit van een bepaalde procedure. Deze medewerkers zullen de voorbeelden echter niet aanpassen om extra functionaliteit toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.

U kunt het volgende codevoorbeeld gebruiken om het opmaakproces van de gegevens te automatiseren. In het voorbeeld wordt een tabel opgeslagen als een tekstbestand. Vervolgens wordt excel geautomatiseerd om het tekstbestand te openen en vervolgens op te slaan in dBase IV-indeling.

Opmerking

U moet de bestandsnamen in dit codevoorbeeld wijzigen zodat deze overeenkomen met uw bestandsnamen.

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