存取會將長整數匯出為雙數據類型,並以 dBase IV (.dbf 格式) 小數字數

原始 KB 編號: 891775

徵狀

當您建立包含長整數的 Microsoft Office Access 數據表,然後將該數據表導出為類型 dBase IV (.dbf) 時,數位會轉換成雙精度浮點數,並顯示小數位數。

例如,您可以匯出下表:

單位
23411
111111111
1121212

當您接著在 dBase IV 中匯入和檢視數據時,數據會如下所示:

單位
23411.00000
111111111.00000
1121212.00000

注意事項

當您在 Access 中的數據表中建立數位欄位時,您可以使用 FieldSize 屬性來控制為特定欄位配置的空間量。 針對數位欄位,您可以從清單中選擇下列其中一個數值類型:

  • 位元組
  • 整數
  • 長整數
  • 單一
  • 雙精度浮點數
  • ReplicationID
  • 小數

根據預設,數位欄位的設定為 Long Integer。 Long Integer 值會儲存介於約 -20 億到 +20 億的整數。 或者,您可以選擇 Double 值來儲存具有小數的數位。

原因

發生此問題的原因是 dBase 中沒有整數數據類型。 dBase 使用數值或浮點數數據類型。 Access 會將長整數對應至 dBase 中的數值數據類型。

因應措施

若要解決此問題,請使用下列其中一種方法:

方法 1:修改 dBase 中的資料庫檔案

將資料庫檔案新增至 dBase 目錄之後,修改其設計。 例如,將 Dec 資料行設定為 0 (零) 。 如需在 dBase 中設計資料庫檔案的詳細資訊,請參閱 dBase 檔。

方法 2:使用 Microsoft Office Excel 來格式化數據

使用 Excel 來格式化您匯出之資料表中的資料。 如果要執行這項操作,請依照下列步驟執行:

  1. 在 Excel 中,開啟您從 Access 匯出為類型 dBase IV (*.dbf) 的資料表。
  2. 格式化未正確格式化的儲存格。 若要這樣做,請選取單元格,然後單擊 [格式] 功能表上的 [單元格]。
  3. 格式化單元格之後,請將電子表格導出為 dBase IV 檔案。 如果要執行這項操作,請依照下列步驟執行:
    1. 在 [檔案] 功能表上按一下 [另存新檔]
    2. 在 [ 另存新檔類型 ] 方塊中,按兩下 [DBF 4 (dbase IV) (*.dbf) ],然後按兩下 [ 儲存]

方法 3:使用範例程式代碼來格式化數據

Microsoft 提供的程式設計範例僅供說明之用,並不具任何明示或暗示的責任擔保。 這包括 (但不限於) 任何目的之適售性及適用性的暗示責任擔保。 本文假設您熟悉示範的程式設計語言,也熟悉用以建立和偵錯程序的工具。 Microsoft 支援工程師可協助說明特定程序的功能。 不過,他們不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。

您可以使用下列程式代碼範例,將格式化數據的程式自動化。 此範例會將數據表儲存為文本檔。 然後,它會將Excel自動化以開啟文本文件,然後以 dBase IV 格式儲存。

注意事項

您必須變更此程式碼範例中的檔名,以符合您的檔名。

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