Access 會將長整數數位匯出為雙資料類型,在 dBase IV ( 中使用小數位。 dbf) 格式

原始 KB 編號:   891775

徵狀

當您建立包含長整數數位的 Microsoft Office Access 資料表,然後將該資料表匯出為類型 dBase IV (。 dbf) 時,數位會轉換成 double 資料類型,並且會顯示小數位的位置。

例如,您可以匯出下表:

單位
23411
111111111
1121212

接著,當您匯入及查看 dBase IV 中的資料時,會出現類似下列的資料:

單位
23411.00000
111111111.00000
1121212.00000

注意

當您在 Access 的資料表中建立數位欄位時,您可以使用 FieldSize 屬性來控制為特定欄位所分配的空間量。 在 [數位] 欄位中,您可以從清單中選擇下列其中一個數數值型別:

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

根據預設,[數位] 欄位的設定為長整數。 長整數值會儲存從大約-2000000000 到 + 2000000000 範圍內的整數位。 或者,您可以選擇 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