DAO 3.60: Festlegen Bookmark-Eigenschaft auf falsch Zeile verschiebt

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

238134
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Problembeschreibung
In DAO 3.60 mithilfe der Bookmark platziert-Eigenschaft ein Recordset zu einem bestimmten Datensatz navigieren Sie auf einen falschen Datensatz. Dies ist wahrscheinlich Oberflächen, wenn Sie eine Textmarke zu einem anderen Datensatz und dann wieder in die mit einer Textmarke versehenes Datensatz verschieben durch Festlegen der Bookmark-Eigenschaft des Recordsets speichern. Dies kann auch auftreten, wenn die LastModified-Eigenschaft nach einer Aktualisierung verwendet. Dieses Problem tritt am wahrscheinlichsten vorkommen, wenn die Tabelle eine sehr große Anzahl von Datensätzen verfügt oder wenn die Tabelle weniger Datensätze jedoch eine sehr große Anzahl von Spalten aufweist.

Dies tritt nicht bei Verwendung von DAO 3.51.
Lösung
Ein Update zur Behebung dieses Problems ist inzwischen von Microsoft erhältlich; dieses Update wurde jedoch ausschließlich zur Behebung des in diesem Artikel beschriebenen Problems entwickelt. Gelten Sie diese nur für Computer, bei die dieses spezielle Problem auftritt. Dieses Update wird unter Umständen zu einem späteren Zeitpunkt weiteren Tests unterzogen. Wenn Sie durch dieses Problem nicht schwerwiegend betroffen sind, empfiehlt Microsoft daher, dass für das nächste Servicepack für Microsoft Office warten, das diesen Hotfix enthält.

Wenn Sie das Problem sofort beheben möchten, wenden Sie sich an Microsoft Product Support Services, um das Update zu erhalten. Eine vollständige Liste mit Telefonnummern der Microsoft-Produktsupport und Informationen Supportkosten der folgenden Microsoft-Website: Hinweis : in speziellen Fällen Gebühren, die normalerweise für Support-Anrufe anfallen abgebrochen werden können, wenn eine Microsoft-Supportmitarbeiter feststellt, dass ein bestimmtes Update Ihr Problem behoben wird. Normale Servicegebühren werden jedoch für weitere Fragen und Problemlösungen erhoben, die mit dem fraglichen Update nicht in direktem Zusammenhang stehen.

Die englische Version dieses Updates sollte die folgenden Dateiattribute (oder höher) aufweisen:
   Date      Time    Version      Size    File name     Platform   -------------------------------------------------------------   7/14/99           3.60.2927.4  545KB   dao360.dll				

Abhilfe
Es gibt keine Problemumgehung für dieses Problem.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Weitere Informationen



Manuelle Installation

  1. Schließen Sie oder beenden Sie Anwendungen oder Dienste, die mit DAO arbeiten.
  2. Downloaden Sie die Hotfixversion von "Dao360.dll" in ein temporäres Verzeichnis an.
  3. Suchen und Umbenennen der aktuellen Version Dao360.dll, die im Ordner \Program Files\Common Files\Microsoft Shared\DAO sein sollte.
  4. Kopieren Sie die Hotfixversion der Dao360.dll an demselben Speicherort , und Starten der Dienste und Anwendungen.

Gehen Sie folgendermaßen vor, um dieses Problem zu reproduzieren

  1. Erstellen eines Visual Basic-Projekts (Standard EXE) , und fügen Sie einen Verweis auf die Microsoft DAO 3.60-Objektbibliothek hinzu.
  2. Im Formular Start (Form1), eine Bezeichnung mit dem Namen LblStatus erstellen und Hinzufügen einer Befehlsschaltfläche .
  3. C# opieren der folgende Code in Click()-Methode der Befehlsschaltfläche, führen Sie dann das Formular:
    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				
Lesezeichen-Eigenschaft Dao 3.60 dao360.dll falschen Datensatz Zeile Lastmodified update

Warnung: Dieser Artikel wurde automatisch übersetzt

Eigenschaften

Artikelnummer: 238134 – Letzte Überarbeitung: 02/12/2014 05:56:57 – Revision: 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 KbMtde
Feedback