ACC2000: 欄位名稱中的特殊字元會變更當您匯出至不同的檔案格式的表格

文章編號: 308686 - 檢視此文章適用的產品。
進階: 須具備專家編碼、 互通性,與多使用者技能。

本文可套用於 [Microsoft Access 資料庫 (.mdb) 和 Microsoft Access 專案 (.adp)。

全部展開 | 全部摺疊

在此頁中

徵狀

當您嘗試匯出至某個 Excel、 一個 HTML 或文字格式的 Microsoft Access 資料庫 (MDB) 或 Microsoft Access 專案 (ADP) 中的資料表,而且如果其中一個或多個欄位名稱有數字符號 (#),數字符號可能會轉換成句點。

在一個 ADP 欄位名稱中的句點可能也會轉換成底線字元 (_)。

解決方案

有五個可能的解決方法。

方法 1:

請勿在資料表及欄位名稱中使用特殊字元,例如數字符號及句號 (ADP)。

方法 2:

將資料匯出之前變更欄位名稱,在 Access 中的,讓它們並沒有井字號。

方法 3:

修改產生的匯出的檔案,讓欄位名稱具有您想要的字元。

方法 4:

格式化,請儲存檔案。如需如何執行這項操作的範例,請依照下列步驟執行:
  1. 按一下您想要匯出的資料表。
  2. 在 [檔案] 功能表移向 [匯出]。
  3. 在 [檔案類型] 方塊按一下 [文字檔案 或其中一個 Excel 檔案格式、 按一下以選取 [儲存格式] 核取方塊,然後按一下 [另存注意: 對於 HTML 檔案使用 HTML 範本來儲存檔案,如格式化。您可以藉由建立空白文字檔並再從.txt 變更其副檔名為.html 建立空白的 HTML 範本。

方法 5:

使用自訂的匯出程序。

下列範例示範如何匯出已有井字號至 文字檔案 的欄位名稱的資料表。
  1. 將參考加入至 Microsoft 指令碼執行階段程式庫 (scrrun.dll)。
  2. 將下列程式碼加入至資料庫或專案中的模組。 注意: 常式會接受兩個引數: 資料表 (或查詢) 的名稱,顯示您想要匯出,及完整路徑並匯出的最後文字檔案的名稱:
    Public Function FixExportedFieldNames(strTableName As String, strFileName As String)
    
    Dim fso As New FileSystemObject
    Dim ts1, ts2 As TextStream
    Dim strTxtLine, strTempFileName As String
    strTempFileName = "c:\FixFieldNamesTemp.txt"
    DoCmd.TransferText acExportDelim, , strTableName, strFileName, True
    
    ' Open files.
    Set ts1 = fso.OpenTextFile(strFileName)
    Set ts2 = fso.OpenTextFile(strTempFileName, ForWriting, True, TristateFalse)
    
    ' Replace the period on the first line with a number sign.
    strTxtLine = ts1.ReadLine
    strTxtLine = Replace(strTxtLine, ".", "#")
    ts2.WriteLine strTxtLine
    
    ' Loop while not at the end of the file.
    Do While Not ts1.AtEndOfStream
    strTxtLine = ts1.ReadLine
    ts2.WriteLine strTxtLine
    Loop
    
    ' Close the files.
    ts1.Close
    ts2.Close
    DoEvents
    
    ' Overwrite original file with new file
    fso.CopyFile strTempFileName, strFileName, True
    fso.DeleteFile strTempFileName
    
    End Function
    
    					

其他相關資訊

當您匯出,如下所示,您會看到這種行為:
  1. 要在使用者] 介面中的 Excel 您做不按一下以選取 [在 匯出資料表] 對話方塊的 [儲存格式] 核取方塊。
  2. 中使用者] 介面,而且您的文字做不按一下以選取 [在 [匯出資料表] 對話方塊的 [儲存格式] 核取方塊,並在匯出精靈中包含欄位名稱]。
  3. Excel 使用 TransferSpreadsheet 動作或方法。
  4. 藉由使用 TransferText 動作或方法,和您的文字將 [HasFieldNames 屬性設為 True]。
  5. 藉由使用 TransferText 動作或方法,和您的 HTML 將 [HasFieldNames 屬性設為 True]。

重製行為的步驟

  1. 在任何資料庫中建立下列的資料表,並命名 Table1
       Table: Table1
       ----------------------------
       Field Name: ID
       Data Type: AutoNumber
       Indexed: Yes (No Duplicates)
    
       Field Name: Account#
       Data Type: Number
    
       
       Table Properties: Table1
       -------------------------------
       PrimaryKey: ID
       
    					
  2. 請關閉資料表。
  3. 在 [資料庫] 視窗中按一下 Table1] 資料表,然後再按一下 [檔案] 功能表上的 [匯出]。
  4. 匯出資料表] 對話方塊中,按一下 [檔案類型] 方塊的 Microsoft Excel 97-2000年]。
  5. 請注意檔案會儲存,然後按一下 [儲存 的位置。
  6. 開啟 [Microsoft Excel]。
  7. 開啟 Table1.xls。
  8. 請注意數字的登入帳戶 # 欄位已被變更為句點。

屬性

文章編號: 308686 - 上次校閱: 2004年6月28日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft Access 2000 Standard Edition
關鍵字:?
kbmt kbprb KB308686 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:308686
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見