DAO 3.60: Bookmark プロパティを設定間違った行への移動します。

文書翻訳 文書翻訳
文書番号: 238134
すべて展開する | すべて折りたたむ

目次

現象

DAO 3.60 のブックマークを使用してのプロパティを特定のレコードに移動するのには、レコード セットの間違ったレコードを配置します。これは、ブックマークを別のレコードに移動し、戻る、ブックマークが設定されたレコードに recordset の Bookmark プロパティを設定することによって移動を保存するときに可能性が高いです。更新後、LastModified プロパティを使用する場合にも発生します。この問題は、テーブルには、非常に多数のレコードがある場合、または少数のレコードは、非常に多数の列が、テーブルを持っている場合に発生する可能性が高いです。

これには、DAO 3.51 を使用する場合は発生しません。

解決方法

修正プログラム現在マイクロソフトでは、利用可能なですがこれはこの資料に記載されている問題を修正するものです。この問題が発生しているコンピューターにのみ適用されます。この修正プログラムは、今後さらにテストが表示されます。したがって、この問題で深刻な影響をされていない場合は、マイクロソフトはこの修正プログラムを含む次の Microsoft Office の service pack のリリースを待つことを推奨します。

この問題を解決するには、Microsoft 製品サポート サービス、修正プログラムを入手するに問い合わせてください。Microsoft 製品サポート サービスの電話番号とサポート コストに関する情報の完全な一覧については、次のマイクロソフト Web サイトを参照してください。
http://support.microsoft.com/default.aspx?scid=fh です。EN-US です。CNTACTMS
メモ: Microsoft Support 担当者が特定の更新で問題が解決されると判断した場合は特殊なケースで、料金が通常のサポート免除されるキャンセルする可能性があります。追加の質問および問題の特定のアップデートの対象とならない問題、通常のサポート料金が適用されます。

英語版のこの修正プログラムは、次のファイル属性があります以降。
   Date      Time    Version      Size    File name     Platform
   -------------------------------------------------------------
   7/14/99           3.60.2927.4  545KB   dao360.dll


				

回避策

この問題の回避策はありません。

状況

Microsoft では、これ問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。

詳細




手動インストール

  1. 閉じるか、アプリケーションまたは DAO を使用しているサービスを停止します。
  2. 修正プログラムのバージョンをダウンロードします。 一時ディレクトリに Dao360.dll は。
  3. 検索し、名前を変更します。 Dao360.dll をでする必要があります、現在のバージョンは、 \Program Files\Common Files\Microsoft Shared\DAO フォルダーです。
  4. Dao360.dll の修正プログラム バージョン、同じ場所にコピーします。、、 再起動 [サービスとアプリケーション

問題を再現する手順

  1. Visual Basic (標準 EXE) プロジェクトを作成します。、および Microsoft DAO 3.60 のオブジェクト ライブラリへの参照を追加します。
  2. スタートアップ フォーム (Form1) に 配置された lblStatus という名前のラベルを作成します。コマンド ボタンを追加します。.
  3. C変換は、次のコード コマンド ボタンの 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

				

プロパティ

文書番号: 238134 - 最終更新日: 2011年7月22日 - リビジョン: 5.0
キーワード:?
kbbug kbfix kbqfe kbdao360fix kbhotfixserver kbmt KB238134 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:238134
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

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