DAO 3.60 : propriété Bookmark paramètre ouvre à tort une ligne

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

238134
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Dans DAO 3.60 utilisant le signet propriété d'un jeu d'enregistrements pour accéder à un enregistrement spécifique vous place sur l'enregistrement incorrect. Ceci est probablement à surface lors de l'enregistrement d'un signet et accédé à un autre enregistrement et puis en retour le référencé enregistrement en définissant la propriété Bookmark du jeu d'enregistrements. Cela peut également se produire lorsque vous utilisez la propriété LastModified après une mise à jour. Ce problème est davantage susceptible de se produire si la table possède un très grand nombre d'enregistrements, ou si la table contient moins d'enregistrements mais un très grand nombre de colonnes.

Cela ne se produit pas lorsque vous utilisez DAO 3.51.
Résolution
Un correctif est désormais disponible auprès de Microsoft, mais il ne vise qu'à corriger le problème décrit dans cet article. S'il s'appliquent uniquement aux ordinateurs rencontrant ce problème spécifique. Ce correctif peut être soumise tests supplémentaires. Par conséquent, si vous n'êtes pas gravement touché par ce problème, Microsoft vous recommande d'attendre le prochain service pack Microsoft Office qui comprendra ce correctif.

Pour résoudre ce problème immédiatement, contactez support technique Microsoft pour obtenir le correctif. Pour une liste complète des numéros de téléphone des services de support technique Microsoft et des informations sur les frais de support technique, reportez-vous au site de Web Microsoft suivant : Remarque : dans certains cas, les frais aucuns de support peuvent être facturés si un technicien du support technique Microsoft détermine qu'une mise à jour spécifique peut résoudre votre problème. Les coûts de support technique typique s'appliqueront aux autres questions et problèmes non traités par la mise à jour en question.

La version anglaise de ce correctif doit avoir les attributs de fichier suivants ou ceux d'une version ultérieure :
   Date      Time    Version      Size    File name     Platform   -------------------------------------------------------------   7/14/99           3.60.2927.4  545KB   dao360.dll				

Contournement
Il n'existe aucune solution de contournement pour ce problème.
Statut
Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés au début de cet article.
Plus d'informations



Installation manuelle

  1. Fermer ou arrêter les applications ou services qui sont à l'aide de DAO.
  2. Télécharger la version de correctif de Dao360.dll dans un répertoire temporaire.
  3. Rechercher et de renommer la actuelle version Dao360.dll, qui doit se trouver dans le dossier \Program Files\Common Files\Microsoft Shared\DAO .
  4. Copier la version de correctif logiciel du Dao360.dll sur le même emplacement , puis redémarrez vos services et applications.

Étapes pour Reproduce

  1. Créer un projet Visual Basic (EXE standard) et ajouter une référence à la bibliothèque d'objets Microsoft DAO 3.60.
  2. Dans le formulaire de démarrage (Form1), créer une étiquette nommée lblStatus et Ajouter un bouton de commande .
  3. C opiez le code suivant dans méthode Click() du bouton de commande, puis exécutez le formulaire :
    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				
mise à signet propriété dao dao360.dll 3.60 ligne d'enregistrement incorrecte lastmodified jour

Avertissement : Cet article a été traduit de manière automatique

Propriétés

ID d'article : 238134 - Dernière mise à jour : 02/11/2014 09:23:49 - Révision : 3.5

  • Microsoft Office 2000 Developer
  • Microsoft Visual Studio 6.0 Service Pack 3
  • Microsoft Access 2000 Standard Edition
  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbdao360fix kbfix kbqfe KB238134 KbMtfr
Commentaires