DAO 3.60: 設定書籤屬性移動至錯誤的資料列

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:238134
本文已封存。本文係以「現狀」提供且不會再更新。
徵狀
在 DAO 3.60 使用書籤中的資料錄集,以便巡覽至特定的記錄] 屬性放您錯誤記錄。這很可能浮現時儲存一個書籤並移動到不同的記錄並再移回至書籤標記的記錄資料錄集的 [書籤] 屬性設定。這也會發生在一個更新之後使用 LastModified 屬性時。這個問題,最有可能發生於以下情況: 如果資料表有非常大量的記錄,或者,如果資料表有較少的資料錄,但非常大量的資料行。

這不會發生使用 DAO 3.51 時。
解決方案
修正程式現在可以從 Microsoft,但它只用來修正本文所述的問題。因此只提供給已遭遇此特定問題的電腦。此修正程式可能會接受其他測試。因此,如果您不會嚴重影響這個問題,Microsoft 建議您等候下一個的 Microsoft Office Service Pack 包含此 Hotfix。

如果要立即解決這個問題,洽詢 Microsoft 技術支援部以取得此修正程式。如需 Microsoft 產品支援服務電話號碼及支援成本的相關資訊的完整清單,請造訪下列 Microsoft 網站]:注意: 在特殊情況中通常會因支援電話所產生的費用如果,可能就不收取 Microsoft 支援人員認為某特定更新程式可以解決您的問題。典型的支援成本將會套用到其他支援問題是所做不限定特定有問題的更新程式。

此修正程式的英文版應該具有下列檔案屬性或更新版本:
   Date      Time    Version      Size    File name     Platform   -------------------------------------------------------------   7/14/99           3.60.2927.4  545KB   dao360.dll				

其他可行方案
這個問題沒有解決方法。
狀況說明
Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的問題。
其他相關資訊



手動安裝

  1. 關閉或停止任何應用程式或服務使用 DAO。
  2. 下載 Hotfix 版本 的 Dao360.dll 到暫存目錄。
  3. 尋找並重新命名 目前的版本 Dao360.dll 應該是 \Program Files\Common Files\Microsoft Shared\DAO 資料夾中。
  4. 將 Hotfix 版本的 Dao360.dll 到相同的位置中,並 重新啟動 您的服務及應用程式。

重現的步驟

  1. 建立 Visual Basic 專案 (標準執行檔),並加入 Microsoft DAO 3.60 物件程式庫的參考。
  2. 在 [啟動表單 (Form1)、 建立名為 lblStatus 標籤新增指令按鈕
  3. C opy 下列程式碼 至指令按鈕 Click() 方法再執行表單:
    Dim dbTest As DAO.Database    Dim rsTest As DAO.Recordset    Dim strPathToMDB As String    Dim strSQL As String    Dim lngNumRecords As Long    Dim lngOriginalValue As Long    Dim lngCounter As Long    Dim varBookmark As Variant    Dim bUseTableType As Boolean        Me.Show    Me.MousePointer = vbHourglass    Me.Enabled = False    strPathToMDB = App.Path & "\BadBookmarks.MDB"    If MsgBox("Make new database?", vbYesNo) = vbYes Then        If Dir(strPathToMDB) <> "" Then Kill strPathToMDB        If DBEngine.Version = "3.6" Then            If MsgBox("Create Jet 4.0 format database?", vbYesNo) = vbYes Then                Set dbTest = DBEngine.CreateDatabase(strPathToMDB, dbLangGeneral, dbVersion40)            Else                Set dbTest = DBEngine.CreateDatabase(strPathToMDB, dbLangGeneral, dbVersion30)            End If        Else            Set dbTest = DBEngine.CreateDatabase(strPathToMDB, dbLangGeneral, dbVersion30)        End If    Else        Set dbTest = DBEngine.OpenDatabase(strPathToMDB)    End If        If MsgBox("Make new table?", vbYesNo) = vbYes Then        On Error Resume Next        strSQL = "DROP TABLE BadBookmarks"        dbTest.Execute strSQL        On Error GoTo 0        strSQL = "CREATE TABLE BadBookmarks (ID long NOT NULL"        For lngCounter = 2 To 8            strSQL = strSQL & ", Field" & lngCounter & " char(255)"        Next lngCounter        strSQL = strSQL & ", CONSTRAINT PK_BadBookmarks PRIMARY KEY (ID))"        dbTest.Execute strSQL    Else        dbTest.Execute "DELETE * FROM BadBookmarks"    End If        bUseTableType = (MsgBox("Use table-type recordset?", vbYesNo))             If bUseTableType Then        Set rsTest = dbTest.OpenRecordset("BadBookmarks", dbOpenTable)    Else        Set rsTest = dbTest.OpenRecordset("SELECT * FROM BadBookmarks")    End If        lngNumRecords = InputBox("Number of records to insert?", "Bad bookmarks", 1000)    Debug.Print "Testing DAO " & DBEngine.Version    Debug.Print "Inserting " & lngNumRecords & " records"    Debug.Print "Into a version " & dbTest.Version & " database"    Debug.Print "Using a " & IIf(bUseTableType, "table-type", "dynaset") & " recordset"    With rsTest        For lngCounter = 1 To lngNumRecords            .AddNew            .Fields(0) = lngCounter            .Fields(1) = lngCounter            .Fields(2) = lngCounter            .Fields(3) = lngCounter            .Fields(4) = lngCounter            .Fields(5) = lngCounter            .Fields(6) = lngCounter            .Fields(7) = lngCounter            .Update            If lngCounter Mod 100 = 0 Then                lblStatus.Caption = CInt((lngCounter / lngNumRecords) * 100) & _                                    "% complete inserting records..."                lblStatus.Refresh            End If        Next lngCounter        .Close    End With        If bUseTableType Then        Set rsTest = dbTest.OpenRecordset("BadBookmarks", dbOpenTable)    Else        Set rsTest = dbTest.OpenRecordset("SELECT * FROM BadBookmarks")    End If        With rsTest        Do While Not .EOF            lngOriginalValue = .Fields(0)            varBookmark = .Bookmark            .MoveNext            .Bookmark = varBookmark            If .Fields(0) <> lngOriginalValue Then                Debug.Print "Should be on row " & lngOriginalValue                Debug.Print vbTab & "Actually on row " & .Fields(0)            End If            If lngOriginalValue Mod 100 = 0 Then                lblStatus.Caption = CInt((lngOriginalValue / lngNumRecords) * 100) & _                                    "% complete checking records..."                lblStatus.Refresh            End If            .MoveNext        Loop        .Close    End With    Set rsTest = Nothing    dbTest.Close    Set dbTest = Nothing    Set DBEngine = Nothing    lblStatus.Caption = "Done!"    Me.MousePointer = vbArrow    Me.Enabled = True				
書籤屬性 dao 3.60 dao360.dll 錯誤記錄的資料列 lastmodified 更新

警告:本文為自動翻譯

內容

文章識別碼:238134 - 最後檢閱時間:10/21/2013 23:18:31 - 修訂: 3.5

Microsoft Office 2000 Developer Edition, Microsoft Visual Studio 6.0 Service Pack 3, Microsoft Access 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbdao360fix kbfix kbqfe KB238134 KbMtzh
意見反應