DAO 3.60: إعداد إشارة مرجعية خاصية نقل إلى صف خاطئ

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

238134
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الأعراض
3.60 DAO استخدام إشارة مرجعية في الخاصية من مجموعة السجلات الانتقال إلى سجل معين وضع التي على السجل غير صحيح. غالباً ما يكون هذا السطحية عند حفظ Bookmark الانتقال إلى سجل آخر ثم ثم نقل العودة إلى سجل ذات الإشارة المرجعية بواسطة إعداد الخاصية Bookmark لمجموعة السجلات. قد يحدث ذلك أيضاً عند استخدام الخاصية LastModified بعد تحديث. هذه المشكلة على الأرجح أن يحدث إذا كان الجدول يحتوي على عدد كبير جداً من السجلات أو إذا كان الجدول يحتوي على السجلات أقل ولكن عدد كبير جداً من الأعمدة.

لا يحدث هذا عند استخدام 3.51 DAO.
الحل
يتوفر الآن إصلاح معتمد من Microsoft ولكن الغرض منه هو حل المشكلة الموضحة في هذه المقالة فقط. تطبيقه فقط على أجهزة الكمبيوتر التي تواجه هذه المشكلة بالتحديد. قد يتم إجراء اختبارات إضافية على هذا الإصلاح. ولذلك، إذا لم يكن تأثير هذه المشكلة كبيرًا، توصي Microsoft بالانتظار حتى الإصدار التالي من حزمة الخدمة Microsoft Office الذي يحتوي على هذا الإصلاح العاجل.

لحل هذه المشكلة فورًا، اتصل بخدمات دعم المنتجات في 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. تنزيل إصدار الإصلاح العاجل من Dao360.dll في دليل مؤقت.
  3. حدد موقع "و" إعادة تسمية الإصدار الحالي من Dao360.dll يجب أن تكون في مجلد \Program Files\Common Files\Microsoft Shared\DAO.
  4. نسخ إصدار الإصلاح العاجل Dao360.dll في نفس الموقع ثم أعد تشغيل خدمات وتطبيقات.

خطوات Reproduce

  1. إنشاء مشروع Visual Basic (EXE قياسي) ، ثم إضافة مرجع إلى مكتبة كائنات Microsoft 3.60 DAO.
  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				
الإشارة المرجعية الخاصية dao 3.60 dao360.dll الصف السجل غير صحيح lastmodified التحديث

تحذير: تمت ترجمة هذا المقال تلقائياً

خصائص

رقم الموضوع: 238134 - آخر مراجعة: 02/04/2014 21:40:35 - المراجعة: 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 KbMtar
تعليقات