ACC2000:連結 SQL Server 表中的新列消失,或重複顯示最後一筆資料記錄

文章翻譯 文章翻譯
文章編號: 251289 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
中等: 須具備基本巨集、 編碼, 與交互操作性技巧。

這篇文章中的資訊只適用於 Microsoft Access 資料庫 (.mdb)。.

全部展開 | 全部摺疊

在此頁中

徵狀

當您將新資料錄加入至連結的 Microsoft SQL Server 資料表並將移至不同的資料錄, 您可能會注意到的下列徵狀之一:
when you press the TAB key to in a table entering any part of a new record after move to the next new record, you just typed disappears.When you type complete a new record in a table and then move an existing record to the record, you typed you type only part of a new record into a table and then move off that record to an existing record, your new record disappears.When the record disappears, and last the record in the table appears to be duplicated.When you type any part of a record in a form, and then leave the record, you type the information disappears。
重要 : 會實際上不會遺失資料 請勿嘗試再次新增記錄 ; 它並不存在。 請勿嘗試刪除重複記錄明顯。 藉由刪除它, 不是記錄, 您只刪除原始資料錄會出現要, 複製, 新增。

發生的原因

如果當您試著加入資料錄, SQL Server 資料表具有識別資料行, 而您看到哪些似乎是重複的前一筆記錄。 直到您重新整理資料錄集新資料錄不會顯示正確的資料。 這個行為與 Microsoft Access 會重新查詢 SQL Server 資料庫方式。

解決方案

如果要解決這個問題, 取得最新版 Microsoft Jet 4.0 Service Pack 更新程式。 如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件::
239114 HOW TO: 取得 the 最新的 service pack for Microsoft Jet 4.0 資料庫引擎
如果要解決這個問題, 請使用下列三種方法中的任何一種。

使用 Microsoft Access 專案

您可以使用 Microsoft Access 專案而的 Access 資料庫。 藉由使用 Microsoft Access 專案, 您不需要要有連結要連接至 SQL Server 資料庫資料表。

如需有關將您的 Access 資料庫轉換成 Microsoft Access 專案, 請按一下下面文件編號, 檢視 「 Microsoft 知識庫 」 中的文件:
241743 ACC 2000: < 2000 Access SQL 轉換工具在下載中心 」 白皮書可用的
250616 若要使用 DTS 可以將資料從 Microsoft Access 資料庫匯出至某個 SQL Server 資料庫 How ACC 2000:

使用 Access 資料庫表單

如果您看到這個問題在表單, 使用 Microsoft Visual Basic 能夠自動重新查詢資料並將表單移動至新加入的資料錄 for Applications 程式碼為 BeforeInsert 及 AfterInsert 事件。 您可以使用下面, 範例程式碼新增到要自動更新表單上的資料記錄事件

請注意 : 您使用這個方法可能會注意到您一定要將一筆新記錄移出兩次 也就是說, 當您加入新資料錄, 再按 TAB 鍵或其中一項導覽資料錄按鈕以新增另一個新資料錄或移至前一筆記錄, 可以在第二次按下記錄導覽按鈕, 即可跳到適當的資料錄。 這不會影響關閉表單。
Option Compare Database
Option Explicit

Dim mfRequery As Boolean

Private Sub Form_AfterInsert()

    If mfRequery = True Then
        ' If the variable indicates a Requery
        ' is needed, Requery the form.
        Me.Requery
        ' Move back to the record that was just added
        DoCmd.GoToRecord acDataForm, Me.Name, acLast
        mfRequery = False
    End If

End Sub

Private Sub Form_BeforeInsert(Cancel As Integer)

    If Me.NewRecord = True Then
        ' If this is a new record, set a variable
        ' to indicate the need to Requery.
        mfRequery = True
    End If
    
End Sub
				

在 MDB 中使用資料表

如果您看到這個問題在資料表, 您可以以手動方式重新排序資料表或關閉並重新開啟資料表。

狀況說明

Microsoft 已確認本篇文章開頭所列之 Microsoft 產品確實有上述問題。. 這個問題已經獲得最新的 Microsoft Jet 4.0 Service Pack 中修正。 ?

其他相關資訊

重現問題的步驟

  1. 開啟範例資料庫 Northwind.mdb。.
  2. [ 訂貨主檔 ] 資料表匯出到現有的 SQL Server 資料庫。 命名為 OrdersTest.
  3. 建立一個新的 Access 資料庫。.
  4. 在新的資料庫, 建立新連結資料表到 OrdersTest 您匯出至 SQL Server 資料表。
  5. 連結到它之後, 開啟資料表。
  6. 向下捲動到最後一個資料錄。
  7. 在新資料錄行, 輸入新資料錄中。
  8. 在所有資料, 輸入後請按向上鍵, 即可將游標移出的新資料錄。
  9. 您看到新資料錄已不再顯示, 但最後一筆資料錄會出現兩次。
  10. 在 資料錄 功能表, 按一下 [ Requery 。 您注意到重複會消失。

屬性

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

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com